2つのテキスト値のいずれかをチェックする(Microsoft Excel)
Chrisは、セルのテキスト内の任意の場所で、テキスト値Aまたはテキスト値Bを含むセルをカウントしたいと考えています。セルにAとBの両方が含まれている場合、彼女はそれをカウントしたいと考えていますが、1回だけです。たとえば、クリスには「リンゴの種」、「リンゴの木」、「桃の種」を含む3つのセルがあり、「リンゴ」または「種子」のいずれかを含むセルの数を知りたいと考えています。 (返されるべき正しい答えは3です。)
これに取り組む方法はたくさんあります。解決策を検討する際に、私は、追加の列を占める中間回答を回避する解決策のみを検討しました。最初の解決策は、次のようにCOUNTIF関数を使用することです。
=COUNTIF(A1:A9,"apple")+COUNTIF(A1:A9,"seed") -COUNTIF(A1:A9,"seedapple")-COUNTIF(A1:A9,"appleseed")
この数式は、「apple」または「seed」のいずれかを含むすべてのセルをカウントします
次に、「シード」とそれに続く「アップル」を含むすべてのセルを減算します
(両方の単語がセル内にあります)または「apple」の後に「seed」(同じ単語を逆の順序で)が続きます。
もう1つの解決策は、これは少し短く、次に示すように、COUNTA関数とFIND関数に依存しています。
=COUNTA(A1:A9)-SUMPRODUCT(--(ISERROR(FIND("apple",A1:A9))) * --ISERROR(FIND("seed",A1:A9)))
この数式は、値を含むセルをカウントしてから、「apple」または「seed」を含まないすべてのセルを減算します。 FIND関数では大文字と小文字が区別されることに注意してください。つまり、「Apple」や「APPLE」ではなく「apple」のみが検出されます。大文字と小文字を区別しないものが必要な場合は、FINDをSEARCHに置き換えてください。
必要に応じて、Excelのデータベース関数の1つを使用することもできます。
元のフレーズの列見出しがある場合、これを行うのはそれほど難しくなく、結果として最短の数式になります。あなたがする必要があるのは、対応する基準テーブルを設定することです。たとえば、データがA1:A9にあり、列の最初のセルに「MyPhrases」などのヘッダーが含まれているとします。別の列に同じヘッダーを配置し、そのすぐ下の2つのセルに次の2つの数式を配置する必要があります。
apple seed
基準は、セル内に「apple」または「seed」を含むすべてのセルに一致させることを指定します。この設定では(基準テーブルをD1:D3に配置したと想定しています)、次の式を使用できます。
=DCOUNTA(A1:A9,1,D1:D3)
もちろん、配列数式(Ctrl + Shift + Enterを押して入力)を使用して答えを取得することもできます。以下は、A1:A9にあることがチェックされているフレーズに依存するそのような式の1つです。
=SUM(--((ISNUMBER(FIND("apple",A1:A9))+ISNUMBER(FIND("seed",A1:A9)))>0))
マクロの操作に傾倒している場合は、カウントを返すユーザー定義関数を作成できます。以下は、機能する例です。
Function FindTwoStrings(rng As Range, s1 As String, _ s2 As String) As Integer Application.Volatile If TypeName(rng) <> "Range" Then Exit Function Dim cell As Range For Each cell In rng.Cells If (InStr(1, UCase(cell.Value), UCase(s1), _ vbTextCompare) > 0) Or (InStr(1, UCase(cell.Value), _ UCase(s2), vbTextCompare) > 0) Then _ FindTwoStrings = FindTwoStrings + 1 Next cell End Function
関数を使用するには、セルで次の数式を使用できます。
=FindTwoStrings(A1:A9,"apple","seed")
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(9325)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。