簡體   English   中英

如何計算 excel 列表中單詞的第 n 個連續實例?

[英]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 中是否可以執行類似的操作?

使用聚合:

=AGGREGATE(15,7,ROW(A1:INDEX(A:A,MATCH("zzz",A:A)))/(A1:INDEX(A:A,MATCH("zzz",A:A))="pear"),2)

"pear"更改為具有所需值的單元格,將末尾的2更改為具有所需序數的單元格。

在此處輸入圖像描述

考慮以下用戶定義的 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) 非常易於安裝和使用:

  1. ALT-F11 調出 VBE window
  2. ALT-I ALT-M 打開一個新模塊
  3. 粘貼這些東西並關閉VBE window

如果您保存工作簿,UDF 將與它一起保存。 如果您使用的是 2003 年以后的 Excel 版本,則必須將文件另存為 .xlsm 而不是.xlsx

刪除UDF:

  1. 如上所述調出 VBE window
  2. 清除代碼
  3. 關閉 VBE window

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM