【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

複数のエクセルファイルからデータを抽出し
別のエクセルファイルに書き込むといった
作業は可能でしょうか?
イメージとしては一方のファイルに金額を書き込み
保存したら集計ファイルの特定のセルにその金額が
書き込まれる。といった感じなのですが
エクセルの機能のみで可能かどうか、また可能であれば
その方法を教えていただけませんでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

百聞は一見に如かずで試されることをお薦めします。


まずファイル(ブック)を3個作り、それぞれ列数を1~2列ぐらいに狭くして、3ブックともウインドウに左右に並べます。
そしてブック1のA1に適宜の数字(例えば2とか)を入力します。ブック2のA1にも同様に(例えば3とか)入力します。そしてブック3のA1を選択してオートSUMボタンをクリックし、そのままブック1のA1をクリックし「,」を入力、次にブック2のA1をクリックし、ENTERを押します。するとブック3のA1に答の「5」が現れ、ブック3の数式バーには
=SUM([Book1]Sheet1!$A$1,[Book2]Sheet1!$A$1)
と計算式が現れることが分かります。
なお、この作業ではブック1,2のA1セルが絶対参照になっているので、ブック3の数式バー全体を選択し、F4キーを3回押して相対参照に切り替え、A列下行に何行かプルダウンコピーしておきます。
そして、今度はブック1,2のA2セルに適宜の数を入力するとその合計がブック3のA2に現れることが分かります。
以上は3ブックとも開いた状態でのテストですから、次にブック3を終了、デスクトップに保存して試します。
ブック1,2だけ開いた状態でそれぞれのA3セルに適宜の数を入力します。そしてブック2,3も終了、デスクトップに保存します。
次にブック3を開きます。すると「他のファイルへの自動リンクが設定されているので更新し、他ブックへの変更を反映するか」と聞いて来ますので「はい」をクリックします。すると「ファイルが見付かりません」というダイアログボックスが現れますのでブック1をクリック、次に同様にブック2を選択します。するとブック1のA3にブック1,2 A3の合計が現れることが分かります。
以上で複数ファイルのリンク作業が可能なことが分かりますが、関連ブックをすべて開いた状態で作業すれば作業もスムースですけど、どれかを閉じた状態で作業すると何かと手間がかかるし、メモリも費消します。
更にSUM関数ぐらいであればそう問題はなくてもLOOKUPなど関数が複雑化するにつれセルや名前参照などが複雑になり、スピードダウンすることもあるようです。
それを承知でお使いになれば、時には役に立つ場合もあるでしょう。
    • good
    • 0
この回答へのお礼

有難う御座います。どうやらお教えいただいた方法で
この先入力していく形になりそうです。
リンクさせるセルの数は1ファイルに5個程度なので
リアルタイムでデータ抽出→自動で書き込み
といった作業ではなく手作業での更新となる予定です。
丁寧なご返答有難う御座います(^^)

お礼日時:2005/09/26 09:48

 


こういった事ならば可能です。

http://dekiru.impress.co.jp/faq/excel/0176/

リアルタイムに更新する事は、Excelでは不可能だと思いますので
Access等の別のソフトを使う必要があります。
 
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelでファイルを越えて連携できるのでしょうか

Excel2010なのですが、同じファイルであればシートをまたいであるセルを参照出来ますが、
別ファイルの、あるシートのあるセルを参照するというような事は出来ないのでしょうか?
ほんの初歩的なマクロは学んだのですが、そういうファイルをまたいでの設定は無かったように思いますが、マクロとか使えば出来るのでしょうか?
例えばプログラミングなどであるinclude()などあればファイルを参照出来るのでしょうが。

Aベストアンサー

エクセルの数式では,
='c\test\[book1.xls]Sheet1'!A1
といった数式で多ブックの値を参照し計算に利用できます

参照元ブックを開いておいて
=[book1.xls]sheet1!A1
のように数式を作成し,参照元ブックを保存して閉じると,自動で閉じたブックを参照する式に書き換わります。エクセルの操作になれていないときは,こちらの手順を行った方が間違いがありません。




マクロでは別のブックを「開いて参照する」のが原則です。
sub macro1()
 dim w as workbook
 set w = workbooks.open("c:\test\book1.xls")
 msgbox w.worksheets("シート名").range("セル番地")
 w.close false
end sub


開きたくないご相談はしばしば見かけますが,労多くして功少ないの典型と言えます。

