Excelにて、セルに入力してある文字の中から文字と最後の数字をコピー
となりのセルに貼り付ける事は可能でしょうか。特殊記号があります
現状
sheet1のA2からA300の中で、"10選別¥100" とか "1→先出00べんきょして1@200" のように
入力されていて
それを "選別"を隣のセル、"100"をその隣のセルにコピー
”1→先出001@200”の場合は、”先出"を隣のセル、"200"をその隣のセルにコピーというように
したく、ネットなど参考に数字だけ消すとか記号だけ消すとか試みたのですが、何分力ぶそくで
出来ません
本来であれば、自分で勉強してやらないといけないのですが、体調を崩している状態で
時間がなくすご教授願いただければありがたいです
No.4ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub 漢字数字振り分け()
Dim wrow As Long
Dim maxrow As Long
Dim ws As Worksheet
Dim kan As String
Dim num As String
Dim str As String
Dim RE1 As Object
Dim RE2 As Object
Set RE1 = CreateObject("VBScript.RegExp")
Set RE2 = CreateObject("VBScript.RegExp")
RE1.Pattern = "([あ-ヶ亜-腕丐-熙纊-黑]+)"
RE1.Global = True
Set RE2 = CreateObject("VBScript.RegExp")
RE2.Pattern = "([0-9]+)$"
RE2.Global = True
Set ws = ActiveSheet
maxrow = ws.Cells(Rows.Count, 1).End(xlUp).Row
For wrow = 1 To maxrow
str = ws.Cells(wrow, 1).Value
Call mysplit(RE1, RE2, str, kan, num)
ws.Cells(wrow, 2).Value = kan
ws.Cells(wrow, 3).Value = num
Next
End Sub
Private Sub mysplit(RE1 As Object, RE2 As Object, ByVal str As String, kan As String, num As String)
kan = ""
num = ""
Dim mcs1 As Object
Dim mc1 As Object
Dim mcs2 As Object
Dim mc2 As Object
Set mcs1 = RE1.Execute(str)
Set mcs2 = RE2.Execute(str)
If mcs1.Count <> 0 Then
Set mc1 = mcs1(0)
kan = mc1.submatches.Item(0)
End If
If mcs2.Count <> 0 Then
Set mc2 = mcs2(0)
num = mc2.submatches.Item(0)
End If
End Sub
No.5
- 回答日時:
No4です。
マクロの補足です。
1.漢字列が2つ以上あった場合は、最初の漢字列をB列へ設定します。
例 10先出20後出AAA300 の場合、 先出 を設定
2.最後が数字でない場合、C列は空白になります。
例 10先出20後出AAA300A の場合、C列は空白を設定
3.最後の数字列が0から始まる場合、その0は削除されます。
例 *123\012345 の場合、C列は12345を設定。
もし、0を付加したい場合は、C列の書式を文字列にしてから、マクロを
実行してください。そうすると、0が削除されずに設定されます。
説明していただき ありがとうございます。
そして丁寧な対応に感謝いたします
今年も残すところあと3日
体調に注意して、良いお年をお迎えください
ありがとうございました。
No.3
- 回答日時:
No1です。
補足要求の追加です。3.文字列の中に漢字がないパターン、もしくは漢字が2つ以上のパターンはありますか。
AAA000BBB123
1→先出000後出@300
のようなケースです。
もし、あった場合、どのような結果になることを望みますか。
No.2
- 回答日時:
関数でもできます。
例えば
B2に=COUNTIF(A2,"*選別*")
C2に=COUNTIF(A2,"*先出*")
とすると、それぞれの文字が含まれていれば1、なければ0となります。
D2に=IF(B2=1,"選別",IF(C2=1,"先出",""))
とすると文字表示の列ができます。
B列とC列を非表示にすると2列目が抽出した文字列に見えます。
抽出する数字が常に末尾の3桁ならRIGHT関数、そうでなければ指定文字以降を抽出すれば良いです。
https://blog-tips.sekenkodqx.jp/2019/10/09/excel …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセルで指定したセルのどれ...
-
EXCEL VBA セルに既に入...
-
エクセル 足して割る
-
【Excel】 セルの色での判断は...
-
貼り付けで複数セルに貼り付けたい
-
セルをクリック⇒そのセルに入力...
-
Excelで住所を2つ(町名迄と番...
-
エクセルのセルの枠を超えて文...
-
★★エクセルのテキストボックス...
-
Excelでのコメント表示位置
-
エクセルで複数のデータをセミ...
-
エクセルの一つのセルに複数の...
-
エクセル オートフィルタで絞...
-
LARGE関数 飛び飛びの範囲を指定
-
エクセル “13ヶ月”を“1年1ヶ月...
-
VBAで特定の文字が入力されたセ...
-
Excelで数式内の文字色を一部だ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
複数のセルのいずれかに数字が...
-
excelの特定のセルの隣のセル指...
-
数式を残したまま、別のセルに...
-
ハイパーリンクの参照セルのズ...
おすすめ情報
補足要求です。
1.数字は必ず半角ですか。
全角の数字100があったとき、数字と判定するのでしょうか。
それとも文字と判定するのでしょうか。
回答⇒数字は全て半角です。
2.文字列の最後は、必ず数字になってますか。
"10選別¥100ABC" のようなケースもありますか。
もし、あるなら、その場合、どのような結果を望みますか。
回答⇒最後は必ず半角数字です。¥100 後ろには文字等は付きません
No1です。補足要求の追加です。
3.文字列の中に漢字がないパターン、もしくは漢字が2つ以上のパターンはありますか。
AAA000BBB123
1→先出000後出@300
のようなケースです。
もし、あった場合、どのような結果になることを望みますか。
回答⇒文字列の中に漢字がないパターンがあります
*123 時は 後ろの123をC列へ、AAA000BBB123場合は123をC列へ数字のみ
の時も123をC列へ貼り付けB列は空欄。