コントロールセルの一部に基づく合計(Microsoft Excel)
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に適用されます。