2016-07-25 39 views
0

我需要檢索一些細胞數來在另一個函數中使用。在excel中檢索條件中的細胞數

基本上,我需要一個函數可以測試一個條件,並檢索行號,然後可以添加我選擇的列字母。 功能是形式getcolnumbers(range;criteria;'column_letter_to_be_appended_to_the_numbers_retrieved')

E.g: 
=getcolnumbers(A1:A10;5130;'B') 

Ans: If the condition is satisfied in A3,A5,A8, then the return value should be 'B3;B5;B8' 

的是有Excel中提供這樣的功能?

+0

不,你將需要使用VBA編寫一個 - 有你試過了嗎? –

+0

@MacroMan我在努力。我對宏很陌生 –

+0

我正在編輯你的問題,但考慮到你的宏中存在不一致性,我認爲在這裏指出它並讓你編輯你自己的問題更爲謹慎:你有列和行在你的腦海中逆轉。列是字母(A,B,C等)和垂直運行,行編號(1,2,3等)並水平運行。從概念上講,這個問題不是有缺陷的,但是對於將來,如果你使用正確的詞彙 – RGA

回答

0

要做到這一點,最簡單的方法可能是將您的過程分解爲其他列。例如,添加一列C,其中

C1 = if(A1 > 5130, B1, "") 

然後C列將只包含您希望B列的值的基礎上,你給了列A

2

你可以使自己的標準用戶定義的函數:

Public Function getcolnumbers(r1 As Range, v As Variant, colid As String) As String 
    Dim r As Range 

    getcolnumbers = "" 
    For Each r In r1 
     If r.Value = v Then 
      getcolnumbers = getcolnumbers & ";" & colid & r.Row 
     End If 
    Next r 
    If Len(getcolnumbers) > 1 Then getcolnumbers = Mid(getcolnumbers, 2) 
End Function 

例如:

enter image description here

用戶定義函數(UDF)是非常容易安裝和使用:

  1. ALT-F11帶來了VBE窗口
  2. ALT-I ALT + M打開一個新的模塊
  3. 粘貼的東西並關閉VBE窗口

如果保存工作簿,則UDF將與其一起保存。 如果您在2003年以後使用的是Excel版本,則必須將該文件保存爲.xlsm而非 。XLSX

要刪除UDF:

  1. 彈出VBE窗口如上
  2. 清晰的代碼進行
  3. 關閉VBE窗口

從Excel使用UDF: (A1)

要了解更多關於一般的宏,請參閱:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

以及有關UDF的細節,請參見:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

宏必須爲此啓用上班!

(注意:您可能需要在工作表單元格輸入公式時使用分號來代替逗號)

+0

嗨,它的作品。一個小問題。我在另一個函數中使用結果。我檢查了評估步驟。 (我試圖在getcolorcount函數中使用它 '= getcolorcount(「K21; K24; K28」; W23)'出現錯誤 –

+0

我應該將字符串轉換爲範圍嗎? –

+0

@EchchamaNayak我不知道.. ....問題可能是***分號***表示法和***逗號***表示法之間的區別 –