
No.1ベストアンサー
- 回答日時:
マクロを使わなくても、
元表が列A~列Fまでにあるとすれば
cell(G1)=A1
cell(H1)=A2
cell(I1)=B1
cell(J1)=B2
cell(K1)=C1
cell(L1)=D1
cell(M1)=E1
cell(N1)=E2
cell(O1)=F1
cell(P1)=F2
として、G1:P2(P1ではなくP2です)を選択して下に引っ張る。
G:Pを選択して、コピー「形式を選択して貼り付け」「値」でペースト。
G:Pを「空白以外のセル」でフィルタを掛けて、コピー&別シートにペーストで出来ます。
No.3
- 回答日時:
'データのある当該シートモジュールか、標準モジュール
Sub ArrangedMatrix()
Dim ar() As Variant
Dim i As Long, j As Long, k As Long, n As Long
Dim rng As Range
Dim pstRng As Range
'//
Set rng = Range("A3", Range("A3").End(xlDown)) 'データ範囲
Set pstRng = Range("A20") '貼付け位置
'Worksheets("Sheet2").Range("A1") '違うシートの場合
'//
If Range("A3").End(xlDown).Row = Rows.Count Then
MsgBox "表が違うかもしれません。", vbExclamation
Exit Sub
ElseIf rng.Parent Is pstRng.Parent Then
If Not Intersect(rng, pstRng) Is Nothing Then
MsgBox "貼付け場所が重なっています。", vbExclamation
Exit Sub
End If
End If
ReDim ar(9, Int(rng.Rows.Count / 2) - 1)
For i = 1 To rng.Rows.Count Step 2
For j = 1 To 12
If rng.Cells(i + n, Int((j - 1) / 2) + 1).Value <> "" Then
ar(k, Int(i / 2)) = rng.Cells(i + n, Int((j - 1) / 2) + 1).Value
k = k + 1
If n = 1 Then n = 0 Else n = n + 1
Else
n = 0
End If
Next
k = 0
Next
'項目名
pstRng.Resize(, 10).Value = Array("受注NO", "管理NO", "注文品", "顧客名", "受注金額", "取引日", "営業部門", "営業担当", "営業部門", "製造担当")
pstRng.Offset(1).Resize(Int(rng.Rows.Count / 2), 10).Value = Application.Transpose(ar)
Set rng = Nothing
Set pstRng = Nothing
Beep
End Sub
No.2
- 回答日時:
マクロを使わなくとも次のようにすればよいでしょう。
元の表がシート1のA列からF列に有り、1,2行目は項目名でデータが3行目から下方にあるとします。
お求めの表をシート2に作るとしてA1セルからJ1セルまでに項目が並んで入力されているとします。
A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(OR(A$1="",ROW(A1)>(COUNTA(Sheet1!$A:$A)-2)/2),"",INDEX(Sheet1!$A:$F,ROW(A1)*2+1+IF(COLUMN(A1)<6,IF(MOD(COLUMN(A1),2)=0,1,0),IF(COLUMN(A1)>6,IF(MOD(COLUMN(A1),2)=0,1,0))),IF(COLUMN(A1)<=5,ROUNDUP(COLUMN(A1)/2,0),IF(COLUMN(A1)=6,4,ROUNDUP((COLUMN(A1)+2)/2,0)))))
この回答へのお礼
お礼日時:2010/05/11 16:50
どうもありがとうございます。
考え方はよくわかりましたが、うまくいきませんでした。
けれども関数の記入方等は参考になりましたので、次に活かせそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
マイクロソフト オフィスのサポ...
-
Office2021を別のPCにインスト...
-
Office2024インストール後の疑問点
-
エクセル 日付順に並べてかえた...
-
Microsoft365、ページ設定がで...
-
エクセルで質問です。 ハイパー...
-
マクロ自動コピペ 貼り付ける場...
-
outlookのメールが固まってしま...
-
Excelで〇のついたものを抽出し...
-
office2019 のoutlookは2025年1...
-
パソコンWindows11 Office2021...
-
Microsoft365
-
エクセル:一定間隔で平均値を...
-
別シートの年間行事表をカレン...
-
Officeを開くたびの「再起動メ...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
Microsoft Formsの「個人情報や...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
マイクロソフト オフィスのサポ...
-
Office2021を別のPCにインスト...
-
エクセル 日付順に並べてかえた...
-
outlookのメールが固まってしま...
-
Excelで〇のついたものを抽出し...
-
Microsoft Formsの「個人情報や...
-
マクロ自動コピペ 貼り付ける場...
-
Office2024インストール後の疑問点
-
office2019 のoutlookは2025年1...
-
エクセルで質問です。 ハイパー...
-
エクセル 同じ数字を他の列に自...
-
別シートの年間行事表をカレン...
-
【Excel VBA】PDFを作成して,...
-
Excel 日付を比較したら、同じ...
-
パソコンWindows11 Office2021...
-
Office 2021 Professional Plus...
-
エクセル:一定間隔で平均値を...
-
Teams内でショートカットって貼...
おすすめ情報