2010-07-23 76 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)