• 締切済み

他のブックセル数値を新しいブックに利用したい

教えてください、エクセルの初心者です 他のブックで作成した、表を他の新規ブックで 利用したいのですが。 その参照したいブックの参照したいセルは合計金額のため 一定の数値行毎に記入されています。 新規ブックの表ではその参照数値を日付ごと(一行ごと)に 表示させたいのですが?  参照したいブックの10行毎に参照したいセルがあります。 それを新規ブックで1行ごとに表示させたいのですが? 例 新規ブックのB20というセルにSUM('C:\WINDOWS\デスクトップ\○○○\○○○\[○○○.xls]○○○'!C900)という参照セルが入っている場合新規ブックのB21にSUM('C:\WINDOWS\デスクトップ\○○○\○○○\[○○○.xls]○○○'!C910)を入れたい場合、そのセルごとに手打ちで 入れなければいけなのでしょうか? ドラックすると自動で参照セルが一つずつずれるように 参照ブックのセルを10ずつずれるように自動で入れられないものでしょうか? 質問の仕方自体も良くわからなくご回答いただける方にご迷惑を おかけしますが、極力簡単にわかりやすく教えていただければ 幸いです、よろしくお願い申し上げます。

みんなの回答

  • pc_knight
  • ベストアンサー率66% (52/78)
回答No.1

ある数式をB20セルに入れ、その縦方向コピーでの解決は無理(?)、少々敷居は高いですがVBAというプログラム言語を使えば可能。 二通り考えました。 方法1.随時処理(参照したいBook内の合計計算式の入っている行の最終行No.が下方に増したら参照したいBookを閉じる前に(5)の処理を行う。但しBook内の合計計算式がすべて入っていて、今後増えない場合は、(5)の処理は1回だけで可) (1)参照したいBook、「新規ブック」とも開いて置く (2)Alt+F11で"Microsoft Visual Basic - ブック名"のVBAを作成する画面を開く。 (3)挿入(I)-標準モジュール(M)でVBA編集エリアを追加する。 (4) VBA編集エリアに以下のSub~End Subまでを貼り付けてから、VBA作成画面を閉じる。(「×」をクリック) Sub keisansiki() Dim r As Long For r = 900 To Workbooks("○○○.xls").Sheets("△△△").Range("c65536").End(xlUp).Row Step 10 Workbooks("新規ブック.xls").Sheets("▲▲▲").Cells((r - 900) / 10 + 20, 2).Value = "=[○○○.xls]△△△!C" & r Next r MsgBox "新規ブックに計算式設定しました" End Sub (5) Alt+F8 →「keisansiki」→実行(R)を行う。(3万行データでも数十秒程度で式設定が終了) 方法2.「新規ブック」のB列内の任意の1セルの選択時にリアルタイム処理(そのセルに参照式を自動設定) (1)「新規ブック」のExcel画面の下端にあるシート見出し(例えば「Sheet1」)を右クリック (2)表示されたメニューから「コードの表示(V)」を選び (3)Iカーソルの点滅しているエリアに以下のコードをコピーして貼り付け Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Column = 2 And Target.Row >= 20 Then Target.Value = "=[book1.xls]sheet1!C" & Target.Row * 10 End If End Sub ※ ○○○は参照したいブックの名称に、△△△はそのシート名、▲▲▲は新規ブック内の該当シート名に要置き換え。 ※ 何れの方法とも参照式の設定はB列の20行以降のセルにのみ行うようにしてあります。 ※ テストする場合は、今、お使いのBookのバックアップを取っておくことを推奨します。

namidakko
質問者

お礼

ありがとうございました。なにやら 大変むずかしそうですが、じっくり 試してみたいと思います。 休みの日か、時間の出来た日に 試してみようと思います。 ゆっくりじっくりためさせていただきます。 途中わからないところがあったら、また質問させてください。 丁寧なご回答本当にありがとうございます。

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

