アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは、教えて下さい

EXCEL2003を使っています。shee1はA5:A8 , B5:B8 , C5:C8の結合セルが4行単位で, A列、B列、C列2400行まで続いています。

sheet2には、下記のような型で沢山のデータがあります
A2 A-1-1 (sheet1! A5:A8結合セル) B2 A-B-1(sheet1! B5:B8結合セル)
A3 A-2-2 (sheet1! A9:A12結合セル) B3 A-B-2(sheet1! B9:B12結合セル)
A4 A-3-3 (sheet1!A13:A16結合セル) B4 A-B-3(sheet1!B13:B16結合セル)

sheet2 A,B,C列のデータを、shee1結合セルに旨くデータリンクを掛けたい

A 回答 (2件)

こんばんは!


↓の画像で左側がSheet1で右側がSheet2です。
画像のような感じになればよいのですかね?

そうだとすると・・・
関数でやる場合は行合わせさえしっかり行えばINDEX関数で対応できると思います。

Sheet1のA5セル(A5~A8結合セル)に
=INDEX(Sheet2!A:A,ROW()-3*(INT((ROW()-1)/4)))
という数式を入れ、列方向と行方向にオートフィルでコピーしています。

ただ2400行目までオートフィルするのも大変ですし、わざわざ関数で行合わせに手間を取らない方法としては
VBAでやる方法もあります。
その一例も載せておきます。
画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j, k As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet2")
k = 5
For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To 3
With Range(Cells(k, j), Cells(k + 3, j))
.Merge
.Value = ws.Cells(i, j)
.HorizontalAlignment = xlCenter
End With
Next j
k = k + 4
Next i
End Sub 'この行まで

※ Sheet2のデータ最終行まですべてを表示するようにしています。
※ マクロの場合はSheet1のセル結合してなくても対応できるようにしています。
(もちろんセル結合していても問題ありません)

参考になりますかね?m(_ _)m
「データのリンク」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございました。希望通りのものが出来ました

お礼日時:2012/04/20 05:28

shee1のA5:A8の結合セルに次の式を入力してください。



=indirect("sheet2!a"&(row()-1)/4+1)

B列については、「sheet2!a」を「sheet2!b」に書き換えてください。最後に、これらの結合セルをコピーし、各列2,400行目までに貼り付けます。
    • good
    • 0

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