--- loncom/html/adm/help/tex/Spreadsheet_Functions.tex 2002/07/26 19:53:59 1.2
+++ loncom/html/adm/help/tex/Spreadsheet_Functions.tex 2016/01/03 04:45:45 1.10
@@ -1,37 +1,102 @@
\label{Spreadsheet_Functions}
-The following functions are available in the spreadsheet:
+The following special functions are available in the spreadsheet.
+Please see \textbf{Referencing Cells} (\ref{Spreadsheet_Referencing_Cells})
+for information on specifying cells and ranges.
\begin{itemize}
\item \texttt{\&NUM(range)} - number of non-empty cells in range
+\index{NUM}
\item \texttt{\&BIN(low, high, range)} - number of non-empty cells in
range with values between low and high
+\index{BIN}
\item \texttt{\&SUM(range)} - sum of the non-empty cells in range
+\index{SUM}
\item \texttt{\&MEAN(range)} - mean value of non-empty cells in range
+\index{MEAN}
\item \texttt{\&STDDEV(range)} - standard deviation of non-empty cells
in range
+\index{STDDEV}
\item \texttt{\&PROD(range)} - product of non-empty cells in range
+\index{PROD}
\item \texttt{\&MAX(range)} - maximum value of non-empty cell in range
+\index{MAX}
\item \texttt{\&MIN(range)} - minimum value of non-empty cells in
range
+\index{MIN}
-\item \texttt{\&SUMMAX(n ,range)} - sum of the maximum n non-empty
+\item \texttt{\&SUMMAX(n ,range)} - sum of the maximum $n$ non-empty
cells in range
+\index{SUMMAX}
-\item \texttt{\&SUMMIN(n, range)} - sum of the minimum n non-empty
+\item \texttt{\&SUMMIN(n, range)} - sum of the minimum $n$ non-empty
cells in range
+\index{SUMMIN}
-\item \texttt{\&EXT(expression)} - access to EXT function in lonnet
+\item \texttt{\&EXT(expression)} - access to EXT function in lonnet.
+Use \texttt{\&EXT(`system.time')} to retrieve the current time.
+\index{EXT}
+
+\item \texttt{\&PARM(parameter)} - get the value of a specific parameter
+\index{PARM}
+
+\item \texttt{\&MINPARM(expression)} - get the value of a parameter that
+matches the expression that is the smallest in value (If one specified
+'opendate' it would return the smallest opendate set on the problem.)
+\index{MINPARM}
+
+\item \texttt{\&MAXPARM(expression)} - get the value of a parameter that
+matches the expression that is the largest in value (If one specified
+'opendate' it would return the largest opendate set on the problem.)
+\index{MAXPARM}
+
+\item \texttt{\&SUMSEQ(column,sequence1,sequence2,sequence3,...)} -
+sum the given column across the folders or sequences listed.
+
+When specifying a sequence use the full title. Instead of a sequence title
+the word \texttt{all} can be used to sum over all sequences. Regular expressions
+can be entered as well, if prefixed by \texttt{regexp:}. See below for examples.
+
+\begin{itemize}
+
+\item \texttt{\&SUMSEQ(`Z',`Chapter 1');}
+
+\item \texttt{\&SUMSEQ(`Z',`Chapter 1',`Chapter 2',`Chapter 3');}
+
+\item \texttt{\&SUMSEQ(`Z',`all');} - sum over all sequences.
+
+\item \texttt{\&SUMSEQ(`Z',`regexp:Large Biomolecules');} -
+ sum over all sequences which match the regular expression
+/Large Biomolecules/.
+
+\end{itemize}
\end{itemize}
-In addition, non-IO Perl functions work in cells, which is internally
-evaluated within a safe space. Field names and Column-Row combinations
-can be used as variables.
\ No newline at end of file
+\noindent
+In addition, most non-IO Perl functions work in cells. Perl offers a compact \texttt{if} structure using the logic
+\texttt{TEST\char`_EXPR?IF\char`_TRUE\char`_EXPR\char`:IF\char`_FALSE\char`_EXPR;}. The \texttt{if} statements can be nested. For example, to scale the points awarded on the assessment spreadsheet (by default in \texttt{Z0}) with the number of tries (by default in \texttt{C0}), the adjusted score can be programmed in an empty cell in assessment spreadsheet row 0, where\\
+
+\noindent
+\texttt{C0$>$2 ? (0.5*Z0) \char`: (C0$>$1 ? (0.75*Z0) \char`: Z0);}\\
+
+\noindent
+is equivalent to
+
+\begin{verbatim}
+if (C0 > 2) {
+ $cellvalue = 0.5*Z0;
+} elsif (C0 > 1) {
+ $cellvalue = 0.75*Z0;
+} else {$cellvalue = Z0;}
+$cellvalue;
+\end{verbatim}
+
+Use of parantheses is usually necessary in the compact \texttt{if} statement to assure correct precedence.