代码之家  ›  专栏  ›  技术社区  ›  Walt Stoneburner

Excel:在列中查找值

  •  0
  • Walt Stoneburner  · 技术社区  · 16 年前

    我有一个Excel电子表格,有多个不同长度的列,每个列都用未排序的数字填充。每列都有一个标题。

    是否有方法确定哪个列包含该数字?

    例如,我希望能够做到=whichcols(123,a,z),并让excel告诉我列[b,c,k]包含值为123的单元格。不过,理想情况下,我需要一个逗号分隔的标题列表。

    同样足够的方法是在一个(或多个)范围内找到所有具有该值的单元格,例如[b19、c32和k908]。

    我觉得我忽略了一些明显的内置功能。

    1 回复  |  直到 16 年前
        1
  •  2
  •   marg    16 年前

    可能有一种内置的方法来实现这一点,但是您也可以编写自己的函数。

    将此代码放入VBA Module :

    Public Function WHICHCOLS(searchValue As Double, srcRange As Range) As String
        Dim rangeColumn As Range
        Dim columnCell As Range
    
        Dim headerRow As Long
        headerRow = 1 ' HeaderInformation is in RowNr 1 '
    
        WHICHCOLS = vbNullString
        For Each rangeColumn In srcRange.Columns
            For Each columnCell In rangeColumn.Cells
                If columnCell = searchValue Then
                    If WHICHCOLS <> vbNullString Then WHICHCOLS = WHICHCOLS & ", "
                    WHICHCOLS = WHICHCOLS & srcRange.Parent.Cells(headerRow, columnCell.Column)
                    Exit For
                End If
            Next columnCell
        Next rangeColumn
    End Function
    

    Excel中的一个示例调用是:

    =WHICHCOLS(7,A2:F3)
    
    推荐文章