25

Excel の文字列データの列に部分文字列が表示される回数を数えようとしています。以下の例を参照してください。

文字列データ (つぶやき) の列は次のようになります。

   A
1  An example string with @username in it
2  RT @AwesomeUser says @username is awesome

「部分文字列」(Twitter のスクリーン名) を含む列は次のようになります。

   B
1  username
2  AwesomeUser

数式を使用して、B1、B2 などの部分文字列が列 A の文字列に出現する回数をカウントしたいと考えています。たとえば、B1 を検索する数式は "2" を返し、B2 を検索すると返されます。 「1」。

私はこのようにすることはできません:

=COUNTIF(A:A, "username")

COUNTIF は部分文字列ではなく文字列のみを検索するためです。この式は常に「0」を返します。

これが私がそれを行うかもしれないと思った式です:

=SUMPRODUCT((LEN(A:A)-(LEN(SUBSTITUTE(A:A,"username",""))))/LEN("username"))

残念ながら、列 B に 16,000 エントリ、列 A に数万のエントリがあるため、ハイパワー PC でも文字のカウントは機能しません (また、関数によって返される結果は疑わしいです)。

私は使用することを考えました:

=COUNTIF(A:A, "*username*")

ただし、COUNTIF にはスター演算子を含む文字列が必要です。データ量が多いため、セル参照を使用する必要があります。

私の質問: これに数式を使用する方法を知っている人はいますか? COUNTIF を使用している場合、ステートメントの条件部分でセル参照を取得するにはどうすればよいですか (または関数を使用して、COUNTIF ステートメントの条件部分内で参照されるセルの文字列を置換します)。

データを解析できることは知っていますが、Excel で解析する方法を知りたいです。

4

3 に答える 3

43

あなたはもうすぐそこにいます、使用してください

=COUNTIF(A:A, "*"&B1&"*")

警告:これは、文字列を 1回以上
含む セルの数をカウントします。文字列のインスタンスの総数はカウントされません。A:A

于 2012-10-18T06:30:09.843 に答える
3

x文字列(「ABC」)からy文字列(「ABC 123 ABC 23dfABC」)への発生に対する非常に単純なExcelソリューション:

  1. Y 文字列の長さを識別します。Ly = len(y)
  2. x-string を x1-string で置き換え (サポートされている任意の文字を 1 文字だけ x-string に追加します。例: "ABC"=> "ABC_" )、新しい文字列 y1-string の長さを計算します。Ly1 = len(substitute(y,x,x1))。
  3. y 文字列中の x 文字列) の出現回数 = Ly1-Ly

出現回数: len(substitute(y,x,x1)) - len(y)

理解のための命名法: x-string: "ABC" x1-string: "ABC_" y-string: "ABC 123 ABC 23dfABC" y1-string: ""ABC_ 123 ABC_ 23dfABC_"

于 2016-07-27T12:28:13.913 に答える