
1行のセルにまとまっている情報を複数行に分けたい。
例ですが、下記のような情報が1行の1セルに入っているとします。
[LOT:1||作成するお名前(姓):201号 タニグチ||作成するお名前(名):スミコ]
[LOT:1||作成するお名前(姓):202号 タニグチ||作成するお名前(名):ヨシオ]
[LOT:1||作成するお名前(姓):203号 タニグチ||作成するお名前(名):カズコ]
これを1セル×3行に分けたいと思っています。
これが5人分の情報であれば、5行になるように汎用性があるようにしたい。
且つ、添付画像のように、
セルの左側にある注文番号も、対応してコピーされて欲しいと思っています。
《経緯》
個人で名前入れの商材を販売しております。
最近インターネットで、お客さんの注文を貰うようになりました。
頂いた注文情報をCSVでダウンロードすると、注文者毎に行が分かれます。
1注文者が、商品を1つ購入した場合は問題ありませんが、
同一注文者が、複数注文された場合、1つの行のセルにまとまってしまう事が発覚しました。
商品の作成をする際に使用する印刷ソフトの仕様上、
どうしても1行にわけないといけません。
今、なんとか手動でやっていますが、
件数が多くなってきたので、ミスも出始めています。
なんとかExcelやマクロを使い、自動的に分けられるようにしたく思っております。

A 回答 (4件)
- 最新から表示
- 回答順に表示

No.4
- 回答日時:
確認させてください。
「下記のような情報が1行の1セルに入っている」と仰っているその3行の文字列を、
貴方はどうやって入力されましたか?
あるいは、
どうやって入力されたか知っていますか?
例えば、入力されたセルを A1 としたとき、
式 =SUBSTITUTE(A1,CHAR(10),"") を入力したセル A2 はどのように表示されるか教えてください。
No.3
- 回答日時:
こんばんは!
VBAでの一例です。
元データはSheet1のA・B列にあり、Sheet2に表示するとします。
1行目は項目行でデータは2行目以降にあるという前提です。
尚、お示しの画像のようにB列は
[LOT:1|| のようになっているのですよね。
すなわち最初の [LOT:○|| の部分と最後の ] も消去する必要がある!という解釈で・・・
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, k As Long, cnt As Long
Dim wS As Worksheet
Dim myAry
Set wS = Worksheets("Sheet2")
wS.Range("A:B").ClearContents
With Worksheets("Sheet1")
wS.Range("A1:B1").Value = .Range("A1:B1").Value
cnt = 1
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
myAry = Split(.Cells(i, "B"), vbLf)
For k = 0 To UBound(myAry)
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, "A")
wS.Cells(cnt, "B") = myAry(k)
Next k
Next i
End With
myAry = Array("[*||", "]")
For k = 0 To UBound(myAry)
wS.Range("B:B").Replace what:=myAry(k), replacement:="", lookat:=xlPart
Next k
wS.Activate
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
”改行コード” で「区切り位置」を使って分割することから始めてはいかがでしょう。
これなら手作業でも間違えることは無くなると思います。
「区切り位置」で ”その他” を選び、改行コードのCtrl+J(Ctrlキーを押しながら「J」キーを押す)を入力してみましょう。
数式やマクロを使うということは、その挙動を理解してる必要があります。
条件が変わったときに修正できないのであれば意味がありませんよね。
条件が変わったときにまた質問すれば良いと思っていらっしゃるなら、この手のマクロを作ってくれる業者を頼ることをお勧めします。(←マジで)
・・・
添付した画像は「区切り位置」での設定の例です。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同一セルに日時があるものを日...
-
ドロップダウンリストで空白の...
-
EXCELでCSVファイル保存すると...
-
EXCELで年月日の表記から日付部...
-
Excelで指定した条件と一致する...
-
エクセルでセルを一括で右詰に...
-
エクセルVBAで、複数セルのデー...
-
1つのセルにまとまっている情報...
-
excelで平均差を出したい
-
Excelで連続データを行飛ばしで...
-
エクセル
-
エクセルで長い行を5行ごとに1...
-
エクセル条件付書式で指定の時...
-
エクセルで文字が白くなる
-
エクセルで円グラフに引き出し...
-
Excelで小数点以下1桁の年数を...
-
エクセルの主軸と第2軸の0を合...
-
エクセルで文字を含む式に、カ...
-
エクセルで上付き,下付き文字...
-
EXCELの散布図で日付が1900年に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同一セルに日時があるものを日...
-
EXCELでCSVファイル保存すると...
-
Excelで指定した条件と一致する...
-
OFFSET関数を使用した印刷範囲...
-
COUNTIFの反対の関数はあるので...
-
エクセルVBAで、複数セルのデー...
-
1年分のデータから特定の月分...
-
1つのセルにまとまっている情報...
-
エクセルでセルを一括で右詰に...
-
ドロップダウンリストで空白の...
-
Excelで連続データを行飛ばしで...
-
EXCELで年月日の表記から日付部...
-
【VBA】指定フォルダに格納中の...
-
エクセル
-
エクセルで数字、文字列混在の...
-
excelで平均差を出したい
-
エクセル 値から時間に変換
-
エクセルVBA オートフィルの最...
-
セルの内容を比較して同否を自...
-
補足お願いします、エクセル計算式
おすすめ情報