方法1:開いているところを見せない
sub macro2()
 dim w as workbook
 dim x
 application.screenupdating = false
 application.calculation = xlcalculationmanual
 set w = workbooks.open("c:\test\book1.xls")
 x = w.worksheets("Sheet1").range("A1")
 w.close false
 application.calculation = xlcalculationautomatic
 application.screenupdating = true
 msgbox x
end sub

方法2:エクセルに閉じたブックの値を取ってこさせる
sub macro3()
 dim x
 range("A1").formula = "='C\test\[book1.xls]Sheet1'!A1"
 x = range("A1").value
 range("A1").clearcontents
 msgbox x
end sub

方法3:4.0マクロ関数を使う
色々制約があるのでお薦めしませんが,下記など参考に。
http://www.moug.net/tech/exvba/0060037.html

エクセルの数式では,
='c\test\[book1.xls]Sheet1'!A1
といった数式で多ブックの値を参照し計算に利用できます

参照元ブックを開いておいて
=[book1.xls]sheet1!A1
のように数式を作成し,参照元ブックを保存して閉じると,自動で閉じたブックを参照する式に書き換わります。エクセルの操作になれていないときは,こちらの手順を行った方が間違いがありません。




マクロでは別のブックを「開いて参照する」のが原則です。
sub macro1()
 dim w as workbook
 set w = workbooks.open("c:\test\book1.xls")
...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルで二つのファイルの同期方法を教えてくだい。

具体的には、エクセルで二つのファイルのそれぞれのシートに同期をさせたいと思っています。
パソコンを2台使用し、●パソコンにあるAファイルの、あシートa1~z100にあるデータが、△パソコンにあるBファイルの、いシートのb6~aa105に自動的(手動)に反映される方法がわかりません。
「リンクの貼り付け」を試しましたが、いちいちAファイルを保存しなくてはならず、使い勝手が悪いので、マクロなどで自動的に反映できたら嬉しいです。よろしくお願いします。●パソコンはwindous7、△パソコンはwindousvistaで使用する予定です。

Aベストアンサー

追加回答


2003までで使用することを検討しているのであれば、
2つのファイルを開いた状態で

  作業状態保存(拡張子 .xlw)

で保存すると良いでしょう。
開いていたファイルを両方とも開いて立ち上がってくれます。
(Exsel2007以降にはこの機能を見つけられないんですよ...見つけ方が悪いのかもしれませんがw)

Qシート全体を他のブックのシートとリンクさせたい

エクセル2010を使っている者です。

(1)Aファイル中のあるシート全体をBファイル中の指定したシート(別ファイルになってますが、フォーマットはほぼ同じです)とリンクさせ、外部参照してデータを取り込めるようにすることは可能ですか?

(2)また、AファイルがBファイルのデータを外部参照するというよりは、Aファイル、Bファイルの当該シートに変更があった場合は、お互いに変更箇所を取り込めるようにするこは可能ですか?
(これは外部参照ではなく、共有というのでしょうか)


どちらか片方であってもありがたいので、ご教授願います。

Aベストアンサー

基本の手順としては
「元」になるAブックの該当シートのセル(セル範囲)をコピー
「先」となるBの該当セル(セル範囲)に形式を選んで貼り付けの「リンク貼り付け」する
ことで、元から先にデータをリンクします。

#その後必要の範囲に応じて、書式を工夫したりもうちょっと数式を作成したりして、見た目を整えます。



エクセルのデータ参照の流れは、常に「元」から「先」への一方向だけです。
双方向にリンク(反映)する方法はありません。

エクセルでは通常、全ての「元」となるマスタデータベース(リスト)を1本(1つのシートに)用意、全ての編集や修正、追加等はすべてマスタのリストに対して行い、帳票(AのシートやBのシート)は、共にマスタから必要なデータを参照して「表示するだけ」という具合に作成するのが上手なエクセルの使い方です。


ご相談のように双方向のデータ反映がどうしても必要であれば、たとえばアクセスのように、そういう事ができるデータベースソフトを利用します。
まぁ出来ると言えばエクセルマクロを駆使して、そういう事ができるようコツコツ手作りする事もやればできますが、大概は苦労ばっかり多くて益はありません。

基本の手順としては
「元」になるAブックの該当シートのセル(セル範囲)をコピー
「先」となるBの該当セル(セル範囲)に形式を選んで貼り付けの「リンク貼り付け」する
ことで、元から先にデータをリンクします。

#その後必要の範囲に応じて、書式を工夫したりもうちょっと数式を作成したりして、見た目を整えます。



エクセルのデータ参照の流れは、常に「元」から「先」への一方向だけです。
双方向にリンク(反映)する方法はありません。

