エクセルで下記のような表があり、店舗別に100店舗分のシートがあります。それを分類A、B別に1枚のシートにしたいのですが、簡単に作る方法はあるでしょうか。
【店名ア シート】
分類A 個数
商品1 60
商品2 40
商品3 20
分類B
商品4 50
商品5 80
商品6 30
↓↓↓
【分類Aシート】 【分類Bシート】
店名ア 商品1 60 店名ア 商品4 50
商品2 40 商品5 80
商品3 20 商品6 30
店名イ 商品1 30 店名イ 商品4 60
商品2 10 商品5 40
商品3 20 商品6 20
No.1ベストアンサー
- 回答日時:
簡単に作る方法は思い浮かびませんがプログラムを作って、それにさせれば簡単です。
ただ希望に沿ったプログラムに改造するには、ある程度VBAの勉強が必要かも。プログラムを作る時、次の事項を明確にします。
・あるシートが店舗別シートなのか分類別シートなのかを判定する仕組み
(例)シート名に「店」という文字が含まれていたら店舗別シートとする。
・店舗別シート内のどのセルのデータが分類名を表しているのかを判定する仕組み
(例)分類名の前に「分類:」などを付加して「分類:○○」とインプットされたセルのデータを分類名とする。
この例を適用して作った下記プログラムをVBA標準モジュールに貼付け、マクロ実行を行うと実現できます。貼付方法は参考URLを。
Sub Test()
For Each cm In Sheets
If InStr(cm.Name, "店") = 0 Then
cm.Select
Cells.ClearContents
Range("A1").Value = "店舗名"
Range("B1").Value = "商品名"
Range("C1").Value = "数量"
End If
Next cm
For Each cm In Sheets
If InStr(cm.Name, "店") > 0 Then
cm.Select
rme = Range("A65536").End(xlUp).Row
bunsht = ""
For rm = 1 To rme
bunsht = "分類シート要追加"
If InStr(Cells(rm, 1), "分類:") > 0 Then
bnr = Right(Cells(rm, 1), Len(Cells(rm, 1)) - 3)
For Each cs In Sheets
If cs.Name = bnr Then
Sheets(bnr).Select
rsb = Range("B65536").End(xlUp).Row
Cells(rsb + 1, 1).Value = cm.Name
bunsht = "分類シート既存"
Exit For
End If
Next cs
If bunsht = "分類シート要追加" Then
Sheets.Add before:=Sheets(1)
ActiveSheet.Name = bnr
Sheets(bnr).Range("A2").Value = cm.Name
Sheets(bnr).Range("A1").Value = "店舗名"
Sheets(bnr).Range("B1").Value = "商品名"
Sheets(bnr).Range("C1").Value = "数量"
End If
Else
Sheets(bnr).Select
rsb = Range("B65536").End(xlUp).Row
If cm.Cells(rm, 1) <> "" And cm.Cells(rm, 2) <> "" Then
Cells(rsb + 1, 2).Value = cm.Cells(rm, 1)
Cells(rsb + 1, 3).Value = cm.Cells(rm, 2)
End If
End If
cm.Select
Next rm
End If
Next cm
MsgBox "終了"
End Sub
参考URL:http://excelvba.pc-users.net/fol1/1_1.html
回答どうもありがとうございました。
なかなか返信もらえないので、あきらめていました。
プログラミングは難しいので、勉強しながら理解してみます。
また書きます。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) エクセルで複数設定したハイパーリンク先を、どれを選んでも画面の左上に来るようにしたいのですが・・・ 3 2022/04/07 16:15
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルで前のシートを連続参...
-
別シート参照のセルをシート毎...
-
シートの保護のあとセルの列、...
-
EXCELで1ヶ月分の連続した日付...
-
VBAで条件によりフォントサイズ...
-
エクセルで、「1つ前のシート...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
特定のシートの削除を禁止した...
-
エクセルで前シートを参照して...
-
エクセルでファイル保存時に複...
-
VBAでシートコピー後、シート名...
-
エクセルでシート名を自動入力...
-
Excelのシートを、まとめて表示...
-
EXCELで同一フォーマットのシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルでファイルを開いたと...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルで前のシートを連続参...
-
前の(左隣の)シートを連続参...
-
EXCELで同一フォーマットのシー...
-
VBAでシートコピー後、シート名...
-
Excel 連番を入力する方法
-
エクセル 計算式も入っていない...
-
エクセルで前シートを参照して...
-
エクセルでシート名を自動入力...
-
Accessのスプレッドシートエク...
-
複数シートの特定の位置に連番...
-
エクセルのシート名をリスト化...
おすすめ情報