首页 > 解决方案 > 验证行值和检索列的公式

问题描述

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

Excel数据:
Excel数据

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

我可以在 Excel 中使用 IF 函数,但如果有 20 列需要检查,那将是一个很长的语句,我必须编写它来检索最终输出。

标签: excelexcel-formula

解决方案


如果您可以创建 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 列,这是非常动态的。


推荐阅读