[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『同一フォーマットの複数シートあるデータを1シートにまとめる』(ドキン)
同一フォーマットの複数シートあるデータを1シートにまとめたいのですが、 類似 [[20040712163424]] を参照し、シート名はなんとか数式で表示できましたが、 特定セルの内容の式がわかりません。
sheet1、A1,B5,B6はいずれも文字列データです。
最終的に下記のような表にならんだ表として
A B C 1 sheet1のA1 sheet1のB5 sheet1のB6 2 sheet2のA1 sheet2のB5 sheet2のB6 3 sheet3のA1 sheet3のB5 sheet3のB6 4 sheet4のA1 sheet4のB5 sheet4のB6 〜 x sheetxのA1 sheetxのB5 sheetxのB6
となるようにしたいのですが、どのようにするとよいでしょうか? Excel2007/2010、WinXPです。 どなたか教えてください。マクロでしたら、初心者向けにご指導願います。
ん? [[20040712163424]] に書いてあると思うけど。(今、見てきた)
>シート名はなんとか数式で表示できました
そのシート名が、たとえば D列にセットされているとすれば A1に =INDIRECT(D1&"!A1") B1に =INDIRECT(D1&"!B5") C1に =INDIRECT(D1&"!B6") で、それを下にコピーして引っ張る。
ぶらっと立ち寄り
ぶらっと立ち寄り様、ありがとうございます。 〜そのシート名が、たとえば D列にセットされているとすれば〜 の理解違いか、 A1に =INDIRECT(D1&"!A1") B1に =INDIRECT(D1&"!B5") C1に =INDIRECT(D1&"!B6") を入れても、「#REF!」となってしまいます。 どうしでしょうか??
(ドキン)
今、式をいれているシートのD1に、たとえばsheet1 と入っていますか?
ぶらっと立ち寄り
はい、入ってます(ドキン)
う〜ん、わからないですねぇ。 こちらでは全行、該当シートの値がコピーされていますので。 まさか、D列に入っているシート名が実際のシート名とは異なる、存在しないシート名になっている なんてことは、ないんでしょうね。
ぶらっと立ち寄り
1.新しいブックを作成して、どこかに保存する。 シート名が Sheet1 Sheet2 Sheet3 に成っているはず。 2.シート名を表示する数式を入れる。 3.それぞれのシートのセルを参照する式を入れる。
この場合でも、「#REF!」エラーが出ますか?
その場合は、シート名を表示する数式と その式をどのシートのどのセルに入力したか。 また、入力したそれぞれのシートのセルを参照する数式 を 書いておかれると良いと思います。
↑のテストではうまくいくが、実際のファイルでうまくいかない場合は どの様なシート名をつけているのか、具体的に書いておかれると良いと思います。
これっぽい感じがしないでもないですが。。。 [[20100311115923]] 『シート名が数式のシートの一覧表を作るには』(いあ)
(HANA)
新しいシートを作ってテストしたらできました。HANAさんありがとうございます。 実際のシート名はA12345B1234という英数字なのですが、そこが問題でしょうか? 作業したいファイルでは、「#REF!」エラーが出ます。 (ドキン)
>新しいシートを作ってテストしたらできました。 でしたら、そのブックのどれか一つのシートタブに 「A12345B1234」をこちらからコピーして貼り付け シート名を↑に変更してみて下さい。
私は現在2002の環境ですが、この英数字の並びで有れば こちらでは上手く行っています。
バージョンの問題かもしれません。 作業したいファイルの問題かもしれません。 危惧して居られる様に、シート名が問題かもしれません。 或いは、もっと違った問題が有るのかもしれません。
>作業したいファイルでは、「#REF!」エラーが出ます。 シートはいくつか有ると思いますが 全て エラーなのでしょうか? それとも、上手く参照出来るシート名のシートと 出来ないシート名のシートが有りますか? 有る場合は、実際に どの名前はOKでどの名前がNGでしょう?
実際のシート名を載せられないなら 似たようなシート名を作製、確認し 【エラーに成る例】と【エラーに成らない例】を 挙げてみて貰うと良いかもしれません。
作業したいファイルにシートを一枚追加して Sheet○ と言った名前に成るはず。 そのシートを対象にして、シート名を表示させ INDIRECT関数を使ってセルを参照させた場合も上手く行きませんか?
思いつく色々な事をやってみて、問題点を探って行く必要が有ると思います。
(HANA)
作業したいファイルから「A12345B1234」1シートを新しく作った(参照できた)ブックに追加してみますと、やはり、「#REF!」エラーが出ます。 同じブック上に新しいシートを作り、「A12345B1234」1シートのデータを値のみ貼り付けしてみると、「#REF!」エラーは出ず、目的の文字列が表示できました。 どういうことでしょうか?(ドキン)
すみません、シート名は「A 12345B1234」でした。Aのあとに半角スペースが入っているのが問題でしょうか? シート名を「A 12345B1234」に変えたら再度「#REF!」エラーです。 (ドキン)
怪しいと思うことは、確認してみなくちゃ分かりません。
参照出来たファイルの参照出来ているシートのシート名を「A 12345B1234」に変えると 今まで参照出来ていたのに、急に「#REF!」に成りますね?
例えば、「Sheet2」と成っているシート名を「Sheet 2」の様に 半角スペースを使った物にすると、「#REF!」に成ります。
するとやっぱり、半角スペースが問題の様です。
参照した過去ログと、似てきた感じになりましたね。
「A 12345B1234」シートのA1セルを 「=」で参照してみて下さい。 最初のシート(一覧を作るシート)のどこかのセルに「=」を入力 Enter を押す前に 「A 12345B1234」シートのA1セルを選択し、Enter で確定。
すると、数式は ='A 12345B1234'!A1 の様に シート名の前後が「'」で囲われます。
INDIRECT関数で指定する場合も「'」で囲ってみて下さい。
(HANA)
HANAさん、ありがとうございました。 A2に下記式を入れ、3行目以降もコピーでうまくできました。 =INDIRECT("'"&D2&"'!A1") シート名に含まれる文字が数字とスペースならこれで問題なさそうですが”-”のときは難しそうですね。 (ドキン)
シート名を「'」で挟んで参照するのは 「'」が必要ないシート名に対して行っても問題は無いので とにかく挟む(いつでも前後に「'」を加える)ことにしておくので 良いのではないかと思います。 とはいえ、よっぽど痛い目に遭わないと うっかり忘れちゃうんですけどね。。。
(HANA)
そうですね。HANAさん、ありがとうございました。 (ドキン)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.