列や行を検索してセル内の数値のみを抽出
セルから正規表現で数字だけを取得するには REGEXEXTRACT関数を使用します
・関数 | REGEXEXTRACT(リジェックス エクストラクト) |
正規表現の抽出
・書式 | =REGEXEXTRACT(テキスト,正規表現) |
・内容 | 列や行を検索してセル内の数値のみを抽出 |
REGEX EXTRACT = 正規表現の抽出。
特定の列または行を一括検索してその列や行で見つかったセルから正規表現で数値のみを抽出します
列を検索してセル内の数値のみを抽出
セルD4、D5)検索する文字列
セルE4)D4の文字列をD列から検索
=REGEXEXTRACT(INDIRECT("B"&MATCH("*"&D4&"*",B:B,0)), "[0-9]+")
セルE5)D5の文字列をD列から検索
=REGEXEXTRACT(INDIRECT("B"&MATCH("*"&D5&"*",B:B,0)), "[0-9]+")
数式の詳細
=MATCH("*"&D4&"*",B:B,0)
B列「B:B」からD4の文字を含む「"*"&D4&"*"」文字を検索
=9
=INDIRECT("B9")
INDIRECT関数でBと9の文字列をセルB9として認識
=8 茨城県
=REGEXEXTRACT("8 茨城県", "[0-9]+")
REGEXEXTRACT関数で数値のみを抽出
=8
※REGEXEXTRACTは最初の数値だけを抽出するので「1-1」や「5-20」など記号をはさむ数値は最初の数字だけを取得します
行を検索してセル内の数値のみを抽出
セルB5、B6)検索する文字列
セルC5)B5の文字列を2行目から検索
=REGEXEXTRACT(INDIRECT(ADDRESS(2,MATCH("*"&B5&"*",2:2,0),4)), "[0-9]+")
セルC6)B6の文字列を2行目から検索
=REGEXEXTRACT(INDIRECT(ADDRESS(2,MATCH("*"&B6&"*",2:2,0),4)), "[0-9]+")
数式の詳細
=MATCH("*"&B5&"*",2:2,0)
2行目「2:2」からB5の文字を含む「"*"&B5&"*"」文字を検索
=6
=ADDRESS(2,6,4)
ADDRESS関数で2行目6列目をセル番号表示
=F2
INDIRECT関数でBと9の文字列をセルB9として認識
=INDIRECT("F2")
=5 秋田県
=REGEXEXTRACT("5 秋田県", "[0-9]+")
REGEXEXTRACT関数で数値のみを抽出
=5
MATCH関数とワイルドカード
MATCH関数はセルを指定すると完全一致のセルを探しますがワイルドカードを使うことで「含む」セルを探しています
=MATCH("*"&D5&"*",B:B,0)
=MATCH("*神奈川*",B:B,0)
神奈川で終わる → "*神奈川"
神奈川で始まる → "神奈川*"
神奈川を含む → "*神奈川*"
神奈川と完全一致 → "神奈川"
関連するページ
行の番号、列のアルファベットを取得
範囲内に文字があればその文字や行を返す
検索した文字があればその行を返す