- ベストアンサー
エクセル2003 countif関数の応用??
エクセル2003です。 A列に”りんご”、”みかん”、”すいか”と果物の名前が入っています。 B列にはその果物が売れたときにだけ、 その重量を記入します。(全部1個ずつうります。) 別シートで りんごが何個売れたかを集計した式を作りたいのです。 Countif関数を使って出来そうな気がしたのですが、 検索条件をA列にすると すでにA列に記入済みの売れていないものも数えられてしまい、 売れたりんごの数だけを導き出すことができないのです。 If関数も使えば出来そうな気がするのですが、 うまくいきませんでした。 良いアイデア有りますでしょうか? 宜しくお願いします。 或いは集計機能を使って、同じシートにうまいことできるのだろうかとも 思うのですが、、、
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
作業列を作成すれば簡単です C列を作業列にする例です セルC1に =if(b1="","",1) と入力し必要な行までコピー 別シートで =sumif(Sheet1!a1:a10,"りんご",Sheet1!c1:c10) とすればりんごの売れた個数が出ます 参考まで
その他の回答 (3)
- myRange
- ベストアンサー率71% (339/472)
りんごの個数は、 =SUMPRODUCT((A1:A500="りんご")*(B1:B500<>"")) 検査値"りんご"が、E1にあり、F1に件数を取得するにはF1に =SUMPRODUCT((A1:A500=E1)*(B1:B500<>"")) 最終行をA500にしてますがデータが増えることも考えて、 A1;A9999 とかにしておきましょう。 以上です。
お礼
myRangeさん 御回答有り難うございます。 またお礼の方が遅くなり大変申し訳ございませんでした。 SUMPRODUCT関数を使うのは気付きませんでした。 この関数とても便利ですね。 もう少し勉強しようと思います。 とても参考になり勉強になりました。 本当にどうも有り難うございました。
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 数式の一部に誤りがありましたので訂正します。 =IF(COUNTIF(Sheet1!$A:$A,$A2),SUMPRODUCT((Sheet1!$A$2:$A$100=$A2)*(Sheet1!$B$2:$B$100>0)*(Sheet1!$B$2:$B$100)),"")
お礼
mu2011さん 御回答有り難うございます。 そしてお礼が遅れまして大変申し訳ございませんでした。 sumproduct関数というは、以前にも一度 紹介してもらったことがあり、勉強したのですが、 こういう風に使えるとは気付きませんでした。 とても参考になり勉強になりました。もっと 勉強しなくてはいけません。 二度もご回答いただき本当に有り難うございました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 集計条件は、sheet1のA列の商品名とB列の個数が1以上で集計しています。 因みにsheet1、sheet2の先頭行は見出し行として、sheet2のA列に集計の商品名が入力されている事としています。 sheet2のB2に=if(COUNTIF(sheet1$A:$A,$A2),SUMPRODUCT((Sheet1!$A$2:$A$100=$A2)*(Sheet1!$B$2:$B$100>0)*(Sheet1!$B$2:$B$100)),"")として下方向にコピー
お礼
hige_082さん 御回答有り難うございます。 お礼が遅れて大変失礼いたしました。 このやり方とてもシンプルで分かり易く こちらを使わせて頂くことにしました。 作業セルというはいろいろなときに有効ですね。 もっと勉強しなくてはと思いました。