LoginSignup
2
0

More than 1 year has passed since last update.

【Alteryx】Excel読み込み時に指数表記になる値を実数にする

Last updated at Posted at 2022-10-21

はじめに

桁数の多いExcel指数表記値を実数にする方法をご紹介します。

結果

piyo列の6行目が指数値から実数値に変わっています。
image.png
対応するexcel内の値は赤文字セルです。
同じ値になっています。
image.png

処理内容

フロー図は下記です。
赤枠部分について、詳細に説明していきます。
image.png

処理内容詳細

inputは下記Excel表です。
・A1セルからデータが始まっていない
・値はExcel表示形式で%になっている実数値
というデータになっています。
image.png
上記データをinputツールで読み不要列・行を削除してデータを見ると、
piyo列6行目、9行目が指数表記になっていました。
image.png

input形式をcsv等へ変更できれば良いのですが、諸事情で形式が変更できないため、
フロー図赤枠内で、if文とPadRight関数、REGEX_Replace関数を用いて実数にしました。

 if Contains([piyo],"E") then
  ToNumber(REGEX_Replace([piyo],"[E][-](\d+)","")) / 
  ToNumber(PadRight([分母],ToNumber(REGEX_Replace([piyo], "(.+[E][-])(\d+)","$2"))+1,"0"))
 else ToNumber([piyo])
 endif

処理内容としては、
 ① 指数表記か否かをContain関数で判定
 ② REGEX_Replace関数で指数部分を消した値を作る
 ③ 小数点を動かす桁数をREGEX_Replace関数で取得
 ④ PadRight関数と③で小数点を動かす桁数分の分母を作る
 ④ ②÷④を計算、数値にする となります。

参考URLによると、
指数はE以降の符号と数値により、小数点の位置を動かすと元の実数値が作れるとのことでしたので
無理やり小数点の位置を動かしました。
今回はE以降が負の値のみだったため、小数点を左へ動かす除算処理のみ組み込んでおります。
正の値の場合は乗算ください。

終わりに

パワープレーですが、inputを変更できない場合は参考になれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0