[[20260910152239]] 『漢字と大文字数字の分割』(てててん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『漢字と大文字数字の分割』(てててん)

下記の表(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.