我想返回数百列的所有列标题,其中“TRUE”不在其中 - 意味着只有“FALSE”值的列。有人可以帮忙推荐一种简单的方法吗?我尝试了各种方法,但发现它们仍然是非常手动的。
我对VBA不熟悉 - 只是尝试使用Pivots和一些VLOOKUP和HLOOKUPS,并没有接近我想要的解决方案。
答案 0 :(得分:1)
这是一个解决方案。
1)在数据上方插入一行。如果需要,您可以稍后隐藏。或者,您可以在另一个选项卡的相应列中编写此公式(请参阅步骤5)。
2)单元格A1公式= =IF(ISNA(MATCH(TRUE,A3:A5000,0)),1,0)
3)单元格B1公式= =IF(ISNA(MATCH(TRUE,B3:B5000,0)),MAX($A$1:A1)+1,0)
。
4)根据需要拖动多列,并根据需要调整5000
行数
5)在A1的另一个标签上写下公式:=IFERROR(HLOOKUP(ROW(),data!$1:$2,2,0),"")
其中数据是包含数据的表格。
6)根据需要向下拖动多行。
答案 1 :(得分:1)
假设您希望在单行中匹配的标头,并假设您希望每个单元格匹配一个标头:
在单元格A3
中,输入公式
=AND(A5:A####)
并将其复制到所有使用的列中。 (将####替换为最后一行#。)
在单元格A2
中,放置数组公式
=INDEX($A$4:$E$4,SMALL(IF($A$3:$E$3,COLUMN($A$3:$E$3)),COLUMN(A:A)))
(输入,按Ctrl-Shift-Enter。)
将E
替换为最后使用的列。
将其复制到所有使用的列中。
在单元格A1
中,输入公式
=IFERROR(A2,"")
并将其复制到所有使用的列中。
您应该看到第1行中的所有有效标题后跟空白单元格。
我将公式分成两行(1,2),因此您不必在INDEX
中重复IF
次表达式,但您可以将它们合并。
这是一个不需要数组公式的替代方案:
在单元格A3
中,输入公式
=IF(AND(A5:A####),1)
将####替换为最后一行#。
在单元格B3
中,输入公式
=IF(AND(B5:B####),COUNTIF($A$3:A3,"<>FALSE")+1)
将####替换为最后一行#。将其复制到所有剩余的已使用列。
在单元格A2
中,输入公式
=HLOOKUP(COLUMN(A:A),$A$3:$E$4,2,FALSE)
将其复制到所有已使用的列。
在单元格A1
中,输入公式
=IFNA(A2,"")
并将其复制到所有已使用的列。