用于验证行值和检索列的公式

时间:2018-11-05 22:33:37

标签: excel excel-formula

我在Excel中有一张表格,如所附图像(直到F列)所示,并且希望查看最后一列“结果”:

ExcelData:
ExcelData

“结果”列应检索行值为“ IF”的列名。

我可以在Excel中使用IF函数,但这将是一个很长的语句,如果要检查20列,我将不得不写该语句来检索最终输出。

2 个答案:

答案 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)
  

enter image description here

此函数的妙处在于它不需要设置一定数量的列。因此,如果您需要在一行上检查3列,在另一行上检查10列,则它是动态的。

答案 1 :(得分:0)

对于Excel Online,您可以尝试texjoin

=TEXTJOIN(",",TRUE,IF(B2:G2="IF",$B$1:$G$1,""))