Excelで文字列を串刺し(?)にする(その2)
その1からのつづき。
なるべく汎用的に、できれは、マクロは使わずにやるには、どうしたらよいか。
いろいろ調べたら、INDIRECT関数とCELL関数が使えそうだということが分かった。
■INDIRECT関数とは
本来なら文字列として入力されているデータを、計算式の中で使える「セルのアドレス」に変換する。
■CELL関数とは
参照するセルの書式や位置、内容などを調べる
(1)それぞれのデータは次のようになっている。
シート名を校名と同じにしてあるところがポイント
シート名:□中
A B
1 校名 回答
2 □中 ほげほげ
3 △中
4 ○中
シート名:△中
A B
1 校名 回答
2 □中
3 △中 ごにょごにょ
4 ○中
シート名:○中
A B
1 校名 回答
2 □中
3 △中
4 ○中 やれやれ
(2)集計シートを作る。
シート名:集計
A B
1 校名 回答
2 □中
3 △中
4 ○中
(3)セルB2に次の式を入力する。
=INDIRECT(A2&"!"&CELL("address",B2))
(4)B2の数式を、B3、B4へコピーする。
B3:=INDIRECT(A3&"!"&CELL("address",B3))
B4:=INDIRECT(A4&"!"&CELL("address",B4))
となっているはず。
(5)無事に3つのシートのデータがまとまる。
シート名:集計
A B
1 校名 回答
2 □中 ほげほげ
3 △中 ごにょごにょ
4 ○中 やれやれ
なるべく汎用的に、できれは、マクロは使わずにやるには、どうしたらよいか。
いろいろ調べたら、INDIRECT関数とCELL関数が使えそうだということが分かった。
■INDIRECT関数とは
本来なら文字列として入力されているデータを、計算式の中で使える「セルのアドレス」に変換する。
■CELL関数とは
参照するセルの書式や位置、内容などを調べる
(1)それぞれのデータは次のようになっている。
シート名を校名と同じにしてあるところがポイント
シート名:□中
A B
1 校名 回答
2 □中 ほげほげ
3 △中
4 ○中
シート名:△中
A B
1 校名 回答
2 □中
3 △中 ごにょごにょ
4 ○中
シート名:○中
A B
1 校名 回答
2 □中
3 △中
4 ○中 やれやれ
(2)集計シートを作る。
シート名:集計
A B
1 校名 回答
2 □中
3 △中
4 ○中
(3)セルB2に次の式を入力する。
=INDIRECT(A2&"!"&CELL("address",B2))
(4)B2の数式を、B3、B4へコピーする。
B3:=INDIRECT(A3&"!"&CELL("address",B3))
B4:=INDIRECT(A4&"!"&CELL("address",B4))
となっているはず。
(5)無事に3つのシートのデータがまとまる。
シート名:集計
A B
1 校名 回答
2 □中 ほげほげ
3 △中 ごにょごにょ
4 ○中 やれやれ
ソフトウエア | - | trackbacks (0)