今、図のようなエクセルのシートがあります。
(ファイルもこちらにあります。https://xfs.jp/pB7ImT )
「商品コード」という列に、"天丼"、"カレー"、"ラーメン"という値が入っています。
COUNTIF関数を使って「=COUNTIF(B2:B14,"天丼")」とセルに入力すれば、その数が"5"であると集計することは、私にもできるのですが。
今回は、隣の「メニューID」列に"B"or"C"が入っていた場合、重複してカウントする」という条件で、集計したいのです。
例えば、図の赤字箇所にありますように。
このルールで集計した場合、"天丼"を含む5行のうち、3行は「メニューID」列に"B"と"C"が含まれるため、倍の"2"としてカウントしなくてはなりません。
そのため、2倍集計の"天丼"の結果としては"8"という値を出したいのです。
同様に、"カレー"は"B"を3行含むので"7"になり、"B"と"C"を合わせて2行含む"ラーメン"は"6"と出したいのです。
これを、他のセルに値等を仮に入れることなく、関数で実現することは可能でしょうか。
いくつかの関数の組み合わせで出来るような気もするのですが、頭を抱えております。
お力添えいただけますと幸いです。
よろしくお願い致します<m(__)m>
「配列数式」を使うと、表の方に手を加えなくてもいけそうです。
質問の画像のシートで、B20 のセルに以下の式を打ち込んで、Ctrlキーと Shiftキーを押しながら Enterキーを押してください。
=SUM(IF($B$2:$B$14=A20,IF(ISERROR(FIND($C$2:$C$14,"BC")),1,2),0))
普通であれば、Enterキーを押してセルのデータを確定するところを、「Ctrlキーと Shiftキーを押しながら」というのが大切です。
「配列数式」については、「excel 配列数式 sum」というキーワードでググると、似たような事例を説明しているページが引っかかります。
実物の方は見られないので制限を書いておくと、C列のメニューID は 1文字であることが前提です。
エクセルデータを作成しましたので、
上記URLよりダウンロードして、
ご確認いただきますよう
よろしくお願いいたします。
aSayuriさんありがとうございます!
「=IF($B12=M$1,1+IF(OR($C12="B",$C12="C"),1,0),0)」という式、勉強になります。
もしBかCに一致した場合、1を+して、一致しないと0を+なので変化なし、というわけなのですね。
ただ実は、別セルで個別に計算して合算する方法もあるかと思いますが、個別に使えない事情がありまして…実は、実際のシステムは表のレイアウトが固定されて編集できないため、一行の式で算出しないといけない状況なのです( ;∀;)
B列の値、"天丼"と"カレー"と"ラーメン"等に特に規則性もありません。
色々な値が不規則に数千行、並んでおります。
条件一致のCOUNTIF関数で集計する際に、「メニューID列」の"B"or"C"の場合は2倍計上する条件を加えて、最終的に集計するというのを一行の関数式で可能でしたら。
度々のお願いで恐れ入りますが、お教えいただけないでしょうか。
よろしくお願い致します。
「配列数式」を使うと、表の方に手を加えなくてもいけそうです。
質問の画像のシートで、B20 のセルに以下の式を打ち込んで、Ctrlキーと Shiftキーを押しながら Enterキーを押してください。
=SUM(IF($B$2:$B$14=A20,IF(ISERROR(FIND($C$2:$C$14,"BC")),1,2),0))
普通であれば、Enterキーを押してセルのデータを確定するところを、「Ctrlキーと Shiftキーを押しながら」というのが大切です。
「配列数式」については、「excel 配列数式 sum」というキーワードでググると、似たような事例を説明しているページが引っかかります。
実物の方は見られないので制限を書いておくと、C列のメニューID は 1文字であることが前提です。
a-kuma3さんありがとうございます、うまくいきました!
配列数式も複雑ですね、勉強します
ぼくも配列数式は滅多に使いません。手札のひとつとして持ってはいますけれど。
指定が無ければ、ぼくも列を増やす方向で、まず考えます。
該当の表に手を入れられない、という条件が付くなら、以下の手段を取ることが多いと思います。
a-kuma3さんありがとうございます、うまくいきました!
配列数式も複雑ですね、勉強します
ぼくも配列数式は滅多に使いません。手札のひとつとして持ってはいますけれど。
指定が無ければ、ぼくも列を増やす方向で、まず考えます。
該当の表に手を入れられない、という条件が付くなら、以下の手段を取ることが多いと思います。