エクセル中級?者です。マクロをかじった程度ですが、
下記のパターンでレコードを自動追加作成するのに、簡単な方法はありますか?
項目 商品 数量
レコード1 A 3
レコード2 B 2
↓
レコード1 A 1
レコード2 A 1
レコード3 A 1
レコード4 B 1
レコード5 B 1
商品別の n個の合計データより、単品毎n個のレコードを自動作成したいのです。
合計データだけでも2,000程あり、×約5レコードで10,000はコピーするだけでも大変で、なんとかエクセルのマクロ等で自動作成できないものでしょうか?
シートやブックが変わっても結構です。宜しくお願いします。
No.2ベストアンサー
- 回答日時:
関数でやってみました。
例データ A1:D7(データはA,B列、CD列は下記で説明)
商品名数量0a
a34b
b26c
c410d
d313f
f215g
g520
C2に式
=SUM($B$2:B2)+1
と入れてC7まで式を複写。
C1に0を入れる。
D1:D6にA2:A7の値を複写する。
E1に
=VLOOKUP(ROW(),$C$1:$D$7,2,TRUE)
といれて、式を第20-1行まで複写する。
結果 E1:E19に
a
a
a
b
b
c
c
c
c
d
d
d
f
f
g
g
g
g
g
となる。質問者のケースに合わせて修正してください。
コピーは、行数が多いので、+ハンドルを引っ張るのでなく、CTRL+C(コピー元・1セル),CTRL+V(コピー先・多数セル指定)でやってください。
教えて頂いた通りに応用すると、摩訶不思議に見事問題がクリアしました。
VLOOKUPがこんな風に使えるとは、大変勉強になりました。
どうも有り難うございました。
No.1
- 回答日時:
こんばんは。
話が見えていない部分があるので、こちらで考えました。
"レコード1" が、なぜ、変ってしまうのか、よく分りませんし、まさか、数字を取り去っるなんていう話ですと、かなりややこしくなるかと思います。一応、定数として、(BASENAME=)「レコード」を使いました。考え方は、分るはずですから、後は、ご自身で加工してみてください。
'<標準モジュール推奨>
Sub CopyPasteByCount()
Dim c As Range
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Const BASENAME As String = """レコード"""
Set Sh1 = Worksheets("Sheet1") 'ソース側
Set Sh2 = Worksheets("Sheet2") 'ペースト側
Application.ScreenUpdating = False
For Each c In Sh1.Range("C1", Sh1.Range("C1").End(xlDown))
If IsNumeric(c.Value) Then
With Sh2.Range("A65356").End(xlUp).Offset(1)
.Resize(c.Value, 1).FormulaLocal = "=" & BASENAME & "& ROW()-1"
.Resize(c.Value, 1).Value = .Resize(c.Value, 1).Value
.Offset(, 1).Resize(c.Value, 1).Value = c.Offset(, -1).Value
.Offset(, 2).Resize(c.Value, 1).Value = 1
End With
End If
Next c
Sh2.Rows(1).Delete '最後に、一行目を削除
Set Sh1 = Nothing: Set Sh2 = Nothing
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- その他(音楽・ダンス・舞台芸能) 「録音品質の良い」オススメのレコードを教えてください。 皆様のお持ちのレコードで「これは音がいい!」 8 2022/08/08 14:45
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- Oracle 列1と列2の関係性で列3の条件に一致するレコードを抽出したい 1 2022/04/13 07:46
- iPod・ウォークマン・音楽プレーヤー レコードの楽曲をPCに取り込みたい レコードを何枚か持っているのですが、再生機器がありません。スマー 4 2022/10/03 09:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの空のセル
-
エクセルのハイパーリンクがう...
-
エクセルの数式で教えてください。
-
Excel 漢字二文字の先頭と最後 ...
-
EXCELだけを格安で買える店を教...
-
他人が作ったマクロの理解
-
エクセルで比較 かつ 部分一致...
-
一列の中の金額を他のセルに
-
Excelが大きくなってしまう問題
-
エクセルで入力してある文を別...
-
ExcelVBAの漢字の範囲について...
-
余分なEXCELファイルに印刷され...
-
【スプレッドシート】時間入力...
-
【VBA】シート名と見出しが一致...
-
長期休みの関数はありますか
-
表示されている人数だけを数え...
-
Excel関数について
-
Excel関数の先頭に「@」が入っ...
-
Excelの関数について質問です。
-
エクセルの書式設定について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル詳しい方教えて下さい
-
ExcelでA列をコピーしたいので...
-
エクセルのセル統合について
-
Excelの関数で起きた現象の原因...
-
Excelファイルが閉じられい!
-
Excelのシート背景に不明な文字...
-
エクセルの枠線
-
Excel 領収書発行
-
エクセル関数の使い方を教えて...
-
C列にF列の担当者(A〜)を順番...
-
ピポットテーブルの参照元を別...
-
EXCEl VBA
-
Excelでの判別方法
-
VBAで、サブフォルダにある複数...
-
"りんご"と"みかん"というシー...
-
マクロについて教えてください。
-
EXCELファイルが読み取り専用で...
-
同一セルに入力規則のリストと...
-
100行50列の表で、1~40列でフ...
-
なぜか「Nextに対応するForがあ...
おすすめ情報