No.1ベストアンサー
- 回答日時:
こんばんは!
無理矢理って感じのVBAでやってみました。
↓の画像のようにA列の1行目からデータがあるとします。
(1)数字の前は一文字とし、同じ文字である。
(2)文字の後の数値は続き番号になっている。
という前提です。
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub test() 'この行から
Dim i, j, k As Long
Dim myArray As Variant
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
myArray = Split(Cells(i, 1), ",")
k = UBound(myArray)
For j = 2 To k + 2
Cells(i, j) = myArray(j - 2)
Next j
Next i
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = Cells(i, Columns.Count).End(xlToLeft).Column To 3 Step -1
If Left(Cells(i, j - 1), 1) = Left(Cells(i, j), 1) Then
Cells(i, j) = Mid(Cells(i, j), 2, Len(Cells(i, j)))
End If
Next j
Next i
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = Cells(i, Columns.Count).End(xlToLeft).Column To 3 Step -1
If IsNumeric(Cells(i, j)) And IsNumeric(Cells(i, j - 1)) Then
Cells(i, j - 1).Delete (xlToLeft)
End If
Next j
Next i
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = Cells(i, Columns.Count).End(xlToLeft).Column - 1 To 2 Step -2
Cells(i, j) = Cells(i, j) & "~" & Cells(i, j + 1)
Cells(i, j + 1).Delete (xlToLeft)
Next j
Next i
Application.ScreenUpdating = True
End Sub 'この行まで
※ じっくり考えればもう少し簡単なコードになるかもしれません。
他に良い方法があればごめんなさいね。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) 【エクセル】複雑な関数を教えてください 1 2023/06/05 18:09
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルをクリック⇒そのセルに入力...
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで縦に1112223...
-
(Excel)数字記入セルの数値の後...
-
エクセル 足して割る
-
エクセル “13ヶ月”を“1年1ヶ月...
-
LARGE関数 飛び飛びの範囲を指定
-
excelの特定のセルの隣のセル指...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
【Excel】 セルの色での判断は...
-
Excelでのコメント表示位置
-
エクセルの一つのセルに複数の...
-
エクセルの関数VLOOKUP...
-
EXCELで、角度の「50.5度」を「...
-
複数セルに入力した数字をカン...
-
EXCELでフルパスから2つ目¥を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報