• ベストアンサー

エクセル 関数のリンク

2つのファイルで作った表をリンクさせたいのですができません。 元のファイルの縦データ(関数)を もうひとつのファイルに横書きにリンクさせたいのですが。 縦から縦の場合は$A$1の$を削除してコピーすることでできました。 大量データなので横にもコピーをしたいのですが 宜しくお願いいたします。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

>Sheet1の数式(縦A1~A7にはいっているもの)を >Sheet2の横(A1~G1)にコピーしたいのです。 冗談抜きに、この程度の数ならひとつずつ =Sheet1!A1 =Sheet1!A2 と書いて行った方が速いと思いますが? 変な参照の仕方をすると、後で見た時分からないですよ。 ワークシートは「後のメンテ」の事を考えて作らないと、 おかしくなった時に物凄く苦労しますからね。 私なら、50件位なら悩む前に手入力しちゃいますよ。 さすがに100件越えるとマクロを書きますが・・・。

chapiyo
質問者

お礼

回答をありがとうございます。 1つのコピーはこの程度なのですが、 元のファイルから拾う数が大量なので何か方法はないものかと 悩んでおりました。元のファイルも拾う場所がいろいろなので 1つ1つ設定しないとダメな作業なのかもしれないです。

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

その他の回答 (4)

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.5

式の構造で参照の仕方が変わると言う意味は、元のセルの場所が変わると中身の式も変わると言うことです。 これを避けるには元の式が =MIN($A$1:$D$5)のように絶対番地で指定されていることです。 でもこれは事後に変えられないので、代替案としてこういうことではだめでしょうか。 つまり元のデータはそのままにしてデータの更新や追加はその元のデータで行い、式もそのまま=MIN(A1:D5)のようにそのまま変更なし。 その代わり、見るのと印刷用のシートを別に作って、そこではINDIRECT関数で元のデータと式が縦横が入れ替わった表を作ると言うことです。 見る目的だけならばこれでもいけると思うのですが。

chapiyo
質問者

お礼

