
毎月の店舗ごとの商品別の売り上げが、図(元データ)のような形式で提出されます。
(縦軸が商品、横軸が店舗名と数量・金額・在庫数)
集計のため、横軸の項目(店舗名・数量・金額・在庫数)を、縦軸に並び替えるため、手動で行っているのですが、80店舗あるため、VBAで並び替える方法がありましたらご教示いただけますと幸いです。
縦軸の商品は月によって増えたり、減ったりします。
横軸の店舗数も月によって増えたり、減ったりします。
数量・金額・在庫数 は毎月固定です。
説明が拙く恐縮ですが、何卒よろしくお願いいたします。

No.3ベストアンサー
- 回答日時:
標準モジュールに登録してください。
並替の1行目はあなたが作成してください。
マクロは2行目から設定します。
Option Explicit
Public Sub 並び替え()
Dim maxrow1 As Long
Dim maxcol1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim col1 As Long
Dim shouhin_count As Long '商品数
Dim tenpo_count As Long '店舗数
Dim sx As Long
Dim tx As Long
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("元データ")
Set sh2 = Worksheets("並替")
maxrow1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row '1列目最終行
maxcol1 = sh1.Cells(2, Columns.Count).End(xlToLeft).Column '2行目最終列
maxrow2 = sh1.Cells(Rows.Count, 1).End(xlUp).Row '1列目最終行
shouhin_count = maxrow1 - 2
If shouhin_count < 1 Then Exit Sub
If (maxcol1 - 1) Mod 3 <> 0 Then Exit Sub
tenpo_count = (maxcol1 - 1) \ 3
If tenpo_count < 1 Then Exit Sub
sh2.Rows("2:" & Rows.Count).ClearContents '並替の2行目以降をクリア
row2 = 2
'店舗数分の繰り返し
For tx = 1 To tenpo_count
'商品数分の繰り返し
For sx = 1 To shouhin_count
row1 = sx + 2
sh2.Cells(row2, "A").Value = sh1.Cells(row1, "A") '商品名
col1 = (tx - 1) * 3 + 2
sh2.Cells(row2, "B").Value = sh1.Cells(1, col1) '店舗名
sh2.Cells(row2, "C").Value = sh1.Cells(row1, col1) '売り上げ数
sh2.Cells(row2, "D").Value = sh1.Cells(row1, col1 + 1) '売り上げ金額
sh2.Cells(row2, "E").Value = sh1.Cells(row1, col1 + 2) '在庫数
row2 = row2 + 1
Next
Next
MsgBox ("完了")
End Sub
色々とご説明が足りず、申し訳ありませんでした。
早速試してみたところ、無事できました。
大変助かりました。
本当にありがとうございました。
No.2
- 回答日時:
各セルの正確な位置が判らないと、マクロを作成できません。
元データの商品名と書かれているセルはA1でしょうか。
並び替え先の商品名と書かれているセルはA1でしょうか。
元データのシート名はなんでしょうか。
並び替え先のシート名はなんでしょうか。
又、図を添付する場合は、添付図の赤線で囲った部分も提示してください。
そうするとセルの正確な位置がわかります。

No.1
- 回答日時:
こんにちは
VBAのご質問のようですが、関数でもできるのでご参考までに。
ご提示の図がはっきりと見えないのと、セル位置が不明なので考え方だけになりますけれど・・・
添付図で1~6行目までが元のデータ(行数は可変です)とし、11行目以降に縦並びに表示するものと仮定します。
また、9行目のB列、E列で商品数と店舗数を指定するものと仮定します。
添付図では、
A12セルに
=IF(ROW(A1)>$B$9*$E$9,"",INDEX(A:A,MOD(ROW(A1)-1,$B$9)+3))
B12セルに
=IF(ROW(A1)>$B$9*$E$9,"",INDEX($1:$1,INT((ROW(A1)-1)/$B$9)*3+2))
C12セルに
=IF(ROW(A1)>$B$9*$E$9,"",INDEX($B:$IV, MOD(ROW(A1)-1,$B$9)+3, INT((ROW(A1)-1)/$B$9)*3+COLUMN(A1)))
の式を入れて、E12セルまでフィルコピー
さらに、A12:E12を選択して、下方に必要な分だけフィルコピーしています。
(9行目の商品数、店舗数を変更すれば、それに応じた表示に変わります)
>集計のため、横軸の項目(店舗名・数量・金額・在庫数)を、縦軸に並び替えるため、手動で行っているのですが、~
そもそもの話になりますが、元の表の形式を見直した方が宜しいようにも感じますが…?

