ここから質問投稿すると、最大10000ポイント当たる!!!! >>

どなたか詳しい方の知識をお借りしたくて質問します。よろしくお願いします。
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月の各データが表示されるようにしたいのです。
関数でもマクロでも何か良い方法があるでしょうか?
よければ教えてください。お願いします。

A 回答 (2件)

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列単位で月のデータがある場合です。
列の範囲は、データによって変更して設定してください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/22 18:53

VBAで


例データ Sheet1のA2:F5 この例では第1行目はデータなし。
第2行にA,C,E・・列に月があるとする(半角月数字+"月")
1月-2月-3月
H19H18H19H18H19H18
213214
332142
---
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月
H19H18
32
21
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/22 18:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング