我在Excel中有一张表格,如所附图像(直到F列)所示,并且希望查看最后一列“结果”:
“结果”列应检索行值为“ IF”的列名。
我可以在Excel中使用IF函数,但这将是一个很长的语句,如果要检查20列,我将不得不写该语句来检索最终输出。
答案 0 :(得分:1)
如果可以创建UDF(用户定义函数),则可以从根本上创建自己的工作表函数来实现此目的。
在此功能中,您将在输入范围内进行快速循环,并检查该范围内是否有任何单元格等于“ IF”。如果是这样,则将列字母从.Address
属性中删除。
Public Function getIFCols(ByVal rng As Range) As String
Dim retVal As String, cel As Range
For Each cel In rng.Cells
If cel.Value = "IF" Then
retVal = Trim(retVal & " " & colLtr(cel))
End If
Next
getIFCols = Replace(retVal, " ", ", ")
End Function
Private Function colLtr(colRng As Range) As String
colLtr = Split(colRng.Address, "$")(1)
End Function
您将这样调用此函数:
=getIFCols(B1:F1)
此函数的妙处在于它不需要设置一定数量的列。因此,如果您需要在一行上检查3列,在另一行上检查10列,则它是动态的。
答案 1 :(得分:0)
对于Excel Online,您可以尝试texjoin
=TEXTJOIN(",",TRUE,IF(B2:G2="IF",$B$1:$G$1,""))