回答をありがとうございます。 INDIRECT関数では=MIN(A1:D5)の式はコピーできませんでした。 =MIN($A$1:$D$5のように元の式を替えてもコピーできませんでした。 =Sheet1!A1 =Sheet1!A1 のように1つづつリンクさせていくことにします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • chie65535
  • ベストアンサー率43% (8536/19406)
回答No.4

>簡単に言うと、 >Sheet1の数式(縦A1~A7にはいっているもの)を >Sheet2の横(A1~G1)にコピーしたいのです。 Sheet2のA1に =OFFSET(Sheet1!$A$1,COLUMN()-1,ROW()-1,1,1) と入力して、A1セルをB1~G1にコピーする。 これで、値の参照は出来ます。 値の参照ではなく、元の式もコピーしたい、となると、もっと複雑です。 まず、Sheet1のA1~A7を、Sheet2のA1~A7にコピーします。 そして、Sheet2のA1~A7の中の式で、セル参照している部分を、すべて絶対参照にします。「B1」を参照しているなら「$B$1」に書き換えます。 すべて書き換えたら、Sheet2のA2~A7を範囲指定して、コピーします(A1は指定しない) コピーしたら、B1にカーソルを置いて「編集」「形式を選択して貼り付け」「行列を入れ替える」でペーストします。 ペーストしたら、Sheet2のA1~A7の数式で、セル参照している部分に、参照シート名を足します。「$B$1」を参照しているなら、「Sheet1!$B$1」に書き換えます。 これで、縦横を入れ替えての式ごとコピーになります。

chapiyo
質問者

お礼

回答をありがとうございます。 OFFSETうまくいきませんでした。 私の入力が正しくないのだと思いますがわかりませんでした。 元の式もコピーしたい&大量なのですごい作業になりそうです。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.3

INDIRECT関数は式を参照することは出来ません。参照元のセルの値だけを参照します。したがってこの目的には向いていないですね。 ただ縦方向に並ぶ式を単順に横方向に変換するのは、その元の式がどういう式であるか替わります。 簡単な式であれば最初に言った 編集→コピー→編集→形式を選択してコピー→ ここで「全体を指定して右下の「行2列を入れ替える」を指定して実行 と言う方法で出来ると思いますが。 例えば元のA2に=A3と言う式が入っていると、これをB1にこのやり方でコピーすると=C3と言う式に変わります。 これで良い場合もあるでしょうが一般的にこれで良いかは不明です。 ということでセル同士を参照している式の縦横変換は元の式の構造で変わると言って良いでしょう。

chapiyo
質問者

お礼

回答をありがとうございます。 コピーしたい式は =MIN(A1:D5) のような式なのですが、形式を選択してコピー→だと =MIN(A1:A5)のような式が入ってしまいます。 式の構造で参照の仕方が変わるのは知りませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.1

言っている意味が不明ですが、 ひとつの表の行を列にコピーしたいと言うことでしょうか。 例えば A1:A100を別な表のA1:DZ1にコピーと言うようなことです。 コピー貼り付けでよければ 編集→コピー→編集→形式を選択してコピー→ ここで全体を指定して右下の「行2列を入れ替える」を指定して実行すれば可能です。 式で参照したい場合は次の方法で可能です ただし、1行目とA列を開ける必要があります。 元の表を表をSheet1のA1:Z100とします。 コピーするほうはSheet2とします Sheet2の1行目に B1から右に 1,2,3...100と整数をセットします A2から下に A,B,C...CX,CY,CZなどとセットします B2に下記の式を入れます =INDIRECT("Sheet1!"&$A2&B$1) この式をB2からZ100などのセルにこのまま貼り付ければ縦横は入れ替わります。

chapiyo
質問者

補足

ありがとうございます。 説明不足ですみません。 簡単に言うと、 Sheet1の数式(縦A1~A7にはいっているもの)を Sheet2の横(A1~G1)にコピーしたいのです。 やってみたのは、Sheet2のA1に =Sheet1!!A1 を入れるとSheet2のA1にはコピーできます。 その数式をSheet2のG1までリンクさせてコピーしたいのですが コピー&ペーストではできません。 一括で縦に並んだ数式を横に並べてコピーできればいいのですが… =INDIRECT("Sheet1!"&$A2&B$1) でやってみましたができませんでした。 整数のセットの意味がよくわからず… ("Sheet1!"&元のセル&移したいセル) ではできませんでした。 すみません。 お時間があったら教えていただけないでしょうか。

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

関連するQ&A

  • Excelの関数:リンク、抽出データの合計

     excelの関数でこんなことできる関数はありますか?  詳細は以下の通りです。詳しい方、教えてください。どうぞよろしくお願いいたします。  [元になる表とデータ内容]  シート名:日本の人口増減調べ  表タイトル:「日本全国の人口増減について」  縦(列)のフィールドのラベル名:左から『都道府県名」、(この間のラベル名は省略)、「計(各都道府県の人口数)」など。  横(行)のフィールド:『月』    [抽出したいデータで作成する表]  シート名:「抽出データ」  縦(列)のフィールド:『東京都』『神奈川県』  横(行)のフィールド:『8月』  縦と横のフィールドが交わるセル:『計』  ※『計』について:「日本全国の人口増減」にリンクさせて自動的に計が算出されるよう関数を使用する。  =======================  以上のことをするためには、どんな手順を踏んでどんな関数を使用すればよいのでしょうか?  まぁ、オーソドックスにオートフィルを使用すれば調べたい地域の人口がわかるのですが・・。  皆さんのお知恵を拝借させてください。

  • Excelの関数です・・

    出勤簿からを別表を作成しています。 その表で、名前が入力するセル(A1:A10)の列から 関数のCOUNTA(A1:A10)で合計人数を求めたいのですが、 A1:A10のセルのうちA1:A5には別の表からリンクした数式が入っています。A1:A5まで(リンク元の表は空白になっている場合)空白でも合計人数のセルに「5」となります。リンク元が空白の場合、表の合計人数が「0」になる方法がわかりません・・・分かる方、どうか教えてください。よろしくお願いいたします。

  • エクセルについて

    エクセルについて、 縦に並んだデータをn個ずつ横に並べる関数、もしくは方法はありませんか? 大量なデータを扱うので、コピー&ペースト以外のやり方でお願いします。 例)n=3のとき 1 2 3 4 5 6 7 8 9 10 ↓ 1 4 7 10 2 5 8 3 6 9

  • エクセルの関数について

    初めてご質問させていただきます。よろしくお願いします。 エクセル2007を使っています。 A表・B表、二つの表の中から同じデータを抜き出して、 A表の同一データの横へ数字の1を入れたいのですが、適した関数はありますか?そしてその方法を教えていただきたいです。 この文章で分かるでしょうか?よろしくお願いします。

  • コピーすると関数のデータが書き換えられてしまう

    6枚のシート(1枚のシート:14×365日分)のデータを集計表に表示させる表を作成しました。 作動チェックのため作成ファイルをコピーして確認したところ集計表の関数の内容が一部書き換えられ、正常に作動しない個所がでました。 コピーした場合、データが書き換えられるようなことがあるのでしょうか。 今後は、年度毎にコピーして使用するため対策方法がありましたらご教授下さい。 表示する関数はIF関数の入れ子でVLOOKUP関数が12ヶ含まれたものです。 書き換えられてしまう個所は検索範囲で次の通りです。  $A$6:$AS$2600⇒$A$10:$AS$2604や$A$7:$AS$2601など

  • Excelで「他のデータ ソースのリンクが…」

    AというBookとBというBookがあります。 AのSheetをBにコピーしたところ、ファイルを開くときに 「他のデータソースのリンクが設定されます。」 というメッセージが表示されます。 コピー元であるAのセルの数値を変更すると、コピー先のBのセルにも反映されてしまいます。 表と数式のみコピーしたかったのですが、リンクの設定の解除をするには、どうしたら良いのでしょうか?

  • エクセルのリンクについて

    エクセルについて以下の質問があります。 例えば、A,B,Cの3つのファイルがあるとします。 そしてCファイルのA1セルに入力する数値を、AファイルのA1セルから持ってきているとします。(リンク) 同様にCファイルのB1セルには、BファイルのA1セルの値をリンクさせてきているとします。 この状態でA,B,Cの3つのファイルはリンクされている状態になっているのですが、これらを仮にテンプレートとし、それぞれをコピーします。(コピー先のファイルをD,E,Fファイルとします) するとこのD,E,Fファイルでは、元のA,B,Cファイルで掛けてあったリンクがクリアされてしまっています。 そこで今度はA,B,Cを1つのフォルダに入れ、フォルダごとコピーを掛けた場合、コピー先はリンクされたままです。しかし名前を変えるとリンクがクリアされてしまいます。 これを何とかクリアされずに、複数のファイルに掛けたリンクファイル郡をたくさん作りたいのですが、可能でしょうか?

  • エクセルについて教えてくださいm(_ _)m

    いつもお世話になります。 エクセルについておしえてください。  ○シート1の表には縦方向にデータの番号、横方向に各 番号のデータが入力されている状態です。 ○シート2の表はシート1のそれぞれ横に並んだのデー タを縦方向にあてはめて印刷したいのです。 ●シート1のデータをシート2に(イコール)を用いて 持ってくる際に、横方向のデータを縦に表示させるの で、連続して関数をコピーできなくて困っています。 どんな些細な情報でもかまいませんので、教えていただけないでしょうか?

  • エクセルのリンク元エラーについて

    エクセルのリンク元についての質問です。 同一フォルダ内に2つのファイルがあり、VLOOK関数でリンクされています。 片方のファイルを別フォルダに移動した場合、リンク元のエラーを自動的に修正できますか? 今の状況は下記の通りです。 フォルダAにファイル1とファイル2があり、ファイル2はVLOOK関数でファイル1から情報を読取っています。 ファイル1の情報更新がファイル2に反映という形です。 ファイル2をコピーしてファイル3を作成して、別のフォルダBに保管した場合、 ファイル3を開くと、リンク元がエラーになってしまいます。 =IF(A1="","",VLOOKUP(A1,'C:\Documents and Settings\パソコンの名前\デスクトップ\フォルダA\[ファイル1.xls]シート1'!$A$1:$Z$100,1,FALSE)) という式が入力されているのですが、\フォルダA¥の後に、 自動的に\フォルダB\が追加されてしまいます。 フォルダ名が追加されないような設定は可能でしょうか? 「置換」する以外に方法はあるでしょうか? ファイル2はシートが複数あり、保護されているので手間がかかります。 今後、ファイル2をコピーして使用し、 ファイル数とフォルダ数が増える予定です。 各フォルダにファイル1をコピーするしかないのでしょうか? ファイル1の情報更新を反映させにくくなってしまうように思います。 何か良い方法はあるのでしょうか? よろしくお願いします。

  • Excelファイルでの処理(関数について)

    excelファイルにデータが大量にあるのですがそれを整理したいと思っております。 データの中身は 日付   時間   値 20100212 0400 14294423 20100212 0401 58290342 20100212 0402 42424242 ・   ・   ・   ・   ・   ・   ・   ・   ・   20100212 1400 52380424 20100213 0400 13489242 20100213 0401 58290424 ・   ・   ・ ・   ・   ・ ・   ・   ・ 日付と時間と値が入ったCSVファイルがあります。 値は1分ごとに書き込まれ毎日必ず同じ時間(4時~14時まで)に書き込まれます。 このファイルを 0400 0401 0402 ・・・・・・・・・14:00 20100212 14294423 58290342 42424242 ・・・・・・・・52380424 20100213   ・    ・    ・           ・ 20100214   ・    ・    ・           ・   ・    ・    ・    ・           ・   ・    ・    ・    ・           ・   ・    ・    ・    ・           ・ 20100225   ・    ・    ・           ・ 上記のように縦に日付と横に時間でそれに対応した値が入ったファイルを作成したいと思っているのですがうまく処理させる方法はないでしょうか。 いろいろ調べて手動で行う方法はわかったのですが、データは50万行くらいあるため手でコピーしたりする方法がとれません。if文やfor文(excelにあるのかわかりませんが)などの関数を使って処理はできないでしょうか。 大変困っておりますので何かいい方法ありましたら教えていただけないでしょうか。以上よろしくお願いします。