• ベストアンサー

他シートのデータを貼り付けたい

どなたか詳しい方の知識をお借りしたくて質問します。よろしくお願いします。 sheet1には元データがあり、例えば   A B D E F G 1 1月  | 2月  | 3月 2 H19 H18  |  H19 H18  |  H19 H18 3    2    1  |   3     2  |  1    4 4    3    3   |   2     1   |   4    2 5    ・   ・  |  ・    ・  |  ・    ・ とあり、各月のH19とH18で各数値を比較している表があるとします。 その表の各月ごとのデータをsheet2に貼り付けたいと思っています。 できれば各月の数字、1月ならどこかに”1”と入れると自動的に1月の各データがsheet2の決まった場所に表示される、"2"と入れると自動的に2月の各データが表示されるようにしたいのです。 関数でもマクロでも何か良い方法があるでしょうか? よければ教えてください。お願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

Sheet2のA1に 1とか入れる A2  =INDEX(Sheet1!$A:$J,ROW(),$A$1*2-1) B2 =INDEX(Sheet1!$A:$J,ROW(),$A$1*2) で、A2:B2を下フィルする データが、左から右に向かって、2列単位で月のデータがある場合です。 列の範囲は、データによって変更して設定してください。

asahijp
質問者

お礼

早速の返信、ありがとうございます。関数とVBA、どちらがいいか自分でやってみて決めようと思います。hallo-2007さんからアドバイスをもらい、本当に勉強になります!助かりました。ありがとうございます。

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

その他の回答 (1)

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

VBAで 例データ Sheet1のA2:F5 この例では第1行目はデータなし。 第2行にA,C,E・・列に月があるとする(半角月数字+"月") 1月 - 2月 - 3月 H19 H18 H19 H18 H19 H18 2 1 3 2 1 4 3 3 2 1 4 2 --- Sheet2のA1に2(2月の2) -- コード シート名は適宜変えること。 Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") m = sh2.Range("A1") & "月" ' MsgBox m For j = 1 To 24 Step 2 If sh1.Cells(2, j) = m Then MsgBox j sh1.Range(sh1.Cells(2, j), sh1.Cells(200, j + 1)).Copy Destination:=sh2.Range("A2") Else End If Next j End Sub --- 実行後 Sheet2のA1:B5 2 2月 H19 H18 3 2 2 1

asahijp
質問者

お礼

早速の返信、ありがとうございます。関数とVBA、どちらがいいか自分でやってみて決めようと思います。VBAに関してはまだまだ初心者なのでもっと知識と経験を積むことが大切ですが・・・本当にありがとうございました。助かりました。

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

関連するQ&A