[英]How to count the nth consecutive instance of a word in a list in excel?
我想獲取包含列中另一個單詞實例的行號,其中 n 是預定義的常數,例如 5。
與我想要的最接近的結果(即使是間接獲得的)如下:
=SUMPRODUCT((INDIRECT(CONCATENATE("A1:A",J9))="pear")*(INDIRECT(CONCATENATE("W4:W",J9))<INDIRECT(CONCATENATE("X4:X",J9))))
其中我使用 INDIRECT () function 來概括感興趣的行數,但是每次列表更改時都必須在作為參考的單元格中手動更新數據(示例中為 J9),這不是最好的(雖然更好而不是手動更改使用它的每個公式的行號。)。
該列表由重復的單詞組成(末尾可能有空單元格,而不是中間),如下所示:
A
_______
1 orange
2 apple
3 apple
4 pear
5 pineapple
6 orange
7 pear
8 apple
.....
n=2 和“梨”作為要搜索的單詞的預期結果是 7。在 excel 中是否可以執行類似的操作?
考慮以下用戶定義的 Function:
Option Explicit
Public Function Locate(rng As Range, valu As String, times As Long) As Long
Dim kount As Long, r As Range
kount = 0
For Each r In rng
If r.Value = valu Then
kount = kount + 1
If kount = times Then
Locate = r.Row
Exit Function
End If
End If
Next r
End Function
例如:
用戶定義函數 (UDF) 非常易於安裝和使用:
如果您保存工作簿,UDF 將與它一起保存。 如果您使用的是 2003 年以后的 Excel 版本,則必須將文件另存為 .xlsm 而不是.xlsx
要刪除UDF:
要使用Excel 中的 UDF:
=Locate(A1:A100,"pear",2)
要了解有關宏的更多信息,請參閱:
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
必須啟用宏才能使其正常工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.