Excel公式:获取与特定单元格对应的列名称

时间:2017-02-14 03:07:30

标签: excel excel-formula

Excel Sheet

在上面的excel表中,我需要一个公式,它将提取存在“1”的特定列名,并在相应的单元格中输入该名称。示例 - 在上面的图像中,对应于col“Tags”的每一行包含其对应单元格包含“1”的列名。

3 个答案:

答案 0 :(得分:2)

对于4列示例,您可以使用:

=SUBSTITUTE(TRIM(IF(A2,$A$1,"")&" "&IF(B2,$B$1,"")&" "&IF(C2,$C$1,"")&" "&IF(D2,$D$1,""))," ",", ")

对于7列,只需按照相同的模式在IF内添加其他TRIM语句。

该公式依赖于1=TRUE来保持简短。每个IF的结果后跟一个空格。当TRIM没有发生时,1会消除额外的空格。最后SUBSTITUTE转换为,,以便您获得以逗号分隔的列表。

请注意:

  

TRIM从文本中删除多余的空格,在文本的开头或结尾处只留下单词之间的单个空格,并且没有空格字符。

enter image description here

答案 1 :(得分:0)

无法找到用于连接范围的非vba解决方案。所以这是一个UDF

Function conCatRange(ByVal criteriaRange As range, _
                        ByVal criteria As String, _
                        ByVal conRange As range, _
                        ByVal separator As String) As String

    Dim c As range
    conCatRange = ""

    For i = 1 To conRange.Columns.Count
        If (criteriaRange(1, i) = criteria) Then
            conCatRange = conCatRange & conRange(1, i) & separator
        End If
    Next i

    conCatRange = Left(conCatRange, Len(conCatRange) - 1)
End Function
  1. criteriaRange =您想要检查1s的范围,
  2. criteria = 1(在您的情况下)
  3. conRange =标题范围
  4. separator =“,”
  5. 如果要添加摘要和参数说明,请参阅此链接 How to put a tooltip on a user-defined function

答案 2 :(得分:0)

假设您的标题范围是A-K,

你可以从L2开始使用这个公式:

= IF(MID(TRIM(A2 = 1,A $ 1,“”)& IF(B2 = 1,“,”& B $ 1,“”)& IF(C2 = 1,“ ,“& C $ 1”,“”和& IF(D2 = 1,“,”& D $ 1,“”)& IF(E2 = 1,“,”& E $ 1,“”)& IF(F2 = 1,“,”& F $ 1,“”)& IF(G2 = 1,“,”& G $ 1,“”)& IF(H2 = 1,“,”& H $ 1,“”)& IF(I2 = 1,“,”& I $ 1,“”)& IF(J2 = 1,“,”& J $ 1,“”)& IF(K2 = 1 ,“,”& K $ 1,“”)),1,2)=“,”,MID(TRIM(IF(A2 = 1,A $ 1,“”)& IF(B2 = 1,“,” & B $ 1,“”)& IF(C2 = 1,“,”& $ C $ 1,“”)& IF(D2 = 1,“,”& D $ 1,“”)& IF (E2 = 1,“,”& E $ 1,“”)& IF(F2 = 1,“,”& F $ 1,“”)& IF(G2 = 1,“,”& G $ 1 ,“”)& IF(H2 = 1,“,”& H $ 1,“”)& IF(I2 = 1,“,”& I $ 1,“”)& IF(J2 = 1, “,”& J $ 1,“”)& IF(K2 = 1,“,”& K $ 1,“”)),3,1000),TRIM(IF(A2 = 1,A $ 1,“”) )& IF(B2 = 1,“,”& B $ 1,“”)& IF(C2 = 1,“,”& C $ 1,“”)& IF(D2 = 1,“,” & D $ 1,“”)& IF(E2 = 1,“,”& E $ 1,“”)& IF(F2 = 1,“,”& F $ 1,“”)& IF( G2 = 1,“,”& G $ 1,“”)& IF(H2 = 1,“,”& H $ 1,“”)& IF(I2 = 1,“,”& I $ 1, “”)& IF(J2 = 1,“,”& J $ 1,“”)& IF(K2 = 1,“,”& K $ 1,“”)))

此公式在mid函数的列中限制为1000个字符。由于分隔符,它重复相同公式的3倍:“,”但是如果你不介意结果格式,你可以将它缩短为1。只需在列中填写1,列名称就会出现。

希望这有帮助。