関連するQ&A

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • Excelで入力した数値を行番号として使用したい

    「一覧」と「抽出」というexcelブックがあり、今は「抽出」ブックで作業しています。 セルA1には以下のような数式が入力されています。 ='[一覧.xls]'!A1 A2には 『='[一覧.xls]'!B1』、 A3には『='[一覧.xls]'!C1』、 A4には『='[一覧.xls]'!D1』・・・・・。 と、続きます。 ここで、各セルの内容をその都度一気に変えたいと思います。 今はすべて「一覧」ブックの1行目を参照していますが、 全て5行目にしたり、20行目にしたいのです。 参照したい行数をセルB1に入力し、 ='[一覧.xls]'!A【B1に入っている数値】 というような式をイメージしています。 INDIRECT関数を使用すればよいのかと思い試行錯誤しましたが うまくいきませんでした。 いい方法があったら教えてください。 ※質問が分かりにくくて申し訳ありません。  自分でも何が言いたいのか分かりにくいと感じています。

  • 違うブックを参照して、数値を表示するには?

    質問失礼します。 エクセルで保存した違うブックにあるデータから、複数条件で一致するものを検索し、表示することは可能でしょうか? 例えばブック1のG2に、ブック2のE1を表示させたいのですが、 条件が、ブック1のG2がある行の「B2とC2とD2とE2」の数値や文字列、空白などが、一致する行を,ブック2から検索し、その行にある、E1を、ブック1のG2に表示させたいです。 ブック1とブック2の一致させたい範囲 ブック1のB列、C列、D列、E列の行単位のセルと並び方=ブック2のA列、B列、C列、D列の行単位のセルと並び方 求めたい物 ブック2の条件にあったE列のセルをG列に表示したいです。 可能でしょうか? ブック1   A  B  C  D  E  F  G 1    8  a1 50  1 2    8  a1 50       30 3    8  a1 60       20 4    8  a1 70 20 5    3  b5 60 20     3 ブック2   A  B  C  D  E  F 1 8  a1 50    30  2 8  a1 50  1 3         4 8  a1 60    20 5 8  a1 70 20   6 7 3  b5 60 20  3

  • 他のブックファイルのセルの参照が上手く行きません

    こんにちはよろしくお願いいたします。 エクセルのブックファイル(Book1.xlsx)に,他のブックファイル(Book2.xls)のセルの値を参照しようと思い”=”を入力し参照するブックファイルのセルをクリックし,「 =[Book2]Sheet1!$A$1 」のような参照を行いました。こうしてきちんと表示されました。 しかし,この参照の式を「 =[Book3]Sheet1!$A$1 」のように,他のブックファイル(Book3.xls)のセルに変更したところ,参照できなくなりました。ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となっています。式は,キーボードを使って変更しました。もちろん,(Book3.xls)は,(Book2.xls)と同様のシート形式をもち,データも入力されています。 このような状態になると,先に挙げたように,”=”を入力して参照するブックファイル(Book3.xls)のセルをクリックしても,ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となったままで,(Book3.xls)のデータは表示されません。 (Book2.xls)と(Book3.xls)のセルのデータは,文字列です。 気になるのは,(Book1.xlsx)はoffice2010で作成されたファイルであること,(Book2.xls)と(Book3.xls)は,互換モードと表示されるファイルであること,また表示されているファイルを見ると,フルパスで参照している点です。「 ='C:\aaa\bbb\・・・・・[Book3]Sheet1'!$A$1 」という参照式になっています。3つのファイルはすべて同一ファイルに入っています。 何が,参照を阻んでいるのでしょうか?教えてください。よろしくお願いします。

  • エクセルのVLOOKUP関数で他のブックから正しく参照されないセルがある

    台帳xxxx.xlsファイルで住所録.xlsファイルを参照しているのですが最近正常動作しません。 住所録.xls というブックには、メンバーの住所録が入っています。 A列氏名、B列フリガナ、C列電話番号 という項目になっています。 台帳xxxx.xls側には A列連番、B列氏名、C列フリガナ、D列電話番号・・・になっています。 例えば台帳0712.xls というブックには日々のメンバーの動きを記録しており、 Bのセルに氏名を入れればその右側にフリガナ、電話番号が、住所録.xlsから参照されて自動入力されるようになっています。 台帳ファイルは原本を複製して 台帳0713.xls、台帳0714.xls・・・と日々増えていきます。 現在、住所録.xlsは600行を超えてきたのですが、最近、台帳xxxx.xls に氏名を入れるとフリガナ、電話番号の欄がうまく参照されず"0"(ゼロ)と表示されてしまいます。 正しく表示される名前とされない名前が出てきました。 600番台以降の人に多い気がするのですが定かじゃありません。 なぜならその氏名を上位のセルにコピーしても参照結果が"0"だからです。 具体的には、 例えばC列の数式は =IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A:$C,2,FALSE)) で、フリガナが自動入力されるようになっています。 ※氏名が未入力のときは"#N/A"のエラー表示がされないようにしています。 どうして"0"が入ってしまう場合があるのでしょう。 行数に限界があるのか疑問です。 またはもっといい方法があれば教えてください。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • エクセルのマクロで、他のブックを開くときについて

    マクロの記録を利用して、他のブックを開くことをしました。 マクロのモジュールを見たら、 ChDir "C:\Documents and Settings\*****\デスクトップ" Workbooks.Open Filename:="C:\Documents and Settings\*****\デスクトップ\○○.xls" となっていました。 1行目の「Chdir」というのはなんでしょう? また、2行目では開きたいブックをパスを使ってあらわしています。 今マクロを動かしているブックと同じフォルダ内にあるブックや そのフォルダから見て上位のフォルダとか、「c:」から始まる パスを使わないような書き方はあるのでしょうか? ご助言お願いします。

  • OpenOfficeOrgのCalcで、他ブックとリンクするとエラーが出ます

    OpenOfficeを使っています。Excelと似てるやつ(Calc)を使って、一つのブックに他ブックからの数値を参照した式をリンクで張りたいのですが、それができません。 ・Aブック ・Bブック ・Cブック とあり、たとえば Aブックのsheet1 A1セルに 「Aブックのsheet1 A2セル数値+Bブックのsheet1 A2セル数値+Cブックのsheet1 A2セル数値」 3ブックのA2セル入力値の合計を表示させたい リンク自体は張ることが出来、一度はきちんと計算結果も正常に表示されます。が、それを保存し次回以降開こうとすると、 「このデータには他のデータへのリンクがあります。データを更新しますか」 とメッセージが出てきて、それに「はい」と答えると処理が開始、そのまま待機状態になって操作不能、そして 「Runtime Error」 なにやら英文表示で、どうもOpenOfficeOrgに連絡しろって言っている、…らしい。メッセージが出ます。そしてそのままアプリケーションが閉じてしまいます。 再度開こうとすると「ファイルを復元しています」と言われ、心臓に悪い…や、開けるし使えますが。 ABC3ブック全て開き、「編集」→「リンク(リンクの編集)」で「更新」としても同様。 何回やっても同じ。 「データを更新しますか」 に「いいえ」と答えるとこの状態は起きませんが、それだとデータを訂正していっても計算式に反映されず、合計値がものすごくおかしくなってしまいます。 OpenOfficeOrgのCalcでは、他ブックの数値を参照した式 というのは事実上使用不能なのでしょうか? あっ、ちなみに使っているのはWinXPの…えーと、HOMEエディションSP3、だと思います。 ReadMeによればOpenOfficeOrgは3.1。

  • Excelで他のブックのセルを参照したいのですが

    コンボボックスにセットする値を、 VBAで他のブックを参照してセットしたいと思っています。 ブックAのシート1にコンボボックスを作り、 ブックBのシート1から取得しようと考えています。 ブックBのシート1には、あらかじめ「範囲A」の名前を定義して この範囲の値を参照するつもりです。 ただ同じフォルダ内にブックBを置いていれば参照できるのですが、 他のフォルダにブックBを置くと参照されません。 <同じフォルダにブックBを置いた場合>○参照できた ComboBox1.ListFillRange = "[ブックB.xls]シート1!範囲A" <他のフォルダにブックBを置いた場合>×参照されない ComboBox1.ListFillRange = "C:\[ブックB.xls]シート1!範囲A" 記述の仕方がおかしいのでしょうか? 宜しければご教授お願い致します。

  • VBA 他シートを参照しているセルのコピー

    お世話になります。 以下のシートがあります。 [sheet a]    A     B        C      D     E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E  F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。

専門家に質問してみよう