MyNoteBook weblog

自作ソフトウェアや気になるものについて書いています

<< June 2009 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>

Excelで文字列を串刺し(?)にする(その3)

どういう仕組みなのか、説明してみる。

シート名:集計
  A  B
1 校名 回答
2 □中
3 △中
4 ○中

B2:=INDIRECT(A2&"!"&CELL("address",B2))

まず、CELL("address",B2) は、$B$2というセル番地を示している。
そして、A2セルには、”□中”という文字列が入力されているので、
=INDIRECT(A2&"!"&CELL("address",B2)) は
=INDIRECT("□中!$B$2") ということになる。
INDIRECTは、文字列をアドレスに変えてくれるので、
結局、B2セルには、= □中!$B$2 という数式が入力されていることと同じというわけ。

セル番地を参照するので、
B2:=INDIRECT(A2&"!"&CELL("address",B2)) であって
B2:=INDIRECT(A2&"!"&B2) ではだめです。

この関数一つ作れば、あとはコピーで集計シートがいくつあっても問題なく、1つにまとまります。

いやー、長年の悩みがすっきりして、気持ちいいー!
それにしても、INDIRECT関数をもう少し、研究する必要がありそうです。
ソフトウエア | - | trackbacks (0)

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 ○中 やれやれ
ソフトウエア | - | trackbacks (0)

Excelで文字列を串刺し(?)にする(その1)

複数の同じ形式のシートに入力されたデータを串刺し計算することは、Excelでは良く行われる。
=SUM(Sheet1:Sheet2!E3)のような書き方ができる。
しかし、それは数値での話し。
文字列を同じようにはできない。
=CONCATENATE(Sheet1:Sheet2!E3)では、エラーになってしまう。
=Sheet1!E3&Sheet2!E3とすればよいのだが、シートがたくさんあるときは面倒だ。

ずーっと悩んでいた。
(1)下のようなシートをもつファイルを3つの中学校に送付する。(本当はもっと多いけど・・・)
  A  B
1 校名 回答
2 □中
3 △中
4 ○中

(2)それぞれの中学校が自校の回答を入力して、返信する。
 □中
  A  B
1 校名 回答
2 □中 ほげほげ
3 △中
4 ○中

 △中
  A  B
1 校名 回答
2 □中
3 △中 ごにょごにょ
4 ○中

 ○中
  A  B
1 校名 回答
2 □中
3 △中
4 ○中 やれやれ

(3)この3つのファイルを1つのブックに結合する。

(4)3つのシートを集計する。
  A  B
1 校名 回答
2 □中 ほげほげ
3 △中 ごにょごにょ
4 ○中 やれやれ

(3)は複数ファイルを1つのブックにまとめるマクロを使う。
問題は(4)
数値のように簡単に串刺しみたいにまとめる方法はないのか・・・。
ソフトウエア | - | trackbacks (1)
CATEGORIES
NEW ENTRIES
RECOMMEND
【いちばんやさしい教える技術】…
いちばんやさしい教える技術

Book (発売日:2012-04-16)
【いままでのA面、B面ですと!?(通常盤)】…
いままでのA面、B面ですと!?(通常盤)

Music (発売日:2009-11-25)
RECENT TRACKBACK
ARCHIVES
PROFILE
OTHER