
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枚レポー...
-
Office2024インストール後の疑問点
-
マイクロソフト オフィスのサポ...
-
office2019 のoutlookは2025年1...
-
役所でもらった書類をエクセル...
-
Office2021を別のPCにインスト...
-
エクセルの貼り付け「リンクさ...
-
エクセル 日付順に並べてかえた...
-
Excelで〇のついたものを抽出し...
-
【Excel VBA】PDFを作成して,...
-
outlookのメールが固まってしま...
-
表の作成について
-
エクセル:一定間隔で平均値を...
-
エクセルで質問です。 ハイパー...
-
エクセルからメールを作れるか...
-
エクセルマクロ(超初心者)
-
マクロ自動コピペ 貼り付ける場...
-
Microsoft Formsの「個人情報や...
-
パソコンWindows11 Office2021...
マンスリーランキングこのカテゴリの人気マンスリー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内でショートカットって貼...
おすすめ情報