2010-07-23 75 views
0

我有一个Excel电子表格,其中包含多个不同长度的列,每个列都填充了未分类的数字。每列都有一个标题。Excel:查找列中的值

有没有办法确定哪个列包含这个数字?例如,我希望能够做= WHICHCOLS(123,A,Z)并让Excel告诉我列[B,C和K]包含值为123的单元格。尽管理想情况下,我在逗号分隔的标题列表之后。

同样足够的是找到具有该值的一个或多个范围内的所有单元格;例如[B19,C32和K908]。

我觉得我忽略了一些明显的内置函数。

回答

2

可能有内置的方法来做到这一点,但你也可以编写自己的功能。

将这个代码在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)