Excelで他のファイルのデータを読み込み、それを式に入れて関数を作る方法

このQ&Aのポイント
  • Excelで他のファイルのデータを読み込み、それを式に入れて関数を作る方法を教えてください。
  • VBAを使用して一週間前のファイル名を取得し、それを式に組み込んでデータを取得する方法を教えてください。
  • ファイル名に日付が含まれる場合、どのように処理すれば良いか教えてください。
回答を見る
  • ベストアンサー

excelで他のファイルのデータを読みこみ、それを式に入れて関数を作るには?

累計処理をするファイルを作りたいと思っています。 1週間前のファイルの累計の表と今週の週計の表をあわせた表を 今週の累計シートに作りたいと思っています。 VBAをくんだのですが、一週間前のファイル名が「第1週.xls」の時は、 うまくいくのですが、「第1週(4月1日~7日).xls」のようになるとうまくいきません。できれば分かるように日付も入れたいのですが、 どうしたらいいのでしょうか? 一週間前と今週のファイルは、同じシートの名前がつけてあり、セルの 位置も同じです。(一週間前のファイル名前を変えて今週のファイルを作っています。) 一週間前のファイル名は、今週のファイルにファイル名を取得して、セルに 貼り付けそこから読み込んでいます。 コードは以下のように打っています。 よろしくお願いします。 Sub 累計() Dim name As String Sheets("累計").Select name = Range("AF4").Value 'AF4に一週間前のファイル名をいれています。 y = 4 For x = 5 To 11 For y = 4 To 30 If y = 17 Then y = y + 5 End If Cells(x, y).FormulaR1C1 = "=週計!R[0]C[-1]+[" & name & "]累計!R[0]C[0]" Next Next

質問者が選んだベストアンサー

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.1

= "=週計!R[0]C[-1]+'[" & name & "]累計'!R[0]C[0]" に変更してみてください。 シングルコーテーションが2箇所加わっています。

rrrkkkks
質問者

お礼

ありがとうございます。 さっそくやってみたところうまくいきました。 シングルコーテーションつけるだけだったんですね。 何時間も色々と試してみてたあとだったのでとっても助かりました。 ありがとうございました。