エクセルでは通常、全ての「元」となるマスタデータベース(...続きを読む

QEXCEL 別BOOKへのデータ連動について

2つのBOOKの連動の仕方について教えてください。
EXCEL2003を使用しています。

〔売上〕BOOK
〔1月〕 sheet
   A店                         B店
   売上 累計売上 昨年売上 昨年累計  
1日  500    500     700      700
2日  600    1,100    800      1,500
3日

で入力した金額を

〔合計表〕BOOK
〔1月合計〕 sheet
   1日売上 累計売上 昨年売上 昨年累計
A店   500    500      700   700
B店
C店 

   2日売上 累計売上 昨年売上 昨年累計
A店 
B店
C店

のBOOKに連動させたいです。
それぞれのBOOKに、12ヶ月間のシートがあり、店は10店舗ほどあります。
〔合計表〕のほうに
=SUM('[売上.xls]1月'!$B$4)と入力してみましたが、
2月になったときに1月の部分をすべて直していくのは時間がかかります。
どのようにするのがベストでしょうか?

2つのBOOKの連動の仕方について教えてください。
EXCEL2003を使用しています。

〔売上〕BOOK
〔1月〕 sheet
   A店                         B店
   売上 累計売上 昨年売上 昨年累計  
1日  500    500     700      700
2日  600    1,100    800      1,500
3日

で入力した金額を

〔合計表〕BOOK
〔1月合計〕 sheet
   1日売上 累計売上 昨年売上 昨年累計
A店   500    500      7...続きを読む

Aベストアンサー

こんにちは

 一つある方法は、マクロを組むことでしょうか?

 簡単なマクロの組み方としては

 合計表のところで 

 ツール → マクロ →  新しいマクロの記録 → ×××× →  記録終了 

 ×××のところは、何をしたいか?したいことをその通りに入れてみると簡単にマクロを組むことが出来、参考のようなものが自動的にできます。挑戦してみていかがでしょうか?
  
 作成する表は

  店舗別〔売上〕BOOK

   
    A店舗  1月 2月 3月 ・・・・・・・・・・ Sheet1~Sheet12まで 
    B店舗  上記と同じく


  合計表 BOOK

    〔1月合計〕 sheet1 1日  

         1日売上 累計売上 昨年売上 昨年累計
     A店   500    500      700   700
     B店
     C店 

           sheet1 2日

         2日売上 累計売上 昨年売上 昨年累計
     A店 
     B店
     C店

           Sheet32  合計シート 

 実行するときは、 ツール →  マクロ → マクロ → 実行


参考 (自動的にできます)
    
 Sub Macro3()
'
' Macro3 Macro
' マクロ記録日 : 2011/1/24 ユーザー名 :
'

'
Windows("A店舗.xls").Activate
Range("B2:E2").Select
Selection.Copy
Windows("合計表.xls").Activate
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("B店舗.xls").Activate
Range("B2:E2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("合計表.xls").Activate
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("c店舗.xls").Activate
Range("B2:E2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("合計表.xls").Activate
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

こんにちは

 一つある方法は、マクロを組むことでしょうか?

 簡単なマクロの組み方としては

 合計表のところで 

 ツール → マクロ →  新しいマクロの記録 → ×××× →  記録終了 

 ×××のところは、何をしたいか?したいことをその通りに入れてみると簡単にマクロを組むことが出来、参考のようなものが自動的にできます。挑戦してみていかがでしょうか?
  
 作成する表は

  店舗別〔売上〕BOOK

   
    A店舗  1月 2月 3月 ・・・・・・・・・・ Sheet1~Sheet12まで ...続きを読む

QExcelの複数ファイルの内容を一つのファイルに集計する方法について教

Excelの複数ファイルの内容を一つのファイルに集計する方法について教えてください。
各支店からの報告を集計したいのですが、同一フォームのファイル(約100ファイル)で報告されるデータを一つのファイルに集計したいと思っています。
A支店ファイルのsheet1、B支店ファイルのsheet1、・・・・を、合計ファイルのsheet1に集約したいのです。(フォームは同じで、内容は数値のみです。)
いい方法がある方、お教えください。

Aベストアンサー

フォルダー内の全エクセルファイルのデータを1シートにまとめるVBAのコードはWeb検索すれば、種々みつかります。下記はコードの若干の解説もあって良いと思います。
http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi?mode=al2&namber=39812&no=0&P=R&KLOG=266
問題は、「同一フォーム」の内容ですね。
データ中に各支店名が含まれていなければ、抽出時に付与しないと訳が分からなくなるし、
変に凝った様式だと単純にコピーするだけではうまくいかないし。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング