[[20120303140243]] 『複数のデータの中からデータを抽出してカウントす』(ゆき) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数のデータの中からデータを抽出してカウントする方法を教えてください。』(ゆき)

はじめまして、エクセル2007を使っています。

以下のようなデータの配列があります
                       

  A   B   C   D   E   F

1 東京  製品a 製品b         渡辺 

2 東京  製品b 製品c         渡辺

3 東京  製品a 製品c 製品f 製品g 渡辺

4 東京  製品a 製品d         鈴木

5 福岡  製品a 製品d 製品f 製品g 鈴木

6 福岡  製品f 製品c         黒田

7 静岡  製品h             黒田

8 静岡  製品i 製品a         渡辺

9 沖縄  製品d 製品f         本田

A列は無限に変化します。

製品欄BCDE列はランダムでデータが無限に増えます。

F列もデータが無限に増えていきます。

このようなデータを以下のように製品ごとに、

担当者ごとに整理をしたいのですが、

関数で処理するとしたらどんな関数を使うとよいでしょうか

マクロが全然作れないので、マクロでしか処理方法がなかったら

、マクロを教えていただけないでしょうか

  A   B   C   D   E   F   G ・・・・・

      渡辺 鈴木  黒田 本田        ・・・・・

1 製品a  2   2   0   0          ・・・・・  

2 製品b  1   0   0   0          ・・・・・

3 製品c  1   0   1   0          ・・・・・  

  ・   

  ・

  ・

よろしくお願いします。


 G列以降に、関数を使って一旦集計
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]	[J]
[1]	場所	品名1	品名2	品名3	品名4	担当	製品a	製品b	製品c	製品d
[2]	東京	製品a	製品b			渡辺	1	1	0	0
[3]	東京	製品b	製品c			渡辺	0	1	1	0
[4]	東京	製品a	製品c	製品f	製品g	渡辺	1	0	1	0
[5]	東京	製品a	製品d			鈴木	1	0	0	1
[6]	福岡	製品a	製品d	製品f	製品g	鈴木	1	0	0	1
[7]	福岡	製品f	製品c			黒田	0	0	1	0
[8]	静岡	製品h				黒田	0	0	0	0
[9]	静岡	製品i	製品a			渡辺	1	0	0	0
[10]	沖縄	製品d	製品f			本田	0	0	0	1

 G1〜製品名を入れて
 G2=COUNTIF($B2:$E2,G$1)
 として必要範囲にフィルドラッグ。

 その後、F1〜の範囲でピボットテーブルを作成し
  列のフィールド [担当]
  データアイテム [製品a][製品b][製品c][製品d]・・・
 を入れて再度集計。

 (HANA)

早速のご指導をありがとうございます。

元表の製品欄の製品名をG1〜に手間無く簡単に抽出して複写するには、

何か良い方法はありませんか?

よろしくお願いします。


 HANAさんの方法がいいと思いますが、バージョンが2007ということでCOUNTIFS関数を使う方法を。

 <Sheet1>
 	A	B	C	D	E	F
 1	東京	製品a	製品b			渡辺
 2	東京	製品b	製品c			渡辺
 3	東京	製品a	製品c	製品f	製品g	渡辺
 4	東京	製品a	製品d			鈴木
 5	福岡	製品a	製品d	製品f	製品g	鈴木
 6	福岡	製品f	製品c			黒田
 7	静岡	製品h				黒田
 8	静岡	製品i	製品a			渡辺
 9	沖縄	製品d	製品f			本田

 <Sheet2>
 	A	B	C	D	E
 1		渡辺	鈴木	黒田	本田
 2	製品a				
 3	製品b				
 4	製品c				

 Sheet2のB2セルに
 =COUNTIFS(Sheet1!$F$1:$F$9,B$1,Sheet1!$B$1:$B$9,$A2)+COUNTIFS(Sheet1!$F$1:$F$9,B$1,Sheet1!$C$1:$C$9,$A2)+COUNTIFS(Sheet1!$F$1:$F$9,B$1,Sheet1!$D$1:$D$9,$A2)+COUNTIFS(Sheet1!$F$1:$F$9,B$1,Sheet1!$E$1:$E$9,$A2)
 右と下にフィルコピー

 =SUMPRODUCT((Sheet1!$F$1:$F$9=B$1)*(Sheet1!$B$1:$E$9=$A2))
 の方がすっきりしていますが、件数が増えていくということでおすすめはできません…。
 (でもCOUNTIFS関数も件数が大量だと重くなるかな?)

 (se_9)

 >データが無限に増えます。 
 とは言っても、限度が有ると思います。

 B〜E列のデータを一列に縦にリンクさせておいて
   そうは言っても 1万行を超える事は無いだろう と思えるなら
   B1:B10000をコピーして リンク貼り付け
   C2:C10000をコピーして 続きにリンク貼り付け
   D2:D10000をコピーして 続きにリンク貼り付け・・・・の準備をしておく。
 フィルタの詳細設定などで 一旦重複を除いたデータをどこかに抽出し
 行列を入れ替えて貼り付けてはどうでしょう。

 (HANA)

HANA様へ

ありがとうございました。

フィルタを使って重複データを除くのですね

勉強になりました。

ありがとうございました。


HANA 様
se_9 様

ありがとうございました。

早速、実行してみました、

例文の渡辺さんの製品aについては、

東京と静岡で販売しているので、

集計結果は「2」でよいのですが、

すべてカウントしてしまい、

結果が3になってしまいます。

渡辺さんが東京で販売している製品aを1でカウントするには

どうしたらよいでしょうか?


 私の方法だったらSheet2のA1セルに都道府県名を入れて

 =COUNTIFS(Sheet1!$A$1:$A$9,$A$1,Sheet1!$F$1:$F$9,B$1,Sheet1!$B$1:$B$9,$A2)+COUNTIFS(Sheet1!$A$1:$A$9,$A$1,Sheet1!$F$1:$F$9,B$1,Sheet1!$C$1:$C$9,$A2)+COUNTIFS(Sheet1!$A$1:$A$9,$A$1,Sheet1!$F$1:$F$9,B$1,Sheet1!$D$1:$D$9,$A2)+COUNTIFS(Sheet1!$A$1:$A$9,$A$1,Sheet1!$F$1:$F$9,B$1,Sheet1!$E$1:$E$9,$A2)

 または

 =SUMPRODUCT((Sheet1!$A$1:$A$9=$A$1)*(Sheet1!$F$1:$F$9=B$1)*(Sheet1!$B$1:$E$9=$A2))

 ですかね?

 (se_9)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.