• 締切済み

1セルに含まれる特定文字の数に応じて挿入&分割したい

C列にある1つのセルに含まれる特定文字の数をカウントし、そのセルの直下にカウントされた数に応じただけ行を挿入し、その上でB列のセルの内容を分割して記載することは可能でしょうか? 現在、A列(識別番号)、B列(正式名称)、C列(通称、別称、旧称etc)となっているデータなのですが、C列の1つのセルの中にはいくつもの通称、別称等が含まれています。 このC列のセルに記載される通称等のそれぞれの冒頭に"・"が付けられるという規則性しかありません。1つのセルに含まれる通称等の数(つまり"・"の数)は0から80と決まっていません。 なんとかしてこの"・"をカウントして行を挿入し、C列のセルを分割して正式名称と通称別称等が同一のB列に揃うようにしたいのですが、スキルに乏しく途方にくれています。 Office2003を使用ですがVBA等は一度も触ったことがありません。

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

様子がよくわかりません。 とりあえずC列のデータを分割挿入してみました。 C列のデータ最終行から1行ずつ上方向に総当たりしています。 15000行もあるとどれだけ時間がかかるかわかりません。 サンプル数を減らして確認してみてください。 Sub test1() Dim r As Long Dim d As Variant Dim n As Integer Dim i As Long Dim j As Integer r = Cells(Rows.Count, 3).End(xlUp).Row Application.ScreenUpdating = False For i = r To 2 Step -1 If Cells(i, 3).Value <> "" Then d = Split(Cells(i, 3).Value, "・") n = UBound(d) - 1 Cells(i, 3).Offset(1, -2).Resize(n, 8).Insert Shift:=xlDown For j = 1 To UBound(d) Cells(i, 3).Offset(j - 1).Value = "・" & Replace(d(j), Chr(10), "") Next j End If Next i Application.ScreenUpdating = True End Sub

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

その程度でしたらマクロを作成するよりも、自身で判断して行を挿入する方が早く処理が終了すると思います 他の方にマクロを作ってもらうのを待つ時間で処理できますよ Excelの操作に慣れていらっしゃらないなら、操作を覚える機会と思ってはいかがでしょう  ・データ → 区切り位置  ・編集 → 形式を選択して貼り付け → 行列を入れ替える を駆使すれば簡単にできますよ

lc4_duke
質問者

補足

行数が1000ぐらいなら正直チマチマ頑張ろうと思っていたのですが300行ちょっとで挫けました。 実は正式名称だけで15000行あるんです。 orz C列をフィルタにかけたら、こちらは8000セルほどあり、 "・"の数を調べる気力も無くなって泣きつきたい気分です…

関連するQ&A