Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

COUNTIFS関数と同じ機能をExcel2003で実行するには?

15,654 views
Skip to first unread message

うこピン

unread,
May 24, 2009, 5:14:06 AM5/24/09
to
すみませんが教えてください。
Excel2007では「COUNTIFS」という関数で「複数の検索条件に合致した」数を数えることができますが、Excel2003では「COUNTIFS」関数が使えません。
Excel2003でも「COUNTIFS」と同じように複数の列に複数の検索をし、条件に合致したものの数を数えるようにするにはどういう関数をどう指定すればできるでしょうか?
B列には商品名、D列には日付をそれぞれ入力していき、日付と商品名ごとの集計を自動的に行えるようにしたいと思っています。
よろしくお願いします。

かぶと

unread,
May 24, 2009, 10:55:41 AM5/24/09
to
SUMPRODUCT関数を使用してみてください。
(SUMPRODUCT関数はExcel2007でも使用可能)

簡単な例を示します。
(D列の月日はExcelで認識されている日付とします)

   A   B   C  D  F  E  
1      品名     月日    数量
2      ぶどう    5月1日     5
3      みかん    5月1日    10
4      ぶどう    5月1日    15
5      りんご    5月1日    20
6      ぶどう    5月1日    25
7      バナナ    5月1日    20
8      いちご    5月2日    10
9      ぶどう    5月2日    30
10     りんご    5月2日    20
11     バナナ    5月2日     5

このような表で
「ぶどう」と「5月1日」の組合わせとなるのは何個かというとき
Excel2007の COUNTIFS関数では
=COUNTIFS(B2:B11,B2,D2:D11,D2)
=COUNTIFS(B2:B11,"ぶどう",D2:D11,"5/1")
=COUNTIFS(B2:B11,"ぶどう",D2:D11,39934)
などで 3 が求められますが、

SUMPRODUCT関数でも
=SUMPRODUCT((B2:B11=B2)*(D2:D11=D2))
=SUMPRODUCT((B2:B11="ぶどう")*(D2:D11=39934))
などで 3 が求められます。
(39934は 2009年5月1日 のシリアル値)


ちなみに
「ぶどう」と「5月1日」の組合わせの時のE列の数量の合計を求めるというとき
Excel2007の SUMIFS関数で
=SUMIFS(F2:F11,B2:B11,B2,D2:D11,D2)
=SUMIFS(F2:F11,B2:B11,"ぶどう",D2:D11,"5/1")
=SUMIFS(F2:F11,B2:B11,"ぶどう",D2:D11,39934)
などで 45 が求められます。

SUMPRODUCT関数では
=SUMPRODUCT((B2:B11=B2)*(D2:D11=D2)*(F2:F11))
=SUMPRODUCT((B2:B11="ぶどう")*(D2:D11=39934)*(F2:F11))
などで 45 が求められます。

IIJIMA Hiromitsu

unread,
May 24, 2009, 7:45:34 PM5/24/09
to
いいじまです。

別解を提案しようと思います。

>    A   B   C  D  F  E  
> 1      品名     月日    数量
> 2      ぶどう    5月1日     5
> 3      みかん    5月1日    10
> 4      ぶどう    5月1日    15

もうひとつ列を作って、それを検索キーにするといいと思います。
たとえばG列を増設して、G2には =TEXT(B2,"yyyymmdd")&B2 のように
入れます。印刷用の資料であれば、上記の仕掛けを入れた上で、
G列を非表示にしてしまうという手もあります。

かぶと

unread,
May 25, 2009, 7:51:50 AM5/25/09
to
例に示した表を引用していただきましたが、間違っている列番号の表記を指摘訂正してほしかったです(^_^;)

------------------------

IIJIMA Hiromitsu さんが示されたことでは
その個数を求める場合は COUNTIF 関数
その合計を求める場合は SUMIF 関数
これを使用すればよいです。

IIJIMA Hiromitsu

unread,
May 25, 2009, 9:27:33 AM5/25/09
to
いいじまです。
すいません、凡ミス判明。

>>    A   B   C  D  F  E  
>> 1      品名     月日    数量
>> 2      ぶどう    5月1日     5
>> 3      みかん    5月1日    10
>> 4      ぶどう    5月1日    15
>
> もうひとつ列を作って、それを検索キーにするといいと思います。
> たとえばG列を増設して、G2には =TEXT(B2,"yyyymmdd")&B2 のように
> 入れます。

この表のまま話を進めますが、G2に入れるべき式は =TEXT(D2,"yyyymmdd")&B2 です。
要するに、日付TEXT関数に渡して20090501のような文字列に変換し、
「&」で品名欄の文字列とつなげます。

0 new messages