• 締切済み

excel 任意のセルの値をファイル名として参照

「○月前期・○月後期」、という名の2つの売上ファイルが有ります。 下記のように合計を出したく、前期ファイルの値を参照するところまでは出来たのですが、毎月ファイル名は変わってしまうので、「F1セル」あたりに数字で月を入れ、その値をファイル名「○月前期」の「”○”」にいれる方法は無いのでしょうか? 前期(1日から15日)    A      B    1 1/1   \100 2 1/2   \200 ・ ・ 9 合計   \300 後期(16日~31日)    A    B    C    D    E   F 1 1/16  \300  1/1  \100  \400  1←(ここで○月を指定、「C・D列」に前期を参照) 2 1/17  \400  1/2  \200  \600     ※「E列」は「B・D列」の合計です ・ ・ 9 合計  \700    対象の前期ファイルは閉じたままで行えるとなお良いのですが。 説明が難しいですが・・・よろしくお願い致します。

みんなの回答

回答No.2

ちょっと書き方が違うのでは?? ExcelでINDIRECT関数を使用して参照を作成する方法 文書番号:213933-対象製品 http://support.microsoft.com/kb/213933/ja 概要 MicrosoftExcelで、ワークシート関数INDIRECTを使用すると、指定された参照の内容が返され、その内容が表示されます。ワークシート関数INDIRECTを使用すると、他のブックへのリンク参照を作成できます。INDIRECT関数を使用して、ワークシートセル参照を入力とするユーザー定義の動的参照を作成することにより、参照の各属性(ブック名、ワークシート名、セル参照)を個別に参照できます。 詳細 注:INDIRECT関数では、開いているファイルへの参照結果のみが返されます。INDIRECT関数の間接的な参照先のブックが閉じている場合は、#REF!エラーが返されます。 3つの異なるセル入力を、ブック、ワークシート、セルのリンクへの参照として使用して、あるブックへの参照を作成するには、次の例の手順を実行します。 例1 1.Excelを起動します。 2.Book1、Sheet1のセルA1に、This is a testと入力します。 3.Microsoft Office Excel2003およびそれ以前のバージョンのExcelでは、[ファイル]メニューの[新規作成]をクリックし、[ブック]をクリックし、[OK]をクリックします。 MicrosoftOfficeExcel2007では、MicrosoftOfficeボタンをクリックし、[新規作成]をクリックし、[作成]をクリックします。 4.Book2、Sheet1のセルA1に、Book1と入力します。 5.Book2、Sheet1のセルA2に、Sheet1と入力します。 6.Book2、Sheet1のセルA3に、A1と入力します。 7.両方のブックを保存します。 8.Excel2003およびそれ以前のバージョンのExcelでは、Book2、Sheet1のセルB1に、次の数式を入力します。 =INDIRECT("'["&A1&".xls]"&A2&"'!"&A3) Excel2007では、次の数式を入力します。 =INDIRECT("'["&A1&".xlsx]"&A2&"'!"&A3) "This is a test"が返されます。 例2 Excel2003およびそれ以前のバージョンのExcelでは、例1の数式を、次の数式のような複数のINDIRECTステートメントに置き換えることができます。 =INDIRECT("'["&INDIRECT("A1")&".xls]"&INDIRECT("A2")&"'!"&INDIRECT("A3")) Excel2007では、次の数式を入力します。 =INDIRECT("'["&INDIRECT("A1")&".xlsx]"&INDIRECT("A2")&"'!"&INDIRECT("A3")) Excelのセルの参照方法の違いに注意してください。例1では引用符を使用せずにセルA1、A2、A3を参照しており、例2では参照の前後に引用符を使用してセルを参照しています。 INDIRECT関数で、引用符を使用せずにセルを参照する場合は、セル参照の結果が評価されます。たとえば、セルA1に"B1"というテキストが含まれていて、B1に"TEST"という単語が含まれている場合、数式=INDIRECT(A1)で返される結果は"TEST"です。 これに対して、引用符を使用してセルを参照する場合は、セルの内容が返されます。前文の例では、セルB1の内容ではなく、テキスト文字列"B1"が返されます。

