[[20071124141612]] 『表の縦横変換について』(ミヤ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表の縦横変換について』(ミヤ)

下記のように横書きの表を縦書きにコピーするための、関数を教えてください。

B表            A表

氏名 住所        氏名 住所 年齢 性別

年齢 性別        氏名 住所 年齢 性別

氏名 住所以下      500行あり

年齢 性別

以下500行あり 

※すみません前の質問に表題がつかなかったので再登録します。よろしくお願いします。                        


 Sheet1のA1:D500に元データがあり、Sheet2のA1:B1000に表示するものとして、
Sheet2のA1に
=OFFSET(Sheet1!$A$1,INT(ROW(A1)/2),COLUMN(A1)-1)
Sheet2のA2に
=OFFSET(Sheet1!$A$1,INT(ROW(A1)/2),MOD(ROW(A1),2)+COLUMN(A1))
として、
A1:A2を選択し、右へフィルハンドルをドラッグしてコピー後
そのままフィルハンドルをドラッグして、B1000までコピーします。

 マクロを使ってもよいなら、
Sub test()
Dim x, y
    x = Worksheets("Sheet1").Range("A1:D500").Value
    ReDim y(UBound(x, 1) * 2, UBound(x, 2))
        For i = 0 To 499
            y(i * 2, 0) = x(i + 1, 1)
            y(i * 2, 1) = x(i + 1, 2)
            y(i * 2 + 1, 0) = x(i + 1, 3)
            y(i * 2 + 1, 1) = x(i + 1, 4)
        Next i
    Worksheets("Sheet2").Range("A1:B1000").Value = y
End Sub

 以上のように考えましたが・・・・(Hatch)

 こんな感じでもいいかな
 =INDEX(Sheet1!A:C,INT(ROW(A2)/2),MOD(ROW(A2),2)*2+1)

 > こんな感じでもいいかな
 それがいいですね。  (Hatch)

早速ありがとうございます。
月曜日に会社で試させていただきます。
とりあえずは、お礼まで。
(ミヤ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.