更新1:
因为我的问题不清楚,所以我发布第二个例子
因为第 2 行,Item 04 的值为 1,所以 Get Item Name = Item 04。它是随机的并且有大量的列 (500)。
问题:
如果该标题下的单元格有任何值输入,我想有一种方法来获取列标题。请注意,如果在第 2 行和第 1 列有值,那么第 2 行的其他单元格将没有任何值(0 除外)。
很难用语言解释这个问题,所以我创建了一个例子。
更新1:
因为我的问题不清楚,所以我发布第二个例子
因为第 2 行,Item 04 的值为 1,所以 Get Item Name = Item 04。它是随机的并且有大量的列 (500)。
问题:
如果该标题下的单元格有任何值输入,我想有一种方法来获取列标题。请注意,如果在第 2 行和第 1 列有值,那么第 2 行的其他单元格将没有任何值(0 除外)。
很难用语言解释这个问题,所以我创建了一个例子。
我在上面的评论中发布了一个公式,你可能没有看到它。就是这个:
=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(TRUE,INDEX($B2:$D2<>"",0),0)))
这将获得填充单元格的第一个实例的标题 - 如果您有数值并且想要忽略零更改为
=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(TRUE,INDEX($B2:$D2>0,0),0)))
无论哪种方式,公式都可以根据需要扩展到尽可能大的范围
.....如果你有 500 列,你可以使用 IFERROR 来缩短一点
=IFERROR(INDEX($B$1:$D$1,MATCH(TRUE,INDEX($B2:$D2>0,0),0)),"")
对于具有可数列数(即 3)的相对较小的表,试试这个
=IF(COUNTA(G8)>0,"Column 1",IF(COUNTA(H8)>0,"Column 2",IF(COUNTA(I8)>0,"Column 3",""))).
我的问题是如果你的表包含 20 或 100 列怎么办?
我假设当您说“列标题”时,您的真正意思是“行标题”。
考虑到第一个单元格(包含 text "Column Header"
)在A1
这是您必须在单元格中引入的公式A2
:
=IF(B2>0, $B$1, IF(C2>0, $C$1, IF(D2>0, $D$1, "")))
根据需要将此公式向下拖动到尽可能多的行上,它会(希望)实现您想要的。
假设您想要一个超过 3 列的解决方案,此公式将为您返回正确的标题。
我假设您的数据从第 2 行 B 列开始 - 第 1 行包含列标题。
在 B1 中使用此公式并将其复制下来:
=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(FALSE,INDEX(ISBLANK($B2:$D2),0),0)))
如果您的数据超出 D 列,只需在公式中进行更改。