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または...
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで縦に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の特定のセルの隣のセル指...
おすすめ情報
補足要求です。
1.数字は必ず半角ですか。
全角の数字100があったとき、数字と判定するのでしょうか。
それとも文字と判定するのでしょうか。
回答⇒数字は全て半角です。
2.文字列の最後は、必ず数字になってますか。
"10選別¥100ABC" のようなケースもありますか。
もし、あるなら、その場合、どのような結果を望みますか。
回答⇒最後は必ず半角数字です。¥100 後ろには文字等は付きません
No1です。補足要求の追加です。
3.文字列の中に漢字がないパターン、もしくは漢字が2つ以上のパターンはありますか。
AAA000BBB123
1→先出000後出@300
のようなケースです。
もし、あった場合、どのような結果になることを望みますか。
回答⇒文字列の中に漢字がないパターンがあります
*123 時は 後ろの123をC列へ、AAA000BBB123場合は123をC列へ数字のみ
の時も123をC列へ貼り付けB列は空欄。