複数データをまとめる。ピポットテーブルでは対応できない集計。
依頼内容:複数ユーザーのデータを、まとめる。この際に付与されている「リストID」を、横軸に並べてほしい。
・ピポットでは難しい。
・リストIDは合致するものは無し。
・小さい順に左から。
・1時間以内。
マクロ作成内容。
前提:手動で並べ替えておく。
電話番号、名前でまとめる。
複数ある場合は、左からリスト1、2、3、と並べる。
検証:INPUT、OUTPUTの数をチェック。ランダムでデータ検証。
※時間が無いので。
こちらのページは、仕事で頼まれた案件を忘れないように記載している、自分用のEXCELマクロです。自己流の実際に作成したマクロですので参考、コピペ、流用は構いませんが、動作等は責任は持てませんので了承ください。Dim等の宣言は別にあるので、そちらを参照してください。自分ようなのでサンプルはありません。
以下マクロ
MSG_FLG = MsgBox("いも実行OK?", vbYesNo) If MSG_FLG = vbNo Then Exit Sub End If mySheetName001 = "INPUT" mySheetName002 = "OUTPUT" ' ***クリア処理*** '### シートフィルタ解除サブプロシジー ### sheet_clear '#### データクリア Sheets(mySheetName002).Select Worksheets(mySheetName002).Cells.Clear ' Range("A:B,D:E,G:J").Select ' Selection.NumberFormatLocal = "@" Range("A1").Select CNT01 = 0 Set set_data01 = Worksheets(mySheetName001).Range("B4") Set set_data02 = Worksheets(mySheetName002).Range("B1") '### head set_data02.Offset(0, -1).value = "出荷予定日" set_data02.Offset(0, 0).value = "電話番号" set_data02.Offset(0, 1).value = "先名(漢字)" set_data02.Offset(0, 2).value = "郵便番号" set_data02.Offset(0, 3).value = "先住所" set_data02.Offset(0, 4).value = "依頼主電話番号" set_data02.Offset(0, 5).value = "依頼主名(漢字)" set_data02.Offset(0, 6).value = "依頼主郵便番号" set_data02.Offset(0, 7).value = "依頼主住所" set_data02.Offset(0, 8).value = "お客様管理番号" set_data02.Offset(0, 9).value = "商品名" set_data02.Offset(0, 10).value = "数量" set_data02.Offset(0, 11).value = "リスト1" set_data02.Offset(0, 12).value = "リスト2" set_data02.Offset(0, 13).value = "リスト3" set_data02.Offset(0, 14).value = "リスト4" set_data02.Offset(0, 15).value = "リスト5" set_data02.Offset(0, 16).value = "リスト6" set_data02.Offset(0, 17).value = "リスト7" set_data02.Offset(0, 18).value = "リスト8" set_data02.Offset(0, 19).value = "リスト9" set_data02.Offset(0, 20).value = "リスト10" ' Set set_data02 = Worksheets(mySheetName002).Range("B2") CNT01 = 1 Do Until set_data01.Offset(0, 0).value = "" If WORK01 <> (set_data01.Offset(0, 0).value & set_data01.Offset(0, 1).value) Then CNT01 = 1 Set set_data02 = set_data02.Offset(1, 0) set_data02.Offset(0, 0).value = set_data01.Offset(0, 0).value set_data02.Offset(0, 1).value = set_data01.Offset(0, 1).value set_data02.Offset(0, 2).value = set_data01.Offset(0, 2).value set_data02.Offset(0, 3).value = set_data01.Offset(0, 3).value set_data02.Offset(0, 4).value = set_data01.Offset(0, 4).value set_data02.Offset(0, 5).value = set_data01.Offset(0, 5).value set_data02.Offset(0, 6).value = set_data01.Offset(0, 6).value set_data02.Offset(0, 7).value = set_data01.Offset(0, 7).value set_data02.Offset(0, 8).value = set_data01.Offset(0, 8).value set_data02.Offset(0, 9).value = set_data01.Offset(0, 9).value set_data02.Offset(0, 10).value = set_data01.Offset(0, 10).value set_data02.Offset(0, 10 + CNT01).value = set_data01.Offset(0, 11).value WORK01 = (set_data01.Offset(0, 0).value & set_data01.Offset(0, 1).value) Else '### 同じコード CNT01 = CNT01 + 1 set_data02.Offset(0, 10 + CNT01).value = set_data01.Offset(0, 11).value End If Set set_data01 = set_data01.Offset(1, 0) Loop Sheets(mySheetName002).Select Range("A1").Select Application.StatusBar = "処理件数 >" & CNT01 & " 件(END)" MSG_FLG = MsgBox(" 処理END(^^) ")
Discussion
New Comments
No comments yet. Be the first one!