早々のご回答ありがとうございます。
色々とご説明が足りず、申し訳ありません。
元のデータは、社外から取得しているものになり、こちらの希望レイアウトでいただけないか打診しましたが、できないとの回答で今回ご相談を上げさせていただきました。
関数でもできるのですね。大変勉強になります。
早速試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 棚卸表の前月比の関数等あれば教えてください 2 2023/05/02 18:34
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- Excel(エクセル) Excelのマクロを教えていただけないでしょうか? 1 2023/07/06 19:56
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- スーパー・コンビニ 一斉値上 スーパーの食料品 値上や単価の仕組みは? 4 2022/06/01 16:18
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- その他(ビジネス・キャリア) エクセルで一覧表を作るときのレイアウト、月日と項目の配置について相談です。 2 2023/04/11 09:37
- au(KDDI) auStyleの来店予約をする時に、iPhone14の商品予約もしました。昨日予約したのですが、連絡 1 2022/12/19 20:45
- その他(買い物・ショッピング) お詫びの電話をガチャンと切る 2 2023/01/11 18:42
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
VBA横に並んでいるデータを縦に並ぶデータにしたいです。
Visual Basic(VBA)
-
エクセルで横データを縦に並べ変えたいです。
財務・会計・経理
-
VBA横のデータを縦にする方法
Excel(エクセル)
-
-
4
エクセルで縦に並んだデータをある項目毎に横に並び替えたい
Excel(エクセル)
-
5
VBA横データを縦にしたいです
Visual Basic(VBA)
-
6
エクセルで横並びの複数データを縦の一本のデータにしたい
Excel(エクセル)
-
7
エクセルで横並びの複数データを縦のデータにしたい こんにちは。宜しくお願い致します。 A B C D
ソフトウェア
-
8
VBA 縦のデータを横にするコード
IT・エンジニアリング
-
9
エクセルで1列に500行並んだデータを5列毎に改行
Excel(エクセル)
-
10
エクセル 横並びの複数行データを縦1列にしたい
Excel(エクセル)
-
11
VBAで横データを縦データに変換する方法を教えて下さい。
その他(Microsoft Office)
-
12
EXCELで「行と列を入れ替える」操作を何回も繰り返して自動実行する方法はないでしょうか?
Excel(エクセル)
-
13
エクセル VBA 時系列に横一列に並んだデータを 縦に整頓するマクロを教えてください。
Visual Basic(VBA)
-
14
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
15
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
16
VBAで重複データを合算したい
Excel(エクセル)
-
17
重複するIDのデータを1行にまとめるvbaのコード
Access(アクセス)
-
18
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
英数字のみ全角から半角に変換
-
マクロ1があります。 A1のセル...
-
Office 2021 Professional Plus...
-
マクロ自動コピペ 貼り付ける場...
-
【Excel VBA】PDFを作成して,...
-
office365って抵抗感ないですか?
-
会社PCのメールが更新されない
-
Microsoft Formsの「個人情報や...
-
teams設定教えて下さい。 ①ビデ...
-
outlookのメールが固まってしま...
-
エクセルで英文字に入れた下線...
-
Excelで〇のついたものを抽出し...
-
office2019 のoutlookは2025年1...
-
別シートの年間行事表をカレン...
-
Office2021を別のPCにインスト...
-
エクセルでXLOOKUP関数...
-
VBAファイルの保存先について
-
Microsoft 365 の一般法人向け...
-
エクセルマクロ(超初心者)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
英数字のみ全角から半角に変換
-
大学のレポート A4で1枚レポー...
-
【Excel VBA】PDFを作成して,...
-
マクロ1があります。 A1のセル...
-
Office 2021 Professional Plus...
-
マクロ自動コピペ 貼り付ける場...
-
会社PCのメールが更新されない
-
Microsoft Formsの「個人情報や...
-
エクセルでXLOOKUP関数...
-
Excel 日付を比較したら、同じ...
-
Office2021を別のPCにインスト...
-
office2019 のoutlookは2025年1...
-
パソコンを買い替える際、前の...
-
outlookのメールが固まってしま...
-
Excel テーブル内の空白行の削除
-
office365って抵抗感ないですか?
-
Office(H&B2016)を使用中に古...
-
Outlook で宛先が複数の場合の人数
-
teams設定教えて下さい。 ①ビデ...
おすすめ情報
ご説明不足で申し訳ありません。補足いたします。
元データの「商品名」と書かれているセルの位置はA1セルになり、シート名は「元データ」です。
並び替え先のシート名は「並替」で、こちらも「商品名」と書かれているセルの位置はA1セルになります。
元データは社外から取得しているものになり、こちらの希望レイアウトでいただけないか打診しましたが、できないとの回答で今回ご相談を上げさせていただきました。
どうぞよろしくお願いいたします。