Excelで文字列から数字だけを抽出したい時があります。
例えば、名簿の名寄せをする場面などで、電話番号から余分な括弧やハイフンを除きたいなど。
このようなケースも、最近のExcelに標準で含まれているPower Queryは便利です。
以前は、以下の記事にあるようにユーザー定義関数を作成したりしていました。
これが、Power Queryだと標準の関数を使用して
Text.Select([電話番号], {"0".."9"})
で数字だけを抽出できます。
手順
基本は、「例から列を追加」を活用することで作成可能です。
具体的には、「例から列を追加」で必要なアウトプットイメージを入力すると、
Text.Select([電話番号], {"0".."9"})
といった特定の列から数字だけを抽出する数式が自動作成されます。
アウトプット
ただし、「例から列を追加」の場合、全角数字を抽出する数式は作成されるものの置換を複数回組み合わせたもので、あまりシンプルなものを作成してくれませんでした。
なので、「例からの列」で自動作成された数式を直接編集するか、カスタム列の追加で
Text.Select([電話番号], {"0".."9","0".."9"})
と、全角の数値範囲も設定すれば、次のように半角と全角の数値を抽出できます。
以上、Power Queryを利用して、Excelで文字列から数字だけを抽出する方法でした。列追加の基本については、以下をご覧ください。