• 締切済み

別シートからデータ抽出し複数行に入力するには

はじめまして、エクセル初心者ですがよろしくお願いします。 データシートから入力シートにグループを入力すると複数行同時に入力されるようにするにはどのようにすればよいでしょうか、データシートはこんな感じです。 Aグループ Bコード C名前  Dかな ・・・・・ 1  A-1   101   田中  たなか ・・・・・・ 2       102   佐藤  さとう ・・・・・・ 3       103   太田  おおた ・・・・・・ 4  A-2   104   上田  うえだ ・・・・・・ 5       105   田中  たなか ・・・・・・ とあり、グループは60以上ありグループは3人一組なのでセルを統合しています。 抽出シートは Aグループ Bコード C名前  Dかな 1 2 3 グループのセルは3行を1つに統合してます。ランダムにグループコードを入れるとBのコードとC、Dが同時に入力される方法というのがあるのでしょうか。分かりにくい質問かもしれませんがよろしくお願いします。

みんなの回答

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

>>尚、別に入力シートを設けずとも~ とありますが、ということは抽出シートB列2行目に =IF(INDEX($A:$A,FLOOR(ROW()-関数を入力すれば、A列にグループ名を入力すると表示されるということでよろしいのでしょうか?  はい、その通りです。  抽出シートのB列のセルに =IF(INDEX($A:$A,FLOOR(ROW()-ROW($A$1)-1,3)+ROW($A$1)+1)="","",IF(ISERROR(1/(INDEX(データ!B:B,MATCH(INDEX($A:$A,FLOOR(ROW()-ROW($A$1)-1,3)+ROW($A$1)+1),データ!$A:$A,0)+MOD(ROW()-ROW($A$1)-1,3))<>"")),"",INDEX(データ!B:B,MATCH(INDEX($A:$A,FLOOR(ROW()-ROW($A$1)-1,3)+ROW($A$1)+1),データ!$A:$A,0)+MOD(ROW()-ROW($A$1)-1,3)))) の方の関数を入力してから、そのセルをコピーして、B~D列の他のセルに貼り付けておけば、抽出シートのA列の結合セルにグループ名を直接入力するだけで、B~D列にデータが表示される様になります。

yoshida108
質問者

お礼

kagakusukiさん、ありがとうございました。

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

>グループは3人一組なので >グループのセルは3行を1つに統合してます。 という事は、抽出シートにおいても必ず3行一組でデーターを表示すると考えて宜しいのでしょうか?  それと御質問文の例では「グループ名」、「コード」、「名前」、「かな」と言った項目名を入力する行が存在していないため、ここでは仮に1行目が項目名の記入欄として使用されていて、A-1グループのデータは2~4行目に入力されているものとします。  又、1行目を項目欄として使用する事は抽出シートも同様であるものとします。  又、 >入力シートにグループを入力すると というだけでは入力シートのどこにどのように入力するのか判りませんので、仮の話として入力シートのA2以下に入力し、その際には、データシートとは違って1行に1グループずつ入力するものとします。  まず、抽出シートのA2セルに次の関数を入力して下さい。 =IF(INDEX(入力!$A:$A,ROUNDUP((ROW()-ROW($A$1))/3,0)+ROW(入力!$A$1))="","",INDEX(入力!$A:$A,ROUNDUP((ROW()-ROW($A$1))/3,0)+ROW(入力!$A$1)))  次に、抽出シートのB2セルに次の関数を入力して下さい。 =IF(INDEX($A:$A,FLOOR(ROW()-ROW($A$1)-1,3)+ROW($A$1)+1)="","",IF(ISERROR(1/(INDEX(データ!B:B,MATCH(INDEX($A:$A,FLOOR(ROW()-ROW($A$1)-1,3)+ROW($A$1)+1),データ!$A:$A,0)+MOD(ROW()-ROW($A$1)-1,3))<>"")),"",INDEX(データ!B:B,MATCH(INDEX($A:$A,FLOOR(ROW()-ROW($A$1)-1,3)+ROW($A$1)+1),データ!$A:$A,0)+MOD(ROW()-ROW($A$1)-1,3))))  次に、抽出シートのB2セルをコピーして、抽出シートのB2~D4のセル範囲に貼り付けて下さい。  次に、抽出シートのA2セル~A4セルを結合して下さい。  次に、抽出シートのA2~D4のセル範囲をコピーして、同じ列範囲の5行目以下に貼り付けて下さい。  以上で準備は完了で、後は入力シートのA2以下にグループ名を入力しますと、そのデータが抽出シートに表示されます。  尚、別に入力シートを設けずとも、抽出シートのA列にある各結合セルにグループ名を直接入力する様なやり方に変更しても、B~D列のデータは表示されます。(その場合、A列の関数は上書きされて消えてしまいますが)

yoshida108
質問者

お礼

kagakusikiさん、ありがとうございます。うまく説明できてなくすみません、その通りで3行一組で表示できたらと考えています。1行目は項目の記入欄で2行目からデータとして入力しています。2~4行目にA-1グループが入力されています。また、抽出シートも同様になっています。入力シートというのは抽出シートの間違えで抽出シートのA列の統合セルにグループ名を入力するとB~D列の2~4行に表示されるようにと考えていました。 ということは >尚、別に入力シートを設けずとも~ とありますが、ということは抽出シートB列2行目に =IF(INDEX($A:$A,FLOOR(ROW()-関数を入力すれば、A列にグループ名を入力すると表示されるということでよろしいのでしょうか?

関連するQ&A