TBL.TRANSFORM:
=LAMBDA(array,delimiter,[if_empty],
SORT(DROP(REDUCE(0, SEQUENCE(COLUMNS(array)), LAMBDA(v,n,
LET(
a, UNIQUE(CHOOSECOLS(array, SEQUENCE(n))),
b, FILTER(a, TAKE(a,, -1)<>0, if_empty),
h, ROWS(b),
VSTACK(v, HSTACK(EXPAND(n, h,, n), IF(n=1, EXPAND("φ", h,, "φ"), TBL.JOINCOLS(TAKE(b,, n-1), delimiter)), TAKE(b,, -1)))
)
)), 1), {1,2,3})
)
TBL.JOINCOLS:
=LAMBDA(array,delimiter,
TEXTAFTER(REDUCE("", SEQUENCE(COLUMNS(array)), LAMBDA(v,n, v&delimiter&CHOOSECOLS(array, n))), delimiter)
)
GET.LIST:
=LAMBDA(list_range,criteria_range,[criteria],[delimiter],[if_empty],
LET(
v, IF(ISOMITTED(criteria), "φ", TEXTJOIN(delimiter, 0, criteria)),
XLOOKUP(v, criteria_range, list_range, if_empty):XLOOKUP(v, criteria_range, list_range, if_empty,, -1)
)
)