To avoid any style-dependent processing of the input data being tabulated (smoothing, errorbar expansion, secondary range checking, etc), or to increase the number of columns that can be tabulated, use the keyword "table" instead of a normal plot style. In this case the output does not contain an extra, last, column of flags i, o, u indicated inrange/outrange/undefined. The destination for output must first be specified with set table 4#4where5#5. For example
set table $DATABLOCK1 plot <file> using 1:2:3:4:($5+$6):(func($7)):8:9:10 with table
Because there is no actual plot style in this case the columns do not correspond to specific axes. Therefore xrange, yrange, etc are ignored.
If a using term evaluates to a string, the string is tabulated. Numerical data is always written with format %g. If you want some other format use sprintf or gprintf to create a formatted string.
plot <file> using ("File 1"):1:2:3 with table plot <file> using (sprintf("%4.2f",$1)) : (sprintf("%4.2f",$3)) with table
set table "tab.csv" separator comma plot <foo> using 1:2:3:4 with table
[EXPERIMENTAL] To select only a subset of the data points for tabulation you can provide an input filter condition (if 4#4expression5#5) at the end of the command. Note that the input filter may reference data columns that are not part of the output. This feature may change substantially before appearing in a released version of gnuplot.
plot <file> using 1:2:($4+$5) with table if (strcol(3) eq "Red") plot <file> using 1:2:($4+$5) with table if (10. < $1 && $1 < 100.) plot <file> using 1:2:($4+$5) with table if (filter($6,$7) != 0)