• ベストアンサー

エクセルの条件付きでデータの種類をカウントする関数

エクセルの条件付きで重複データや空白データをカウントせず、種類数をカウントする関数の書き方を教えてください。 C列の5行目から14行目に「品目」が入力され、D列に「売れた数」が入力されているとします。売れていない場合は「売れた数」は空白。品目等のデータがない行もあります。品目には重複しているものもあります。 ここで、G5セルに「売れた品目の種類数」を表示させる関数をどのように書けばよいか教えてください。 SUMPRODUCTやCOUNTIFまたはMATCH関数を使っていろいろ試してみましたが、うまくいきません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.2

[No.1]の補足 セル G5 の式は、そのまんまでも構わないけど、若干冗長な箇処があるので、次式に訂正しておきます。ただし、此れも配列数式です。 =SUM(IF(D5:D14,1/COUNTIF(F5:F14,IF(D5:D14,C5:C14,"")),""))

edoharu
質問者

お礼

ありがとうございました。もっと勉強します。関数についても、配列数式についても。

edoharu
質問者

補足

やってみましたが#DIV/!になります。どこかまちがっているのでは。 でもこれがいちばん簡明な回答に近い気がします。 もう少し私も勉強してみます。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

[No.2補足]へのコメント、 》 …#DIV/!になります ホントですか?#VALUE! ではありませんか? 》 もう少し私も勉強してみます 「配列数式」って何かも勉強してネ。

edoharu
質問者

補足

あそうか、わかりました。配列数式っていうのをわかっていませんでした。上手く行きそうです。ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

データ数が99個以下なら、以下の数式を入力してCtrl+Shift+Enterで確定して配列数式にしてください。 =SUM((MATCH(IF(D5:D100<>"",C5:C100,""),IF(D5:D100<>"",C5:C100,""),0)=ROW(C5:C100)-4)*1)-1

edoharu
質問者

お礼

ありがとうございました。ベストアンサーにしなかった事をお許し下さい。でもこれも勉強になりました。もっと配列数式の事を勉強します。

noname#204879
noname#204879
回答No.1

添付図参照 1.フォント色を白に設定したセル F5 に式 =IF(D5,C5,"") を入力して、此れを下方にズズーッとドラッグ&ペースト 2.セル G5 に次の配列数式を入力   =SUM(IF(D5:D14,1/COUNTIF(F$5:F$14,IF(D5:D14,C5:C14,"")),""))

関連するQ&A