shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】Excelで文字列から数字だけ抽出する方法

Excelで文字列から数字だけを抽出したい時があります。

例えば、名簿の名寄せをする場面などで、電話番号から余分な括弧やハイフンを除きたいなど。

このようなケースも、最近のExcelに標準で含まれているPower Queryは便利です。

 

以前は、以下の記事にあるようにユーザー定義関数を作成したりしていました。

shikumika.org

 

これが、Power Queryだと標準の関数を使用して

Text.Select([電話番号], {"0".."9"})

で数字だけを抽出できます。

 

手順

基本は、「例から列を追加」を活用することで作成可能です。

shikumika.org

 

具体的には、「例から列を追加」で必要なアウトプットイメージを入力すると、

Text.Select([電話番号], {"0".."9"})

といった特定の列から数字だけを抽出する数式が自動作成されます。

 

アウトプット

半角数値を抽出

ただし、「例から列を追加」の場合、全角数字を抽出する数式は作成されるものの置換を複数回組み合わせたもので、あまりシンプルなものを作成してくれませんでした。

 

なので、「例からの列」で自動作成された数式を直接編集するか、カスタム列の追加で

Text.Select([電話番号], {"0".."9","0".."9"})

と、全角の数値範囲も設定すれば、次のように半角と全角の数値を抽出できます。

全角数字にも対応

以上、Power Queryを利用して、Excelで文字列から数字だけを抽出する方法でした。列追加の基本については、以下をご覧ください。

 

shikumika.org