答案1
如果您的数据表名为Table7
:(
使用表格结构意味着当你在数据表中添加/删除行时,引用将自动调整)
您可以在单个单元格中输入以下公式,结果将SPILL
给出您想要的输出:
=HSTACK(
CHOOSECOLS(
Table7,
1,
2,
6
),
BYROW(
Table7[Fruit],
LAMBDA(arr,
IF(
arr = "",
"Vegetable",
"Fruit"
)
)
)
)
CHOOSECOLS
返回输出所需的列- 该
BYROW
函数返回另一列,其中包含项目类型,具体取决于单元格是否Fruit
为空 HSTACK
将两者合并为一个数据表输出
编辑:
对于可以自动调整多个中间列的公式,请尝试以下公式
*该公式将保留列1,2 and the last column
并返回列标题4-penultimate column
=LET(
firstCol, 4,
numCols, COLUMNS(Table7) - 4,
cols, SEQUENCE(, numCols, firstCol),
hdrs, INDEX(Table7[#Headers], , cols),
HSTACK(
CHOOSECOLS(Table7, 1, 2, COLUMNS(Table7)),
BYROW(
LEN(CHOOSECOLS(Table7, cols)) > 0,
LAMBDA(arr, XLOOKUP(TRUE, arr, hdrs))
)
)
)
再次,您可能需要将结构化引用更改为常规单元格引用。
LEN(CHOOSECOLS(Table7, cols)) > 0
返回一个二维数组,TRUE/FALSE
取决于单元格中是否有内容。BYROW
将匹配TRUE
相应列标题/名称的条目