アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで、条件にあった列のデータ種類数を算出する計算式(関数)を教えてください。

 (A) (B) (C)
(1) 日本 関東 東京
(2) 日本 関東 千葉
(3) 日本 関西 大阪
(4) 日本 関西 千葉

A列が「日本」かつB列が「関東」のC列の種類
東京と千葉の2種類なので、答えは「2」

よろしくお願いいたします。

A 回答 (3件)

データは2行目から下方にあるとします。


D2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(COUNTIF(D$1:D1,A2&B2&C2)=0,A2&B2&C2,"")

A列で検索する文字列をE2セルにB列で検索する文字列をF2セルに入力します。
例えばE2セルに日本、F2セルに関東と入力します。
G1セルには該当検索種類数とでも入力します。
G2セルには次の式を入力して下方にオートフィルドラッグします。


=IF(COUNTA(E2:F2)=2,COUNTIF(D:D,E2&F2&"*"),"")IF(COUNTA(E2:F2)=2,COUNTIF(D:D,E2&F2&"*"),"")
    • good
    • 3
この回答へのお礼

=IF(COUNTA(E2:F2)=2,COUNTIF(D:D,E2&F2&"*"),"")

D列に検索条件用の文字列を作成し、E2とF2で指定した条件の文字列を数えるという事ですね。

D列のデータ生成方法が、なるほど!の一言でした
勉強になりました。ありがとうございます。

お礼日時:2010/03/23 18:55

こんばんは!


一例です。

↓の画像のように作業用の列を2列使っています。
作業列D2セルに
=A2&B2&C2
E2セルに
=IF(D2="","",COUNTIF($D$2:D2,D2))
として、D2・E2セルを範囲指定しE2セルのフィルハンドルで下へずぃ~~~!っとコピーします。

そして、結果のI2セルには
=IF(COUNTBLANK(G2:H2)>0,"",SUMPRODUCT((A2:A100=G2)*(B2:B100=H2)*(E2:E100=1)))
という数式を入れています。
尚、100行目まで対応できる数式にしていますが
データ量によって範囲指定の領域はアレンジしてください。

以上、参考になれば良いのですが
他に良い方法があれば読み流してくださいね。m(__)m
「EXCEL 条件付きの種類数の算出」の回答画像2
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。
見やすい表まで添付して頂き、お手数おかけ致しました。

KURUMITO様と同様に、作業列を生成してから集計するのが一番シンプルかつ、他者が見ても納得の方法ですね。

やはり、E列の各行ごとに検索範囲が拡張されていく手法が
条件付種類数の抽出方法を求めるポイントなんですね。

勉強になりました。ありがとうございました。

お礼日時:2010/03/23 19:05

ABC列の1234行にデータ


E1に日本
F1に関東として

ごにゃごにゃやってみたらこんなんなりました。
=COUNT(1/FREQUENCY(IF((A1:A4=E1)*(B1:B4=F1),MATCH(A1:A4&B1:B4&C1:C4,INDEX(A1:A4&B1:B4&C1:C4,0),0)),IF((A1:A4=E1)*(B1:B4=F1),MATCH(A1:A4&B1:B4&C1:C4,INDEX(A1:A4&B1:B4&C1:C4,0),0))))
これをコントロールキーとシフトキーを押しながらEnter。


#ま,こういうのは使えないので使わないでください。ていうか作業列を使わないと,こんなに酷くなくても似たり寄ったりの具合にしかできませんよというお話です。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

式を理解するのに、苦労してしまいました。
作業列を利用しないで、1つの式であらわすと、このようになるのですね。

なんとかして1つの式で表してみたいと思っていたのですが
メンテナンス性を考えると、作業列を利用したほうがよいと、改めて実感いたしました。

勉強させていただきます。ありがとうございました

お礼日時:2010/03/24 09:15

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