[[20140719134729]] 『表の列タイトル・行タイトルを抽出するには』(ヒレカツ) ページの最後に飛ぶ

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

 

『表の列タイトル・行タイトルを抽出するには』(ヒレカツ)

お世話になります。

 表1のようにA〜D列に記号が入力されています(実際はJ列 10段くらいまで)。
 これを
 1.記号をF列に縦に並べ
 2.その記号の列・行のタイトルをG列に表示させたい

 できれば関数でできないものでしょうか(無理ならvbaで)。
 よろしくお願いします。

 【表1】
 A  B  C  D
――――――――――
   A   B   C
 1 za10 za20 za30
 1 zb10 zb20 zb30
 2 zc10 zc20 zc30
 3 zc10 zc20 zc30

 【関数により下記のように表示させたい】
 F   G
 ―――――
 za10  1A
 za20  1B
 za30  1C
 zb10  1A
 zb20  1B
 zb30  1C
 zc10  2A
 zc20  2B
 zc30  2C
 zc10 3A 
 zc20 3B
 zc30  3C

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >(実際はJ列 10段くらいまで)
 >1.記号をF列に縦に並べ
 だと、元の表と範囲が重なってしまいますが
 実際に結果を表示したい場所の先頭セルはどこですか?
  
(HANA) 2014/07/19(土) 15:57

 > 実際に結果を表示したい場所の先頭セルはどこですか?

表の右横であれば特に指定はありません。
(ヒレカツ) 2014/07/19(土) 20:32


 HANAさんお先に回答すみません。

 がんばって考えてみました。
 とりあえずF列にB,C,Dを縦表示する方法です。
 F1に
 =OFFSET(B$1,INT((ROW(A1)-1)/3),MOD(ROW(A1)-1,3))

 G列はA列の1,1,2,3の規則(特に3行目4行目)がよくわからないのでとりあえずG列を作業列にして
 G1に
=LEFT(OFFSET(B$1,INT((ROW(A1)-1)/3),MOD(ROW(A1)-1,3)),2)
 または
=LEFT(f1,2)

 H1に
=OFFSET(A$1,INT((ROW(A1)-1)/3),0)&CHOOSE(COUNTIF(G$1:G1,G1),"A","B","C","A","B","C")

 ↑ここもよくわかりませんでした。

 >表の右横であれば特に指定はありません。
 データがJ列まで有って、数式がK列より右側になるようなら
 式を修正してください。

(jun53) 2014/07/20(日) 00:24


 おっと、jun53と衝突しちゃいましたがせっかくなので書いておきます。

 >表の右横であれば特に指定はありません。
 でしたら
 L1に
 =IF(INDEX($B$2:$J$10,INT(ROW(A9)/9),MOD(ROW(A9),9)+1)="","",INDEX($B$2:$J$10,INT(ROW(A9)/9),MOD(ROW(A9),9)+1))
 M1に
 =IF(L1="","",INDEX($A$2:$A$9,INT(ROW(A9)/9))&INDEX($B$1:$J$1,MOD(ROW(A9),9)+1))
 として必要行フィルドラッグ
 でどうですか?

 ROW(A9) とか、そのすぐ続きの 9 というのは、データが B〜Jの9列分 という事です。
  
(HANA) 2014/07/20(日) 00:26

 HANAさん jun53さん 迅速なご回答ありがとうございました。
 HANAさんの方法でうまくいきました。

 私の質問の仕方が悪くて申し訳なかったのですが
 1.表のデータを順に抽出
 2.そのデータの列タイトルと行タイトルを合わせてデータの横に並べる
 3.行タイトルやデータは重複の場合あり
 を書きたかったのです。

 今後ともよろしくお願いします。
(ヒレカツ) 2014/07/20(日) 10:51

コメント返信:

[ 一覧(最新更新順) ]


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