• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELで別シートのデータをリンクする方法)

EXCELで別シートのデータをリンクする方法

このQ&Aのポイント
  • AシートとBシートを結合し、Cシートを作成する方法を教えてください。
  • AシートとBシートのデータをリンクして新しいシートを作成する方法を教えてください。
  • EXCELで異なるシートのデータを結合して新たなシートを作成する方法を教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 今仮に、Aシートの名称が「Aシート」、Bシートの名称が「Bシート」、Cシートの名称が「Cシート」であるものとします。  又、適当な空きシート(ここでは仮に、「補助シート」という名称のシートであるものとします)のA列を作業列として使用するものとします。  まず、補助シートのA1セルに次の数式を入力して下さい。 =IF(OR(INDEX(Aシート!$A:$A,ROW())="",INDEX(Aシート!$B:$B,ROW())=""),"",INDEX(Aシート!$A:$A,ROW())&","&INDEX(Aシート!$B:$B,ROW()))  次に、補助シートのA1セルをコピーして、補助シートのA2以下に(Aシートのリストの行数を上回るのに充分な行数となるまで)貼り付けて下さい。  次に、CシートのA1セルの書式設定を、BシートのA1セルと同じ書式として下さい。  次に、CシートのB1セルの書式設定を、BシートのB1セルと同じ書式として下さい。  次に、CシートのD1セルの書式設定を、BシートのC1セルと同じ書式として下さい。  次に、CシートのA1セルに、次の数式を入力して下さい。 =IF(INDEX(Bシート!$A:$A,ROW())="","",INDEX(Bシート!$A:$A,ROW()))  次に、CシートのB1セルに次の数式を入力して下さい。 =IF(INDEX(Bシート!$B:$B,ROW())="","",INDEX(Bシート!$B:$B,ROW()))  次に、CシートのC1セルに次の数式を入力して下さい。 =IF(COUNTIF(補助シート!$A:$A,$A1&","&$B1)=0,"",INDEX(Aシート!$C:$C,MATCH($A1&","&$B1,補助シート!$A:$A,0)))  次に、CシートのD1セルに次の数式を入力して下さい。 =IF(INDEX(Bシート!$C:$C,ROW())="","",INDEX(Bシート!$C:$C,ROW()))  次に、CシートのE1セルに次の数式を入力して下さい。 =IF(INDEX(Bシート!$D:$D,ROW())="","",INDEX(Bシート!$D:$D,ROW()))  次に、CシートのA1~E1の範囲をコピーして、同じ列の2行目以下に(Bシートのリストの行数を上回るのに充分な行数となるまで)貼り付けて下さい。  これで、Cシートに、AシートとBシートの内容を反映したリストが表示されます。  それから、Aシートのリストの行数が、あまり多くは無い場合には、補助シートを使用せずに済ます方法もあります。  その場合は、CシートのA1セル、B1セル、D1セル、E1セルには、上記の補助シートを使用する場合と同じ数式を入力し、C1セルに入力する数式を次の様な数式に変更して下さい。 =IF(SUMPRODUCT((ASheet128!$A$1:INDEX(ASheet128!$A:$A,MATCH("゛",ASheet128!$C:$C,-1))=$A1)*(ASheet128!$B$1:INDEX(ASheet128!$B:$B,MATCH("゛",ASheet128!$C:$C,-1))=$B1))=0,"",INDEX(ASheet128!$C:$C,SUMPRODUCT((ASheet128!$A$1:INDEX(ASheet128!$A:$A,MATCH("゛",ASheet128!$C:$C,-1))=$A1)*(ASheet128!$B$1:INDEX(ASheet128!$B:$B,MATCH("゛",ASheet128!$C:$C,-1))=$B1)*ROW(ASheet128!$C$1:INDEX(ASheet128!$C:$C,MATCH("゛",ASheet128!$C:$C,-1))))))  但し、こちらの方法では、Aシートのリストの行数が多過ぎる場合(数千行以上にもなる場合)には、計算処理に時間が掛かる様になります。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

リンクという言葉は特別な意味合いがあり、安易には使わないほうがよい。 質問の例示データ数が少なく、言葉による説明が無いのでよくわからないが、リンクというより、検索ではないのか。 BシートのB列が府県コードで、それでAシートのB列も府県コードらしいから(これぐらい明確に質問で説明を) それを検索して、府県名を持ってくる、で良いのだろう。 エクセルにはVLOOKUP関数(FALSE型)という有名で常識的で多用される関数が在る。 これを使えば検索できるのだろう。 例データ A列 B列 C列 D列 01 01 東京都 0001 品川区 01 01 東京都 0002 新宿区 01 01 東京都 0003 目黒区 01 02 大阪府 0001 淀川区 01 02 大阪府 0002 天王寺区 01 02 大阪府 0003 大正区 上表でのC2に =VLOOKUP(B2,Sheet1!$B$1:$C$100,2,FALSE) と入れて下方向に式を複写。 上例ではAシートのシート名はSheet1としている。 ーー エクセルの質問には、常識としてバージョン(番号)も書いておくこと。 アクセスで出来るならアクセスでやって、エクセルへエクスポートする方法はもちろんある。

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.2

CシートのA列B列D列E列にBシートのA列B列C列D列を引用してから、 CシートのC列に以下の式を入れて下にドラッグコピーしてみて下さい。 =VLOOKUP(B1,A!B:C,2,FALSE)

  • oct1290
  • ベストアンサー率35% (75/213)
回答No.1

最初にリンクとあり その後結合とありますが BシートのC列D列をD列とE列に移動しAシートを貼り付ければ結合は簡単 リンクだと関数でデーターが増えたときの対応をするのか 現在のデータだけをリンクするのかで違ってきます

関連するQ&A