如果在不包含VBA的列的单元格中存在值,则将列标题显示为行

更新1:

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

例2

因为第2行,在第04项中有值1,因此获得项目名称=项目04.它是随机的,并且具有大量的列(500)。

问题:

我想有一个方法来获得一个列标题,如果有任何值input到单元格下的单元格。 请注意,如果第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列?

我假设你说“列标题”时,你的意思是“行标题”

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

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

将这个公式向下拖动到所需的行上,它将(希望)实现你想要的。

假设你想要一个超过3列的解决scheme,这个公式将返回你正确的头。

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

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

 = IF(COUNTA($ B2:$ D2)= 0 “”,INDEX($ B $ 1:$ d $ 1,MATCH(FALSE,INDEX(ISBLANK($ B2:$ D2),0),0)))

如果您的数据比D列扩展得更远,只需在公式中进行更改即可。