『漢字と大文字数字の分割』(てててん)
下記の表(Aを、(Bの様にする数式を教えて下さい。
(A (B
A列 B列 C列
東京1 東京 1
神横中7 神横中 7
静掛11 静掛 11
岡山北13 岡山北 13
<条件>
※A列の組み合わせは、漢字は1〜3ケタ、数字は1〜200の間
※B列に都市名、C列に数字(大文字)を表示
※C列、大文字数字が無理なら、数値(半角)でもOK
< 使用 Excel:Excel2013、使用 OS:Windows11 >
1行目が見出しでデータが2行目からだとして。
B2セルに =LEFT(A2,AGGREGATE(15,6,FIND(JIS(ROW($1:$10)-1),A2),1)-1)
C2セルに =SUBSTITUTE(A2,B2,"")
と入力して下へフィルコピーではどうだろうか? (ねむねむ) 2026/09/10(木) 15:51:39
アグリゲート関数ですか?
処理目的がコード(15,6 になっているのが
便利そうなので、これから詳細を調べてみます。
(てててん)
(てててん) 2026/09/10(木) 16:07:33
Option Explicit
Sub Sep()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim txt As String
Dim pos As Long
Set ws = ActiveSheet
'A列の最終行
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
txt = Trim(ws.Cells(i, "A").Value)
If txt <> "" Then
'末尾から数字でない文字を探す
pos = Len(txt)
Do While pos > 0
If Mid(txt, pos, 1) Like "[0-9]" Then
pos = pos - 1
Else
Exit Do
End If
Loop
'都市名
ws.Cells(i, "B").Value = Left(txt, pos)
'数字
ws.Cells(i, "C").Value = Mid(txt, pos + 1)
End If
Next i
'C列を数値として扱う
ws.Range("C1:C" & lastRow).NumberFormat = "0"
End Sub
(詠み人知らず) 2026/09/10(木) 16:15:30
あ、もし数字に01や001のように頭に0がくる事がなければ
B2セルの式は =LEFT(A2,AGGREGATE(15,6,FIND(JIS(ROW($1:$9)),A2),1)-1) でも。 (ねむねむ) 2026/09/10(木) 16:50:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.