Eszterの列Aには、「AKT142」や「BRAF1975」などの一連の変異コードを含むセルの長いリストがあります。列Bには、これらの変異コードに関連付けられた値があります。彼女は、AKTまたはBRAFで始まるすべての値と同様に、列Aの対応する変異コードが同じシーケンスで始まる列Bの値を合計する式を必要としています。 Eszterは、これはSUMIF関数を使用して実行できると考えていますが、ミューテーションコードの最初の部分だけに注意を向けさせる方法を知りません。

この問題に取り組む方法はたくさんありますが、このヒントでは、3つの解決策にのみ焦点を当てます。

ヘルパー列の使用

ワークシートのレイアウトで許可されている場合は、ミューテーションコードの最初の部分のみを含むヘルパー列を追加できます。ミューテーションコードは列Aにあるため、ヘルパー列の最初のセルに次の数式を挿入できます。

=LEFT(A1, SEARCH(" ",A1,1)-1)

必要な数のセルにコピーすると、スペースの前にあるミューテーションコードのすべてを含むヘルパー列になります。次に、目的のSUMIF式を使用して、ヘルパー列の内容に基づいて合計することができます。

SUMPRODUCTの使用

問題を解決するためのかなりユニークなアプローチは、SUMPRODUCT関数を使用することです。セルE1に、関心のある序文コードを入力したとします(たとえば、セルE1に「AKT」を入力できます)。次に、次の数式を使用して目的の合計を計算できます。

=SUMPRODUCT(--(LEFT(A:A,LEN($E$1))=$E$1) * B:B)

|||これが機能するのは、SUMPRODUCTが、列Aのセルの左端の部分がセルE1に入力したものと一致するかどうかを調べるためです。含まれている場合、比較は1を返します。そうでない場合は、0を返します。次に、これに列Bの対応するセルを掛けて、合計します。

SUMIFを直接使用する

おそらく最もクリーンなアプローチは、SUMIFを直接使用することです。ヘルパー列アプローチを使用することで、SUMIFを使用してセルの内容を確認し、別の列を選択的に合計できることがわかります。あなたはこの一般的な方法でそれを行います:

=SUMIF(Check_Range, Criterion, Sum_Range)

したがって、列Aの値に基づいて列Bの値を合計する場合は、次のようにすることができます。

=SUMIF(A:A, "AKT", B:B)

もちろん、これは、AKTのみを含む列Aのセルにのみ一致します。ただし、これはEszterの状況ではありません。列Aのミューテーションコードには、AKTだけではありません。ここで、基準仕様でワイルドカードを使用することが重要になります。 Eszterが行う必要があるのは、次のようにアスタリスクを追加することだけです。

=SUMIF(A:A, "AKT*", B:B)

これで、SUMIFは、文字AKTで始まる列Aのセルのみに基づいて適切な合計を返します。アスタリスクはExcelに「これらの3文字に続くものはすべて受け入れる」と言っているので、各セルのAKT文字の後に何が続くかは問題ではありません。

このアプローチをより一般的なものにすることもできます。目的の序文コード(合計したいもの)を入れたとしましょう

セルE1に。次に、セルE2に次のように入力できます。

=SUMIF(A:A, E1 & "*", B:B)

ここで、E1に「AKT」が含まれている場合、その序文コードの値の合計になります。 E1を「BRAF」に変更すると、E2の式を変更することなく、その序文コードの合計が得られます。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13614)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。