[[20111214131807]] 『集計について』(あや) ページの最後に飛ぶ

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

 

 『集計について』(あや)

 XP Excel2003

 教えて下さいm(_ _)m

 元データ
 ↓
 コード  評価  年月
 133416   A   200803
 133416   B   200809
 133416   A   200903
 456789   B   200803
 456789   C   200903
 876545   C   200809
 876545   A   200909

 希望の形
 ↓
    200803 200809 200903 200909
 133416  A   B   A
 456789  B           C
 876545      C        A

 わたしの出来る範囲では
 ピボットを使って
        
        列に[年月]と[評価]
 行に[コード]
         データに[コード]
         (データの個数)

 こんな感じにして、
 1が入っている部分にVLOOKUPにて[評価]を取ってきて希望の形に調整しました。

 もうちょっと良い方法がありそうだし、他のファイルでも応用できそうなので
 良い方法があればと思い、質問させて頂きました。
 なにかありましたらお知恵をお貸し下さい。

 マクロの使用までは考えておりません。

 よろしくおねがいします。

 A列のコードが一塊になってるのが前提。

	A	B	C	D	E	F	G	H	I
1	コード	評価	年月			200803	200809	200903	200909
2	133416	A	200803		133416	A	B	A	
3	133416	B	200809		456789	B		C	
4	133416	A	200903		876545		C		A
5	456789	B	200803						
6	456789	C	200903						
7	876545	C	200809						
8	876545	A	200909						
9									
10									
11									
12									

 F2 =IF(ISNA(MATCH(F$1,OFFSET($A$1,MATCH($E2,$A:$A,0)-1,2,COUNTIF($A:$A,$E2)),0)),"",INDEX($B:$B,MATCH($E2,$A:$A,0)+MATCH(F$1,OFFSET($A$1,MATCH($E2,$A:$A,0)-1,2,COUNTIF($A:$A,$E2)),0)-1))

 範囲コピー。

 (GobGob)

 評価がA,B,Cしかないんだったら、こんな方法も。

 元の表の評価を、Aを1、Bを2、Cを3に置換するか作業列を作ってそこに
 =MATCH(B2,{"A","B","C"},0)
 というような式を入力してAを1に、Bを2に、Cを3に置換えとく。

 置き換えた方の評価を使ってピボットテーブルを作って。

 ピボットテーブルが出来たら1、2、3で表示されてる評価部分を選択して右クリックからセルの書式設定を開いて
 表示形式で分類にユーザー定義、種類に[=1]"A";[=2]"B";"C"って設定してみて。
 (春日野馨)

 E1セルの位置には「何か文字(数値は不可)」を入れて下さい。
 見出し部分の作成に関しては、コードが数値な事が前提。(年月は当然値だと思っています。)

 	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]	[J]
[1]	コード	評価	年月		CD\年月	200803	200809	200903	200909	
[2]	133416	A	200803		133416	A	B	A		
[3]	133416	B	200809		456789	B		C		
[4]	133416	A	200903		876545		C		A	
[5]	456789	B	200803							
[6]	456789	C	200903							
[7]	876545	C	200809							
[8]	876545	A	200909							
[9]										
 F1=IF(OR(E1="",COUNTIF($C$1:$C$19,"<="&E1)=COUNT($C$1:$C$19)),"",SMALL($C$1:$C$19,COUNTIF($C$1:$C$19,"<="&E1)+1))
 E2=IF(OR(E1="",COUNTIF($A$1:$A$19,"<="&E1)=COUNT($A$1:$A$19)),"",SMALL($A$1:$A$19,COUNTIF($A$1:$A$19,"<="&E1)+1))
 F2=IF(AND($E2&F$1<>"",SUMPRODUCT(N($A$1:$A$19&$C$1:$C$19=$E2&F$1))),INDEX($B$1:$B$19,SUMPRODUCT(($A$1:$A$19&$C$1:$C$19=$E2&F$1)*ROW($A$1:$A$19))),"")

 (HANA)

 GobGobさん

 コードが一塊になってはいないのです  >д<
 しかし勉強になる数式をありがとうございました。
 せっかく教えていただいたのに、
 こちらの説明不足にてスイマセンでした。

 春日さん

 今回  評価は 9種類ですが
 教えていただいた置換えの方法で
 ユーザ定義を1度設定をしておけば 
 今後スムーズに作業できそうです^^

 HANAさん
 わたしの頭では少々苦しみましたが、
 なんとか理解できました。
 勉強になる数式をありがとうございました。 

 みなさまご丁寧にありがとうございましたm(_ _)m

 (あや)

 > ユーザ定義を1度設定をしておけば 
 > 今後スムーズに作業できそうです^^
 あいにくとユーザー定義で条件は二つまでしか設定できないんで(上で書いたのだと1、2以外はC表示になっちゃう)
 9種類あるんだと無理かな。

 どうしてもってことだとピボットテーブルをコピーして形式を選択して貼り付けで値だけ貼り付けてから
 数値から元の評価に置換ってことになってめんどくさくなりそう。

 もっともExcelが2007以降だったら条件付き書式が使えるんだけど。
 (春日野馨)

 春日さん ご丁寧にありがとうございます。

 >ユーザー定義で条件は二つまで
 そうなんでしたか -д-

 >ピボットテーブルをコピーして…
 となると、VLOOKUPで作業しているのと同じくらい
 てまひまかかりそうですね。

 でも回答いただいたことにより、
 初めて知ったこともあり勉強になりました。

 ありがとうございました

 (あや)

 >ピボットテーブルをコピーして〜

 ピボットテーブルで一旦配置を換えてから
 ピボットテーブルとは別の場所へ参照&変換すれば良いのでは?

 行・列フィールド部分は単純に =IF(セル番地="","",セル番地)
 データアイテム部分は =IF(セル番地="","",MID("ABC",セル番地,1))
 って感じの式を多めに入れておいて。。。

 ピボットテーブルが残っていたって構わないんですよね?

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


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