• ベストアンサー

EXCEL 条件付きの種類数の算出

エクセルで、条件にあった列のデータ種類数を算出する計算式(関数)を教えてください。  (A) (B) (C) (1) 日本 関東 東京 (2) 日本 関東 千葉 (3) 日本 関西 大阪 (4) 日本 関西 千葉 A列が「日本」かつB列が「関東」のC列の種類 東京と千葉の2種類なので、答えは「2」 よろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

データは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&"*"),"")

HaruXP
質問者

お礼

=IF(COUNTA(E2:F2)=2,COUNTIF(D:D,E2&F2&"*"),"") D列に検索条件用の文字列を作成し、E2とF2で指定した条件の文字列を数えるという事ですね。 D列のデータ生成方法が、なるほど!の一言でした 勉強になりました。ありがとうございます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

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。 #ま,こういうのは使えないので使わないでください。ていうか作業列を使わないと,こんなに酷くなくても似たり寄ったりの具合にしかできませんよというお話です。

HaruXP
質問者

お礼

御回答ありがとうございます。 式を理解するのに、苦労してしまいました。 作業列を利用しないで、1つの式であらわすと、このようになるのですね。 なんとかして1つの式で表してみたいと思っていたのですが メンテナンス性を考えると、作業列を利用したほうがよいと、改めて実感いたしました。 勉強させていただきます。ありがとうございました

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 一例です。 ↓の画像のように作業用の列を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

HaruXP
質問者

お礼

御回答ありがとうございます。 見やすい表まで添付して頂き、お手数おかけ致しました。 KURUMITO様と同様に、作業列を生成してから集計するのが一番シンプルかつ、他者が見ても納得の方法ですね。 やはり、E列の各行ごとに検索範囲が拡張されていく手法が 条件付種類数の抽出方法を求めるポイントなんですね。 勉強になりました。ありがとうございました。

