Function note

IFS and SWITCH pass on the selected value whole, and later arrays do not lift the call

FUNC.IFS · FUNC.SWITCH

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 routeInputsExcelCorrect valueRecorded in
=IFS(TRUE,1,{FALSE,TRUE},{2,3})
formula-literal
As typed1
0x3ff0000000000000
—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 typed1
0x3ff0000000000000
—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 typed1
0x3ff0000000000000
—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

Machine-readable note records