4

更新1:

因为我的问题不清楚,所以我发布第二个例子

示例 2

因为第 2 行,Item 04 的值为 1,所以 Get Item Name = Item 04。它是随机的并且有大量的列 (500)。

问题:

如果该标题下的单元格有任何值输入,我想有一种方法来获取列标题。请注意,如果在第 2 行和第 1 列有值,那么第 2 行的其他单元格将没有任何值(0 除外)。

很难用语言解释这个问题,所以我创建了一个例子。

样本

4

4 回答 4

7

我在上面的评论中发布了一个公式,你可能没有看到它。就是这个:

=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)),"")

于 2013-02-25T22:13:11.733 回答
1

对于具有可数列数(即 3)的相对较小的表,试试这个

=IF(COUNTA(G8)>0,"Column 1",IF(COUNTA(H8)>0,"Column 2",IF(COUNTA(I8)>0,"Column 3",""))).  

我的问题是如果你的表包含 20 或 100 列怎么办?

于 2013-02-25T21:26:36.130 回答
0

我假设当您说“列标题”时,您的真正意思是“行标题”

考虑到第一个单元格(包含 text "Column Header")在A1这是您必须在单元格中引入的公式A2

=IF(B2>0, $B$1, IF(C2>0, $C$1, IF(D2>0, $D$1, "")))

根据需要将此公式向下拖动到尽可能多的行上,它会(希望)实现您想要的。

于 2013-02-25T21:04:00.073 回答
0

假设您想要一个超过 3 列的解决方案,此公式将为您返回正确的标题。

我假设您的数据从第 2 行 B 列开始 - 第 1 行包含列标题。

在 B1 中使用此公式并将其复制下来:

=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(FALSE,INDEX(ISBLANK($B2:$D2),0),0)))

如果您的数据超出 D 列,只需在公式中进行更改。

于 2013-02-25T21:11:13.920 回答