- ベストアンサー
複数の条件を満たすセルの個数の計算式について
- エクセルの計算式によって複数の条件を満たすセルの個数を求める方法について教えてください。
- 具体的な計算式として、B列の商品コードが「2」と「4」を含むセルの個数を数える方法を説明してください。
- また、B列の「2」と「4」を含まないセルの個数を数える計算式についても教えてください。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
#4,#7回答者です >式の内容まではあまり理解できなかったので。 まずは作業列を使った計算を考えることです =((B2=2)+(B2=4))*(D2<>"") 下へオートフィル その合計 =(B2<>2)*(B2<>4)*ISNUMBER(D2) 下へオートフィル その合計 TRUE+0 → 1 TRUE*FALSE → 0 となります。 つまり、TRUEを演算させると1になり、Falseを演算させると0になります
その他の回答 (7)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
やっと、意味がわかりました。 サンプルの解答がほしかったです =SUMPRODUCT((B2:B17={2,4})*(D2:D17<>"")) D列は数値の判定なら =SUMPRODUCT((B2:B17={2,4})*ISNUMBER(D2:D17)) または =SUMPRODUCT(((B2:B17=2)+(B2:B17=4))*(D2:D17<>"")) D列は数値の判定なら =SUMPRODUCT(((B2:B17=2)+(B2:B17=4))*ISNUMBER(D2:D17)) と =SUMPRODUCT((B2:B17<>2)*(B2:B17<>4)*(D2:D17<>"")) D列は数値の判定なら =SUMPRODUCT((B2:B17<>2)*(B2:B17<>4)*ISNUMBER(D2:D17))
お礼
No.7 CoalTarさん こんばんは。 教えていただいた数式によって、まさに希望通りの値が返ってきました。 大変感動しております。 拙い説明にもかかわらず、意図を汲んでいただき感謝しております。 上4つの式は B列が「2」と「4」のときの、D列のデータの個数を求め、 下2つの式は B列が「2」と「4」意外のときの、D列のデータの個数を求めるという 認識でいいでしょうか。 式を入力したところ、そのように返ってきましたが、 式の内容まではあまり理解できなかったので。 何はともあれ、問題が解決し大変助かりました。 ありがとうございます。 回答いただきました皆様、 知恵を貸していただき本当にありがとうございました。 自身では思いつかないような式の組み方や関数など、 大変参考になりました。 また何かあればどうぞよろしくお願いします。
- merlionXX
- ベストアンサー率48% (1930/4007)
> D列の合計が表示されました。 > D列には、「1」以上の数値も入る場合があるので、 > データの個数の求め方についてもう少し調べてみます。 え?D列の合計ではない個数? ひょっとしてB列の商品コードの2と4の数と、B列の2と4でない数ということですか? ならばD列は無関係ではないのですか? それでよければ、それぞれ =SUMPRODUCT((($B$2:$B$17=2)+($B$2:$B$17=4))*1) と =SUMPRODUCT(($B$2:$B$17<>2)*($B$2:$B$17<>4)) です。
- merlionXX
- ベストアンサー率48% (1930/4007)
SUMPRODUCTを使った場合の例です。 B列の商品コードの"2"と"4"を含む商品で、D列にあるデータの個数を数える =SUMPRODUCT(($B$2:$B$17=2)+($B$2:$B$17=4)*$D$2:$D$17) B列の"2"と"4"を含まない商品で、D列のデータの個数を数える =SUMPRODUCT(($B$2:$B$17<>2)*($B$2:$B$17<>4)*$D$2:$D$17) "2"と"4"とお書きですが、これでは文字列での2や4という意味になります。 2と4は数値でいいんですね?
お礼
No.5 merlionXXさん 返事が遅くなり申し訳ございません。 >"2"と"4"とお書きですが、これでは文字列での2や4という意味になります。 >2と4は数値でいいんですね? おっしゃるとおりです。 ご指摘ありがとうございます。覚えておきます。 回答いただいた数式ですが、D列の合計が表示されました。 D列には、「1」以上の数値も入る場合があるので、 データの個数の求め方についてもう少し調べてみます。 回答ありがとうございました。
補足
回答いただきました皆様へ 回答ありがとうございます。 「もう少し調べてみます。ありがとうございました」と結びつつ、 なかなかうまく式を立てることができず悩んでいます。 求めたいデータは、 ・B列が「2」と「4」のときの、D列のデータの個数(D列には「1」以上の数も入ります。) ・B列が「2」と「4」以外のときの、D列のデータの個数 です。 拙い説明ですみませんでした。 ちなみにExcelのバージョンは2003です。 アドバイス、よろしくお願いいたします。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
nag0720さんとかぶりますが データ(数値)の個数なら D18セルに =SUM(COUNTIF(B2:B17,{2,4})) D19セルに =COUNT(B2:B17)-D18 集計なら D18セルに =SUM(SUMIF(B2:B17,{2,4},D2:D17)) D19セルに =SUM(D2:D17)-D18
お礼
No.4 CoalTarさん 返事が遅くなり申し訳ございません。 =SUM(COUNTIF(B2:B17,{2,4})) を試してみたところ、B列の「2」と「4」の個数を返しているようです。 希望としては、B列の商品コードが「2」と「4」のときのD列のデータの個数を 求めたかったのです。 >集計なら >=SUM(SUMIF(B2:B17,{2,4},D2:D17)) 合計を求めるにも、色んな関数で表せることができるのか~と 感心しております。 データの個数の求め方については、もう少し調べてみようと思います。 回答ありがとうございました!
D18: =SUMPRODUCT(((B2:B17=2)+(B2:B17=4)),D2:D17) D19: =SUMPRODUCT((B2:B17<>2)*(B2:B17<>4),D2:D17)
お礼
No.3 mike_gさん 返事が遅くなり申し訳ございません。 回答いただきました関数を試してみましたところ、 B列の商品コードが「2」と「4」のときのD列のセル値の合計が表示されました。 もともと、SUMPRODUCT関数を組んで式を立てていましたが、 SUMPRODUCTでデータの個数を求めることが可能か疑問になりました。 なのでもう少し調べてみようと思います。 回答ありがとうございました。
- nag0720
- ベストアンサー率58% (1093/1860)
=COUNTIF(B2:B17,2)+COUNTIF(B2:B17,4) これは、B列に2と4がある個数を数える式です。 D列の数の集計をしたいなら、 =SUMIF(B2:B17,"=2",D2:D17)+SUMIF(B2:B17,"=4",D2:D17) >B列の"2"と"4"を含まない商品で、D列のデータの個数を数える これは、総合計から、2と4がある個数を引けばいいんだから、 =SUM(D2:D17)-SUMIF(B2:B17,"=2",D2:D17)-SUMIF(B2:B17,"=4",D2:D17)
お礼
No.2 nag0720さん 返事が遅くなり申し訳ございません。 回答いただいた関数を試してみたところ、 B列の商品コードが「2」と「4」のときのD列のセル値の合計が表示されました。 希望としては、D列のデータの個数を表したかったのです。 今回添付ファイルでは、全て「1」としていますが、 場合によってはそれ以上の数値が入ることもあります。 説明不足で申し訳ないです。 「2」と「4」以外のときのD列の個数については、 おおなるほど、引き算か と感心しております。 複雑に考えすぎていたようです。 データの個数の求め方についてもう少し調べてみようと思います。 ありがとございました。
質問に対する回答じゃなくて申し訳ないのですが…。 もし、この質問に対する回答がなかった場合は、 「エクセルの学校」というサイトがありますので、 そちらで聞いてみてはいかがでしょうか? 今からですと、時間も時間なので、 すぐの返答は難しいかもしれませんが、 名前の通り、エクセル専門のサイトで、 いろいろな人が関数等の質問をし、 それに対し、いろいろな人が回答してくれます。 私もよくお世話になっていますので、 よろしければぜひ。
お礼
早速の投稿ありがとうございます。 いただきましたURLも参考にさせていただきます。 できるだけすぐの返答を希望しておりますので、 上記サイトと平行して回答を受けつけようと思います。 ありがとうございます。
お礼
No.8 CoalTarさん 説明ありがとうございます。 教えていただいた内容を理解するには、まだまだ関数の基礎知識が足りないようです。 *と+の意味が理解できていません。 式を立てつつ勉強してみます。 とにかく今回は本当にありがとうございました。 今後もアドバイスをよろしくお願いいたしますm(_ _)m