|
Named ranges! Also newer Excel versions provide you the LET function, which is neat for documentation (naming) of intermediate steps: =LET(data; F4:F34;
dummy1; "This is a made up average function; this string is ignored";
dummy2; "one limitation is that you cant really overwrite variable names";
tally; COUNTA(data);
total; SUM(data);
total/tally)
It also avoids recomputing intermediate stuff. You can also encapsulate things in a LAMBDA anonymous function: =LET(data; F4:F34;
mymeanfunction; LAMBDA(data;
LET(tally; COUNTA(data);
total; SUM(data);
total/tally));
mean1; mymeanfunction(data);
mean2; mymeanfunction(OFFSET(data;0;1));doc;"FIXME, this should have its own variable name to refer explicitly to G4:G34";
AVERAGE(mean1;mean2))
You could also move the LAMBDA to the name registry and use that function similarly to how you would use a named range or a built-in formula!Coming from a lisp background, I was ecstatic to see this, but they have heavy technical limitations. I did play a little bit though with these concepts and the dynamic array functions. Fun functions to explore: - DROP, TAKE, CHOOSECOLS, CHOOSEROWS to cut arrays
- INDEX, OFFSET, COLUMN, ROW to navigate
- WRAPCOLS, WRAPROWS, TOROW, TOCOL, VSTACK, HSTACK, TRANSPOSE to shape arrays
- MAP, SCAN, REDUCE to compute on top of arrays
There's more! |
How far did you get with let and lambda? It seems like you could build whole programs on them, but I haven’t pushed very hard on them yet. Do you want to say more about the “heavy technical limitations”?