全文を見る
すると、全ての回答が全文表示されます。
  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

通常indirect関数を利用します d列に =indirect(f1&"月前期!データのあるセル") f1にある月の前期シートからデータを持ってきます。

yjb_44
質問者

補足

迅速な回答ありがとうございます。 しかし「前期・後期」は別のブックになっています。 別ブックから参照する際に、[ ]で囲みますが、 =indirect([f1&"月前期]シート名!データのあるセル") の様にできず困っています。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel 

    「○月前期・○月後期」、という名の2つの売上ファイルが有ります。 下記のように合計を出したく、前期ファイルの値を参照するところまでは出来たのですが、毎月ファイル名は変わってしまうので、「F1セル」あたりに数字で月を入れ、その値をファイル名「○月前期」の「”○”」にいれる方法は無いのでしょうか? 前期(1日から15日)    A      B    1 1/1   \100 2 1/2   \200 ・ ・ 9 合計   \300 後期(16日~31日)    A    B    C    D    E   F 1 1/16  \300  1/1  \100  \400  1←(ここで○月を指定、「C・D列」に前期を参照) 2 1/17  \400  1/2  \200  \600     ※「E列」は「B・D列」の合計です ・ ・ 9 合計  \700    対象の前期ファイルは閉じたままで行えるとなお良いのですが。 説明が難しいですが・・・よろしくお願い致します。   

  • エクセルのセル参照

    エクセルで隣にくるセルを参照したいのですが、どうすればよろしいでしょうか。 F列に計算式を入れるのですが、C、D、E列を非表示にした場合、B列の値を取ってくる。というような感じです。 それが、D,E列を非表示にした場合はC列の値を取ってくるみたいな感じで、自動的に隣のセルとして認識してくれる関数みたいなのはありますか。

  • エクセル:複数セルからの参照

    お世話になります。 A,B,C列にデータが入っています。 D,E,F列に参照のためのデータがあります。 A,B,C列はそれぞれD,E,F列に対応しています。 A,B,C列と同じ並びのデータが入っている行をD,E,F列から探し、その隣のG列の値をH列に返す。 D,E,F列の並びが重複する行はありません。 A,D列は場所の名前、B,C,E,F列には数字が入っている。 例) A1に事務室 B1に20 C1に3 が入っているとする。 D/E/F列が 事務室/20/3 の並びになっているのが10行目の場合、H1にG10のセルの値を返す。 この場合、H列にはどんな計算式を入れておけばよいのでしょうか? A,B,C列と同じ並びのデータがD,E,F列で見つからない場合は空白をH列に返す。 ちなみにD/E/F列が 事務室/20/3 の並びになっている行は10行目しかないです。 よろしくお願いします。

  • エクセル2000でファイル間セル参照とセル値でファイル名参照

    ロータス123では出来た、元々あるファイルからある数値(セル)を新規ファイルへ参照したい式がエクセルでわかりません。 ファイルは電気検針等毎月使いますが、今月の数値-前月の数値で使用量を計算します。 しかし、検針日(2004年11月)西暦(1つのセル)、月(1つのセル)でこの月の部分を変更することにより前月のファイル(2004-10.XLS)の今月の数値(セル)を2004-11のファイルの前月の数値へ参照させるにはどうしたらいいでしょうか。 ロータスでの式は 「IF($D$2=1,@@("<<c:\検針\"&@STRING($B$2-1,0)&"-12.123>>E2"),@@("<<c:\検針\"&@STRING($B$2,0)&"-"&@STRING(@CHOOSE($D$2,0,12,1,2,3,4,5,6,7,8,9,10,11),0)&".123>>E2"))」でした。(たぶん@CHOOSE($D$2..は「$D$2-1」でもいいかもしれませんが今月-1で1ヶ月前をあらわしてます。@STRING(..は数値を文字列に変換しています。) B2は西暦で、D2は月です。1月の時だけ西暦を-1し、12月分を参照すし、それ以外は、セルの西暦-月をファイル名として参照させています。 別ファイルの参照式は「’(絶対パス)¥[(ファイル名.xls)](シート名)!’(セル)」 で試しましたが、「[ 」以降もセル値を反映させることが出来ませんでした。 「[ 」以降関数を入力しても入力通りの参照ファイルを探しにいきます。 よい式や関数はあるでしょうか。

  • エクセル(マクロ) 特定セルのファイル間コピペ

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 1.A.xlsを開く 2.B.xlsを開く 3.B.xlsの特定セルの値をコピーする。(特定セルを仮にB4、C7、D9とする) 4.A.xlsのC列にあるファイル名リストから「B.xls」というファイル名の入ったセルを検索する。 5.仮に5行目に「B.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE5、F5、G5とする)に3.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 6.B.xlsを閉じる 7.C.xlsを開く 8.C.xlsの特定セルの値をコピーする。(特定セルはB.xlsと同じB4、C7、D9) 9.A.xlsのC列にあるファイル名リストから「C.xls」というファイル名の入ったセルを検索する。 10.仮に7行目に「C.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE7、F7、G7とする)に8.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 11.C.xlsを閉じる 12.D.xlsを開く 以下、同じ処理を繰り返す。

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • エクセル 特定セルの足し算をするマクロ

    C列、D列、E列を足し合計をF列に記入するマクロを教えて下さい。 (3行目から値のある行まで。)  A B  C  D  E   F 1 2 3     24  16  19  59となる様に 4     35  49  41 5     22  19  72 6     ・   ・   ・ 7     ・   ・   ・ 宜しくお願いします。

  • 隣のセルの値を参照させたい@excel(エクセル)

    エクセル初心者です。 C列に計算式が入ってるとします。ブランクの場合と数字の場合とがあります。隣のD列に、C列の値もしくはブランクをそのまま参照させたいのです。(C1が20ならD1も20に、C2がブランクならD2もブランクにしたいという意味です) また、D列の値を参照して、G列に計算式が入ってます。 (元々はD列には手入力で数字を入力するつもりで計算式を組みました。その後、C列とD列が全く同じものでよくなったので、タイトル通りの質問になりました。 ただ、値は同じものでよいのですが、C列とD列は意味合いが違いますので、D列を作らないわけにはいきません。) まずやってみたのは、例えばD1に「=C1」といれてみました。そうすると、D1は上手くいくのですが、D1を参照してる、少し離れたG1が「#VALUE!」となります。 条件付書式とかも試してるのですが、イマイチうまくいかず。 何かよい解決方法はないでしょうか?

  • エクセルのセル参照、一つずつ参照セルをずらしていきたい

    エクセルのセル参照の方法について教えてください。 2つのシートがあって、 ひとつのシートにはC4,D5,E6…というように行と列がひとつずつ増えていくところに値が入力されています。 このシートから、C4,D5,E6…のセルの値を取り出して 別のシートのA1,A2,A3…に縦に並んで表示させたいのですが、どのようにセルを参照させればC4,D5,E6…という 行と列がひとつずつ増えていくセルを参照できるでしょうか? よろしくお願いいたします。

  • 別のエクセルファイルを参照しながら活用したい

    例えば: A. B. C. D. E. F G 1. 名 部 長 110 120 130 2. 1 a 99d 25 1 0 1 3. 2 b 11k 15 0 1 1 こう言うデータがあるとします。ファイル名を data.xls とします。このファイルがE, F, G が時には違う列にあります。 別ファイルを「表示.xls」とします。 このファイルにもし、一番の列の番号が書かれたら,E, F, G番号の下に「1」だった場合はその番号の後ろの2桁を表示したいのです。 具体的に言うと 「1」の場合は : a 99d 25 10, 30 「2」の場合は : b 11k 15 20, 30 Vlookup を使ったら何とかなりますけど「E、F、G」の列が違うときにもう一度関数を書きたくないのです。手間がかかりますので。 いい案をお願いします。

専門家に質問してみよう