FN-IFS-001: IFS and SWITCH pass on the selected value whole, and later arrays do not lift the call
Quirk · measured · recorded 2026-11-04
Once a scalar test selects a result, array arguments after it have no effect on the shape: IFS(TRUE,1,{FALSE,TRUE},{2,3}) and SWITCH(2,2,1,{1,2},3) each return one 1, not an array, and SWITCH("A","a",1,{"A","A"},2) returns 1 because the match ignores case. The selected value itself is passed on as it is. A selected reference stays a reference: ISBLANK(IFS(TRUE,Data!Z1)) is TRUE over an empty cell. A selected LAMBDA shows as #CALC! in the cell, IFS(TRUE,LAMBDA(xx,xx)), and a selected array of LAMBDAs as #CALC! in each cell. A test that is not TRUE or FALSE gives #VALUE! in the shape of its result: IFS("2",{"hit","hit"}) is {#VALUE!,#VALUE!}. A direct error as the SWITCH expression stays one error: SWITCH(#VALUE!,1,{1,2},0) is #VALUE!.
| Call and input route | Inputs | Excel | Correct value | Recorded in |
|---|---|---|---|---|
=IFS(TRUE,1,{FALSE,TRUE},{2,3})formula-literal | As typed | 10x3ff0000000000000 | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=SWITCH(2,2,1,{1,2},3)formula-literal | As typed | 10x3ff0000000000000 | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=SWITCH("A","a",1,{"A","A"},2)formula-literal | As typed | 10x3ff0000000000000 | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=ISBLANK(IFS(TRUE,Data!Z1))cell-value2 | Data!Z1: (empty cell) | TRUE | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=ISBLANK(SWITCH(1,1,Data!Z1))cell-value2 | Data!Z1: (empty cell) | TRUE | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=IFS(TRUE,LAMBDA(xx,xx))formula-literal | As typed | #CALC! | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=SWITCH(1,1,LAMBDA(xx,xx))formula-literal | As typed | #CALC! | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=IFS(TRUE,HSTACK(LAMBDA(xx,xx),LAMBDA(xx,xx)))formula-literal | As typed | {#CALC!,#CALC!} | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=IFS("2",{"hit","hit"})formula-literal | As typed | {#VALUE!,#VALUE!} | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
=SWITCH(#VALUE!,1,{1,2},0)formula-literal | As typed | #VALUE! | — | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
Basis: 11 recorded selection readings in dynamic-array Excel, each with size observers.
Open: A selected LAMBDA that is then called, or passed through LET or IFERROR, has not been read in a published capture.
Evidence and capture sources
- DnaCalc · apps/dna-onecalc/tests/acceptance.rs 2d0eddcac86413014643af81d646581d54ba57bc · selection and callable readings pinned
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheets fn2_q016 to fn2_q022, fn2_q194, fn2_q195, fn2_q208, fn2_q209 recorded readings
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q208, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q209, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q016, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q194, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q195, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q017, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q018, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q019, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q021, row 20, column 10
- DnaCalc · crates/calc-func/tests/captures/fn2_questions/oracle.capture.json 2d0eddcac86413014643af81d646581d54ba57bc · sheet fn2_q022, row 20, column 10