下記のようなデータ(列数も行数も常に変わり、固定ではない)を
┌─────────────────
│ A 列 | B列 | C列 | D列
├───────────────────
│ 1 │伝票01 │品名01 | 品名02 │品名03
├───────────────────
| 2 │0011 │みかん │みかん | りんご
├───────────────────
│ 3 │1001 │りんご │いちご |
├───────────────────
│ 4 │1100 │いちご │みかん | ぶどう
└───────────────────
↓のように2列にまとめる方法はございますでしょうか?VBAを希望しております。
よろしくお願い申し上げます。
┌─────────────────
│ A │ B
├─────────────────
│ 1 │伝票 │品名
├─────────────────
│ 2 │0011_品名01 │みかん
├─────────────────
│ 3 │1001_品名01 │りんご
├─────────────────
│ 4 │1100_品名01 │いちご
├─────────────────
│ 5 │1001_品名02 │みかん
├─────────────────
│ 6 │1100_品名02 │いちご
├─────────────────
│ 7 │1001_品名02 │みかん
├─────────────────
│ 8 │1100_品名03 │りんご
├─────────────────
│ 9 │1001_品名03 │
├─────────────────
│ 0 │1001_品名03 │ぶどう
├─────────────────
No.2ベストアンサー
- 回答日時:
作成例:
sub macro1()
dim h as range
dim Target as range
dim n as long
dim w as worksheet
’準備
set w = activesheet
set target = w.range("A1").currentregion.offset(1,1)
worksheets.add after:=activesheet
range("A1:B1") = array("伝票","品目")
n = 1
’転記
for each h in target
if h <> "" then
n = n + 1
cells(n, "A") = w.cells(h.row,1).text & "," & w.cells(1, h.column).value
cells(n, "B") = h.value
end if
next
end sub
keithin 様
下手な質問文だったと思いますが、お察しいただき恐縮です。
おかげさまで、やりたいことができました。
また早々のご回答をいただき大変助かりました、誠にありがとうございました。
No.3
- 回答日時:
>2列にまとめる方法はございますでしょうか?VBAを希望しております。
⇒期待値として5行目以降の平仄が合っていないのではないでしょうか。
VBAの知識がないのであれば丸投げ質問は、回答後に変更が発生したら対応が
とれないので、VBAを学習してから質問した方が良いと思う。
因みに2列の統合ですが以下の様な構成もありと思いますが如何でしょうか。
伝票1_品名1/品名1
伝票1_品名2/品名2
伝票1_品名3/品名3
伝票2_品名1/品名1
伝票2_品名2/品名2
~
(空白は対象外)
伝票n_品名m/品名m
コード例ですが、2つのループ処理でデータの転記が可能です。
For 行 = 2 To 列最終行
For 列 = 2 To 行最終列
データ転記
NEXT 列
Next 行
mu2011 様
ご指摘ありがとうございます。
自分ができる範囲で作ったコードを載せた方が良かったですね!すみません。
また、ご提案もありがとうございます、参考にさせていただきます。
No.1
- 回答日時:
品名の数が各行で一定数なら、エクセル関数の組み合わせで、できると思う。
しかし不定個数のようだから、関数では複雑になる。質問者は何処まで勉強して考えてやってみたのか。
ーー
VBAでやれば素直な問題なので、書いておく。
こういう風に、データの組み換えなどしたくなったら、VBAは必須だというのが私の持論。
例データ A1:D4
伝票01品名01品名02品名03
0011みかんみかんりんご
1001りんごいちご
1100いちごみかんぶどう
(注)質問に丁寧に縦棒横棒で書いているが、こういう書き方(シートのセル範囲のコピペ)で、質問者に判るのでは
結果
J2:K9
0011品名01みかん
0011品名02みかん
0011品名03りんご
1001品名01りんご
1001品名02いちご
1100品名01いちご
1100品名02みかん
1100品名03ぶどう
ーー
コードは
標準モジュールに
Sub test01()
d = Range("A65536").End(xlUp).Row
k = 2
For i = 2 To d
r = Cells(i, "I").End(xlToLeft).Column
For j = 2 To r
Cells(k, 10) = Cells(i, "A") & Cells(1, j)
Cells(k, 11) = Cells(i, j)
k = k + 1
Next j
Next i
End Sub
(注意)
同じシートのJ列から結果を出している。従って元データはI列までと仮定。そうでない場合1部手直しが必要。
他シートに結果を出すのは一部手直しが必要。
(VBAの回等が、質問者の意に沿うかどうか判らないので手抜き。)
imogashi様
for~next のネストはまだまだ組み立てるのが苦手なので大変勉強になりました。
丁寧なご回答いただき、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) チームごとにどの商品を何個希望しているか数量を算出したいです。 A列(A2~A265)に各チーム名が 3 2023/07/18 18:46
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- Excel(エクセル) 【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。 3 2023/03/23 17:30
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
- Visual Basic(VBA) vbaマクロについて 【1.csv】をもとに【商品.csv】に有るものを【有り.csv】として名前を 1 2023/05/18 07:58
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えてください!!
-
7文字以上のフルーツをできるだ...
-
筍の上の部分が緑色になってい...
-
ハーブソルトを代用できるもの...
-
中黒「・」か読点「、」か?
-
Excel MATCH関数で検索範囲内...
-
10年前のにんにく漬け、食べて...
-
Excelでの全通りの組み合わせ出...
-
しらたきと吐き気
-
スポンジケーキってどのくらい...
-
Excelの関数 SUBSTITUTEとIF関...
-
エクセルで数字を入力したら文...
-
職場で隣の人についてです。飲...
-
果物が大嫌いな私、果物代わり...
-
「であり」と「であって」の使...
-
パイナップルを食べるとどうし...
-
野菜の煮込み料理で野菜の臭み...
-
「○○って」と「○○て」 書き言...
-
梶井基次郎の檸檬
-
外はふわふわで(柔らかい)、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
7文字以上のフルーツをできるだ...
-
教えてください!!
-
スポンジケーキってどのくらい...
-
ハーブソルトを代用できるもの...
-
Excel MATCH関数で検索範囲内...
-
中黒「・」か読点「、」か?
-
Excelでの全通りの組み合わせ出...
-
バルサミコ酢とバルサミコソー...
-
外はふわふわで(柔らかい)、...
-
エクセルで数字を入力したら文...
-
「であり」と「であって」の使...
-
インドの国旗とアイルランドの...
-
職場で隣の人についてです。飲...
-
エクセル 同名の場合はB列にC...
-
Excelの関数 SUBSTITUTEとIF関...
-
しらたきと吐き気
-
ライム(果物)を漢字になおす...
-
東京モノレールはスイカで乗れ...
-
スーパーで買った1つ300円の梨...
-
せとか(オレンジみたいなやつ...
おすすめ情報