• ベストアンサー

Excelの関数で質問です。

Excelの関数についてご質問です。 (環境:Windows XP オフィス2003です。) カテゴリ1 | カテゴリ2 | 数値1 アメリカ | ニューヨーク | b 日本 | 東京 | d 中国 | 北京 | d 日本 | 京都 | a アメリカ | ワシントン | b イギリス | ロンドン | a アメリカ | ニューヨーク | c 中国 | 上海 | c 日本 | 東京 | b 日本 | 東京 | c Excelでこのようなリストが何千行もあるときに、 1つのセルに関数を指定して、「日本」の「東京」の「a」の数をカウントしたい場合はどのように指定したら良いでしょうか? 私自身では下記のような関数を組みましたが、 =IF(AND(Sheet1!$A:$A="日本",Sheet1!$B:$B="東京"),COUNTIF(Sheet1!$C:$C,"a"),NA()) これではCOUNTIF単体で指定した値と同じ値が返ってきてしましました。 知識が乏しく、申し訳ありませんが、ご教授頂ければ幸いです。 ※マクロを走らせることも考慮しましたが、出来るだけ関数で取得したい状況にあります。解決が不可能な場合はマクロ使用を検討いたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

ご提示の例では、「日本」の「東京」の「a」の数はゼロですが・・・。 一応、以下のような数式で求められます。 =SUMPRODUCT((A2:A12="日本")*(B2:B12="東京")*(C2:C12="a"))

beogeo
質問者

お礼

すみません。存在してない「a」を指定してしましました。 >>=SUMPRODUCT((A2:A12="日本")*(B2:B12="東京")*(C2:C12="a")) こちらありがとうございます。即解決しました! 範囲の指定でA2:A12このように指定すれば出せるのですね。 実は列で指定していてエラーが出ていました。 「A:A」この指定ではだめなものもあるのですね。 もしお手数でなければこちらの理由もご教授いただけないでしょうか? お手数でしたら、参考サイトのリンクだけでもいただければと思います。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.3

補助列を使用してみては如何でしょうか? 空いている列(D列)に =カテゴリ1&カテゴリ2&数値1 仮にD1へ =A1&B1&C1 を、オートフィルで下へ =COUNTIF(D:D,"日本"&"東京"&"a")

beogeo
質問者

お礼

ご回答ありがとうございます。 こちらの方法では確実簡単で、分かりやすいですね。 参考にさせていただきます。 文字列をつなげて完全一致のカウント方法。 貴重なご意見ありがとうございました。 エクセルっていろいろと奥が深いですね。f(^-^;)

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

はい、SUMPRODUCT関数は残念ながらA:Aのような列指定は出来ません。 理由はわかりません。( ̄~ ̄;)う~ん =SUMPRODUCT((A2:A65536="日本")*(B2:B65536="東京")*(C2:C65536="a")) のようにすれば実質的に項目行を除く列全部を対象にできます。 でも、A1:A65536の指定はできません。

beogeo
質問者

お礼

>>はい、SUMPRODUCT関数は残念ながらA:Aのような列指定は出来ません。 >>理由はわかりません。( ̄~ ̄;)う~ん すみません。御忙しいところ、ありがとうございます。 大変勉強になります。お手数お掛けしました。 行数が不確定の場合には下記のご回答を参考にさせていただきます! =SUMPRODUCT((A2:A65536="日本")*(B2:B65536="東京")*(C2:C65536="a")) ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A