関連するQ&A

  • エクセルでセルに値を設定する方法

    エクセルでセルの条件によって別のセルに値を設定するのはどうすればよいのでしょうか? <例>  A列が関東ならばC列に東京、関西ならば大阪と、A列の条件によってC列に決まった値を設定  する方法を教えてください。   A列    B列    C列   関東   東京    東京       関西   大阪 大阪   関東   埼玉 東京   関東   千葉    東京   関西   兵庫 大阪

  • 時間数の算出

    エクセル関数について教えてください。 22:00から翌日5:00の時間数を関数をいれ、自動算出出来るようにしたいのですが、 セルA1に22:00 セルB1に5:00 セルC1に時間数を出したいときに単純にB1-A1にすると算出できません。 セルB1に29:00と入力すれば計算できることは知っていますが...。 5:00と入力するだけで計算することは出来るのでしょうか? 関数をおしえていただけないでしょうか

  • エクセル(時間の算出)仕方を教えてください。

    エクセル(時間の算出)仕方を教えてください。 図のようにB2-A2で移動した時間(C2)が出ますが、B3-A3では図のようなコメントが出て計算ができません。C3の答えを1:30の答えになるにはどうしたら良いでしょうか?すごく困ってます。教えてください。 宜しければIF関数も交えてお答え頂ければありがたいです。

  • Excel2003で A列とB列ともに条件にあう数をCOUNTしたいの

    Excel2003で A列とB列ともに条件にあう数をCOUNTしたいのですが、どうしたらよいでしょうか。 例)A     B   関東    金   関西    金   中部    銀   関東    金   関西    銀   中部    銀   中部    金   関東    銀 のように入力されていたとします。 この中から 「関東」・「金」 の回数 =2 「関西」・「金」 の回数 =1 のようにフィルタをかけてSUBTOTALで算出したみたいな答えがほしいのですが、 フィルタをかけずに計算で出すにはどのような式にしたらよいのでしょうか。

  • エクセルの関数について教えて下さい。

    エクセルの関数について教えて下さい。 マラソンのデータを作るとします。 A列には開催地、B列にはタイム、C列には距離を入力します。 A1 大阪 A2 東京 A3 大阪 B1 1:12:12 B2 1:14:25 B3 1:13:15 C1 25000m C2 26000m C3 25000m この時、大阪の25000mで一番早い時計を関数のみ使い求めたい 場合どのような計算式で求められるでしょうか? 計算結果はD1セルにお願いします。 バージョンはエクセル2003です。

  • エクセル関数について質問があります。

    エクセル関数について質問があります。 A列を算出条件として、B列の値を使用して算出計算を行う方法を教えてください。 IF関数とor演算子を使うところまで調べることができたのですが、応用できませんでした。 文章が下手で申し訳ございませんが、よろしくお願いします。 ---------------------------------------- ●A列(算出条件) 算出条件(A = 01,02,03 ならば足し算を行う) (A = 04,05ならば引き算を行う) ●B列(計算される数) 計算される数(B) ●C列(C列は説明の為、記述しました。無視してください。) ●計算結果 (+ 100 - 50 + 50 + 50 - 50) = 100 表 |A |B | C |01|100 | +100 |04|50 | -50 |03|50 | +50 |02|50 | +50 |05|50 | -50 |結果? | +100

  • エクセルでの複数条件での平均値算出

    お世話になっております。 エクセルで、複数条件に一致した場合のみの平均値を算出する関数が判らずに困っております。 数値の他に「○」「×」「担当」「管理」「その他」とあり、どの様な関数を組めば良いのか、さっぱり判りません。 例としては次のとおりです。  A    B   C     D    1該  点数  A君  B君 2○  3.5   担当  管理 3○  3.9   担当  その他 4×  4.2   管理  担当 5○  4.1   管理  その他 6×  3.9   その他 担当 7        △     □ 上記の表があったします。 条件1:A列の該当が「○」 条件2:C列が「担当」もしくは「管理」 条件1と2を同時に満たした場合のみ、B列の点数を平均する 個々の平均を算出する式はC7(△)・D7(□)のセルでのみ処理を行う 上記なのですが、式が長くなっても構いません。 どなたかお判りになる方、なんとか教えて頂けませんでしょうか。

  • <エクセル>複数条件下での個数の数え方

    A列に都道府県、B列に地域、C列に売上がある表があります。 東京と大阪を除いた地域のうち、C列で0以上のセルの個数を表示したいと思います。(ここだと2コ) countif、dcountなど考えましたが、うまく表示できません。 列を増やさず、個数を表示できる関数を教えてくださいますか? 宜しくお願いします。    A    B       C 1 東京    新宿    500 2 大阪    心斎橋    0 3 名古屋   栄     300 4 東京    渋谷     0 5 北海道   札幌    100 6 宮城    仙台     0 7 大阪    梅田    100  

  • 複数条件かつ重複を除いた数を算出する関数(マクロ

    複数条件を満たし、かつ、重複を除いた値(ユニーク化した値)を算出する 関数(またはマクロ)を教えてください。 ※マクロの場合は、別シートへの出力が希望です。 一度、SUMPRODUCT((Sheet1!$C$2:$C$65536="2011/1/17")*(Sheet1!$D$2:$D$65536 ="2011/1/25"))で算出してみましたが、重複した値までカウントしてしまうので、困っており ます。 日付1と日付2を1つの組み合わせとし、フラグ列の重複を除いた状態(ユニーク化した状態) で、種類数を算出出来れば嬉しいです。 【元データ】 住所     職業     日付1     日付2       フラグ 東京都    会社員   2011/1/17   2011/1/28   AAA 千葉     会社員   2011/1/17   2011/1/28   BBB 東京都    主婦     2011/1/17   2011/1/28   AAA 愛知     公務員   2011/1/17   2011/1/25   AAA 神奈川    主婦     2011/1/17   2011/1/25   CCC 富山     無職     2011/1/31   2011/2/11   DDD 沖縄     公務員   2011/1/31   2011/2/11   EEE 北海道    無職     2011/1/31   2011/2/11   EEE 埼玉     会社員   2011/1/31   2011/2/11   DDD 沖縄     公務員   2011/3/14   2011/3/25   GGG 千葉     会社員   2011/3/7    2011/3/18    HHH 【希望】 日付1         日付2      数 2011/1/17     2011/1/25    2 ←2011/1/17と2011/1/25の組み合わせで、フラグ列にAAA,CCCの2種類あり 2011/1/17     2011/1/28    2 ←2011/1/17と2011/1/28の組み合わせで、フラグ列にAAA,BBBの2種類あり 2011/1/31     2011/2/11    2 ←2011/1/31と2011/2/11の組み合わせで、フラグ列にDDD,EEEの2種類あり 2011/3/7      2011/3/18    1 ←2011/3/7と2011/3/18の組み合わせで、フラグ列にHHHの1種類あり 2011/3/14     2011/3/25    1 ←2011/3/14と2011/3/25の組み合わせで、フラグ列にGGGの1種類あり 分かり難くて申し訳ありませんが、どうぞよろしくお願いいたします。

  • Excelの関数を使った複数の条件式

    以下のような表があったとします。 列A  列B  列C 1地域 担当 売上 2東京 寺川 100円 3大阪 寺川 200円 4大阪 田中 300円 5京都 寺川 100円 例えば、 「地域が東京か大阪で」「担当が寺川さん」の売上合計を出したい。 この場合、2行目と3行目が該当するので、 答えは 300円 となるわけですが、 このような答えを導く条件式を、Excelの関数で作れるでしょうか? ヘルプを見ていて、SUMIFという関数が使えそうな気がしたのですが、 色々ためしても、どうもうまくいきません。 どなたか、ご回答よろしくお願いします。

専門家に質問してみよう