電子書籍の厳選無料作品が豊富!

エクセルの条件付きで重複データや空白データをカウントせず、種類数をカウントする関数の書き方を教えてください。

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

「エクセルの条件付きでデータの種類をカウン」の質問画像

A 回答 (4件)

[No.1]の補足


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

この回答への補足

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

補足日時:2014/10/06 06:04
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/10/06 07:11

[No.2補足]へのコメント、


》 …#DIV/!になります
ホントですか?#VALUE! ではありませんか?

》 もう少し私も勉強してみます
「配列数式」って何かも勉強してネ。

この回答への補足

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

補足日時:2014/10/06 07:08
    • good
    • 0

データ数が99個以下なら、以下の数式を入力してCtrl+Shift+Enterで確定して配列数式にしてください。



=SUM((MATCH(IF(D5:D100<>"",C5:C100,""),IF(D5:D100<>"",C5:C100,""),0)=ROW(C5:C100)-4)*1)-1
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/10/06 07:13

添付図参照


1.フォント色を白に設定したセル F5 に式 =IF(D5,C5,"") を入力して、此れを下方にズズーッとドラッグ&ペースト
2.セル G5 に次の配列数式を入力
  =SUM(IF(D5:D14,1/COUNTIF(F$5:F$14,IF(D5:D14,C5:C14,"")),""))
「エクセルの条件付きでデータの種類をカウン」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!