関連するQ&A

  • VBA 他のエクセルファイルデータを読み込む

    エクセルのVBAに関する質問です。 かじった程度の知識でがんばってはみたのですが、以下のことがどうしてもできません。 集計ファイルと、それぞれが入力するファイルがいくつか(具体的には1A.xls、1B.xls、2A.xls、2B.xlsといった数字とアルファベットの組み合わせ)あります。 入力ファイルに書かれているデータを集計ファイルに取り込もうと考えています。 入力ファイル名が(1.xls,2.xls・・・)の様に数字だけの取り込みはできました。 m = Val(UserForm2.TextBox1.Text) For i = 1 To m On Error GoTo myError Workbooks.Open Filename:="C:" & i & ".xls", UpdateLinks:=0 Range("f65536").End(xlUp).Activate Workbooks(i & ".xls").Activate Sheets("入力ファイル").Select Range("A3:X52").Select Application.CutCopyMode = False Selection.Copy Workbooks("集計ファイル.xls").Activate Sheets("DB").Activate Range("a65536").End(xlUp).Activate Selection.Offset(1).Select ActiveSheet.Paste Range("a65536").End(xlUp).Select   Workbooks(i & ".xls").Close SaveChanges:=False myError: Next i Application.DisplayAlerts = True こんな感じです。 これを、数字だけでなく数字+アルファベット.xlsのファイル名にしてデータを取り込むにはどうすればいいのでしょうか?色々と試行錯誤をしたり、ネットで調べたりしたのですが、詰んでしまいました。 どなたかお助け下さい。

  • エクセル 他ファイルの外部参照について

    複数の同一レイアウトのファイルから、特定の項目だけを 参照できるシートを作成したく、皆様のお知恵をお貸し下さい。 ・同じフォーマットのファイルが複数あります。 ・ファイル名を入力することで、特定の項目を参照したいのです。 例えば、  水族館飼育員が作成する膨大な項目の魚飼育日記があるとします。  経営者は、その中から特定の項目を見たいと思います。  デスクトップ上の「さかなフォルダ」には   ・タツノオトシゴ.xls   ・クマノミ.xls   ・ウツボ.xls  等の飼育ファイルがあります。 経営者は「さかなフォルダ」に新しい「参照表」を作ります。 各ファイル(タツノオトシゴ・クマノミ・ウツボ)から以下の 項目で表を作りたいと考えます。  ファイル名 飼育者 飼育開始日 種類 数 価格 経営者はファイル名を変えることで、配下の情報を引き出したいです。 ファイル名に「タツノオトシゴ」を入力するだけで、 タツノオトシゴファイルから以下の情報を引っ張るには どのようにすればよいでしょうか。   飼育者(C2)   飼育開始日(C3)   種類(Q4)   数(Q6)   価格(S6) もし、可能であればファイル名選択をプルダウンにしたいのですが 可能でしょうか。 宜しくお願い致します。

  • Excel関数について

    Excelの関数で累計について教えてください。 売上表を作成しています。 名      日     売上    累計売上 Mさん   10/25    9,000      9,000 Yさん  10/25    5,000      5,000  Mさん  10/26    9,000     18,000 Yさん  10/26    5,000     10,000 のように、累計売上に同じ人は自動的に加算して数字が入る関数がありましたら教えてください。 お願いします。

  • エクセル2010 式だけ新しいbookにコピー

    よろしくお願いします。エクセル2010で以下のようなことをできないでしょうか? A.Xls というファイル名のシート1に、シート2のC1~C3の合計を出す SUM(Sheet2!C1,Sheet2!C2,Sheet2!C3) という式が入っています。他のファイル(たとえばB.Xls)でもシート2のC1~C3を足したいのです。 A.Xlsのシート1をコピーしてB.xlsのシート2のC1~C3を足せるようにしたいのです。 普通に式をコピーすると SUM([A.xls]Sheet2!C1,[A.xls]Sheet2!C2,[A.xls]Sheet2!C3) というようにA.xlsのファイルを参照します。 これをコピーしたときに、コピー先のファイルを参照するようにできないでしょうか? SUM([B.xls]Sheet2!C1,[B.xls]Sheet2!C2,[B.xls]Sheet2!C3) となるようにしたいのです。 同じ形式のファイルが数百あり、それを同じ形式で整理していきたいのです。 一つ集計の見本シートを作ってそれを他のファイルにコピーしていけば いちいち同じ式をすべてのファイルに書いたりしなくてもいいのではと思っているのですが できないでしょうか? やはり同じ作業をすべてのファイルで行わなければいけないでしょうか アドバイスを頂ければと思います。

  • EXCELでリンク式が知らないうちに変わってしまいます。

    EXCELでリンク式が知らないうちに 変わってしまいます。    1月 2月 3月・・・・12月  合計 ------------------------------------------- 金額              SUM( ) ------------------------------------------------ファイルをリンクして上記の様な表、月次集計.XLSを作成するのですが 作成中にリンク式が知らないうちに 変わってしまいます 1月分の金額は=+'C:\[1GATU.XLS]TUKI'!A1 2月分の金額は=+'C:\[2GATU.XLS]TUKI'!A1 3月分の金額は=+'C:\[3GATU.XLS]TUKI'!A1 上記の様に入力した後で例えばファイル3GATU.XLSを開くとリンク式が下記の様になってしまいます。 =+'C:\[1GATU.XLS]TUKI'!A1が  =+'C:\[3GATU.XLS]TUKI'!A1に置き替わり =+'C:\[2GATU.XLS]TUKI'!A1が  =+'C:\[3GATU.XLS]TUKI'!A1に置き替わってしまいます リンク式を含むワークブックを開いているときには 参照しているワークブック以外のファイルを開くことは出来ないのですか。 以前のEXCELのバージョンではこんなことはなかったと思うのですが、 こんな事あるのですか?お教えください

  • エクセル2000です。Ceelsであるセルに空白を含む関数を書かせるに

    エクセル2000です。Ceelsであるセルに空白を含む関数を書かせるには? 以下の様なVBですが、 先ず、セルAO5の文字を半角にして、「電気1234.xls」として、変数「ファイル名」に代入します。 次に変数「ファイル名」を取り込んだ、関数をCellsを使って書かせたいのですが、式の一部に「"」を 使っているのが悪いのかエラーになります。 関数式の中の「"」の処理の仕方を教えてください。 ----------------------------------------- Dim ファイル名 As String ファイル名 = "電気" & StrConv(Range("AO5").Value, vbNarrow) & "_2.xls" Cells(53, 8).Value = "=SUMPRODUCT(((TRIM('[" & ファイル名 & ".xls]添付資料'!$C$1 : '[" & ファイル名 & ".xls]添付資料'!$C$10000)<>"")*1)*(TRIM('[" & ファイル名 & ".xls]添付資料'!$C$1 : '[" & ファイル名 & ".xls]添付資料'!$C$10000)<>"品 番")*1)"

  • エクセル MATCH関数でファイル名等の値をセルから持ってくる方法を教えてください

    エクセル初心者です。 MATCH関数で、別ファイルの値を取得しようとしていますが うまくいかないのでどなたか教えていただけませんでしょうか? 下記のように直接ファイル名やシート名を記述するとうまく いくのですが、 [式]  =MATCH(C7,[test.xls]テストシート!C1:C100,0) ファイル名とシート名を変えることがあるので、  セルB5 → test.xls  セルC5 → テストシート として、B5とC5を用いて記述しようと、&や""を使っていろいろと 式に入れてみたのですが、うまくいきません。 途中まではうまくいきそうになっても、C1:C100 の範囲指定で tesx.xlsではなくて自分自身の C1:C100 を参照したりと、 思った結果になりません。 どなたか、教えていただけると助かります。 宜しくお願いいたします。

  • エクセルを開くと、「ファイルが見つかりませんが」

    先日、エクセルで、表を作成し、日日の蘭を移動したところ、画面が揺れて、メモリー不足と表示されました。 日日の蘭を元に戻し、閉鎖して、再度開いたら、「ファイルが見つかりません」と、表の前面に検索の表が出るようになりました。 エクセルのファイル名は、「book1」ですが、検索表のファイル名は、「月テスト.xls」、ファイルの種類名は、「Microsoft Excel」と出ます。 如何すれば、検索表が出ないように出来るでしょうか? なお、インターネットには、接続していません。 PCは、PC-9821Nw150です。

  • エクセルのファイルが開きません

    少し前までは、問題なくエクセルのファイルを開くことができていた のですが、なぜかファイルのアイコンををクリックしても、 「ファイルC:MY Documents\ファイル名.xls(またはその構成ファイルが 見つかりません。パスおよびファイル名が正しいか、必要なライブラリが すべて利用可能かどうか、確認してください。」 というメッセージがでて、開くことができなくなってしまいました。 今でも、最初にエクセルを立ち上げて、ツールバーからファイル名を 指定すれば、きちんと開きます。 原因がわからなくて、困っています。 なにか、おかしなことをしてしまったのでしょうか?

  • エクセルで、他のファイルをリンクする際、ファイル名だけをオートフィルできませんか?

    たとえば、EXCELで A1に、  〇1.xls  というファイルの  シート1   の   B5 セルを参照した場合          A                  B                C 1  [〇1.xls]シート1!$B$5     [〇2.xls]シート1!$B$5      [〇3.xls]シート1!$B$5 2  [〇2.xls]シート1!$B$5 3  [〇3.xls]シート1!$B$5 4  [〇4.xls]シート1!$B$5 A1セルからオートフィルしたら、A4セルまで、もしくはC3セルまで ファイル名だけ変わる、というようなことはできないでしょうか? ちなみに、EXCEL2003です。 詳しい方いましたら、どうぞよろしくお願いいたします。

専門家に質問してみよう