- ベストアンサー
条件に当てはまる物の種類の数を数える
エクセルでA列に品物、B列に重さが入っている表があります。 ―――――――――― |品物 |重さ | ―――――――――― |りんご|20 | |みかん|5 | |りんご|20 | |りんご|10 | |みかん|7 | |りんご|30 | |みかん|5 | |りんご|10 | |りんご|50 | |ばなな|11 | ―――――――――― この表から条件に当てはまるものの種類を出したいのですがどうしたらよろしいでしょうか。 「重さが10以上の種類の数」を出したいです。答えが2(りんごとばなな)になります。 種類はSUMPRODUCT(1/COUNTIF(A2:A11,A2:A11)) で出せるのですが、これに10g以上という条件の付加するにはどのような方法があるでしょうか。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SUMPRODUCT関数を使うのでしたら次のようにしてはどうでしょう。 C2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(B2>=10,A2,"") その上で種類は =SUMPRODUCT((C2:C11<>"")/COUNTIF(C2:C11,C2:C11))
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問があいまいでは。 りんごも重さが色々在る。 (1)行単位で10キロ以上の行を抜き出す (2)その中で種類であるりんごの行は1種類と勘定して、種類を勘定するのですか。 ーーー 作業列を使ってよいなら 例データ A列 B列 C列 りんご 20 1 <--便宜上第2行目から みかん 5 りんご 20 りんご 10 みかん 7 りんご 30 みかん 5 りんご 10 りんご 50 ばなな 11 2 ーー C2の式は =IF(AND(B2>=10,COUNTIF($A$2:A2,A2)=1),MAX($C$1:C1)+1,"") これを下方向に式複写。 他のセルで =MAX(C:C) が答え。 結果 2
お礼
何があいまいなのでしょうか。 りんごも重さが色々あると仰いますが りんご20とりんご50は別か と仰っているのでしたら質問に「答えは2でりんごとばなな」と記載してあるのでわかると思ったのですがなんだかすみません。 MAX関数こんな使い方があるんですね。参考になります。 ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 作業用の列を使う方法になりますので、 的外れなら読み流してください。 ↓の画像の作業列C2セルに =IF(AND(COUNTIF($A$2:A2,A2)=1,B2>=10),ROW(A1),"") という数式を入れ、オートフィルでずぃ~~~!っと下へコピーします。 個数を表示させたいセルE2は単純に =COUNT(C2:C1000) としているだけです。 尚、余計なお世話かも知れませんが、 条件に合う品物をF列に表示させるようにしてみました。 F2セルを =IF(COUNT($C$2:$C$1000)<ROW(A1),"",INDEX($A$2:$A$1000,SMALL($C$2:$C$1000,ROW(A1)))) としてオートフィルで下へコピーすると 画像のような感じになります。 数式は1000行まで対応できるようにしていますが、 データ量によってアレンジしてください。 以上、お役に立てれば幸いですが、 かなり外している可能性もありますので その場合は他の方の良い回答を待ってみてください。 どうも失礼しました。m(__)m
お礼
画像までつけていただきありがとうございました。非常に参考になりました。
お礼
「C2:C11<>""」このSUMPRODUCTの組み方、目から鱗です!思った事ができそうです。ありがとうございました!