365・LibreOfficeなどに関するメモ2020-01-07(Excel)文字列から数字だけを抽出するExcelExcelで、文字列に含まれる数字だけを取り出す方法についてです。対象とするのは半角数字とします。数字は文字列として抽出し、0で始まる数字もそのまま抽出するものとします。SEQUENCE関数やMID関数等を使って文字列から数字を抽出することができます。手順サンプルデータと実行結果B3:B6セルには全く同じ文字列が記録されています。これに対し、C3:C6セルには目的に応じた式が記録されています。これらの式を実行した結果は次のとおりです。それぞれのセルに記録されている式の意味と内容については下記の通りとなっています。すべての数字を取り出してつなげるC3セルには次のように入力しています。=CONCAT(IFERROR(VALUE(MID(B3,SEQUENCE(LEN(B3)),1)),""))SEQUENCE関数とMID関数で1文字ずつ分割してそれぞれ数字でなければ空文字列に変換し、最後にCONCAT関数で結合しています。VALUE関数の代わりに「*1」とすれば若干短くできます。一連の数字ごとに抽出して記号で区切るC4セルの式は次の通りです。","_")基本的に上記の式と同様ですが、数字以外を空文字列ではなくスペースに置き換えたうえで結合し、TRIM関数でスペースをそれぞれ1つに縮め、最後にスペースを記号(_)に置き換えています。実用的にはさらにn番目のものを取り出したいところですが相当長くなりますので省略します。数字のうち最初の1文字だけ抽出するC5セルの式は次の通りです。=LEFT(CONCAT(IFERROR(VALUE(MID(B5,SEQUENCE(LEN(B5)),1)),"")),1)一旦すべての数字を抽出してからLEFT関数で最初の1文字だけにしています。数字のうち最後の1文字だけ抽出するC6セルの式は次の通りです。関数を持つGoogleスプレッドシートやCalcと比べて式が複雑かつ長大になることとカンマ、小数点などの扱いが困難なのが難点です。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。