Power Automate Desktopで日付や数字のフォーマットが変になる原因と対策:データ整形の落とし穴と解決法

  • URLをコピーしました!

1. 日付の表示がおかしくなる原因と対処法

原因:ロケールの違いによる自動フォーマットのズレ

PADの内部では、「日付型」はシステムロケール(言語設定)に依存して表示されます。日本語環境では「yyyy/MM/dd」や「yyyy年M月d日」となることが多く、英語環境では「MM/dd/yyyy」になります。これにより、出力時の形式が意図しないものになることがあります。

対処方法:ToText関数で明示的に整形

%ToText(変数, "yyyy-MM-dd")%

このように、日付を文字列に変換するときは、表示形式を明示的に指定することで、環境に依存しない安定した出力が可能です。


2. 数字の表示が意図しない形になる原因と対処法

原因:数値型のまま出力すると、カンマや小数点の位置がロケール依存になる

たとえば「1234567」をExcelに書き出すと、「1,234,567」と表示されたり、「1234567.00」と余計な小数が付いたりするケースがあります。

対処方法:ToTextで表示形式を制御

%ToText(1234567, "#")%
%ToText(1234567.89, "#.00")%

「#,##0」などの書式を使うと、より詳細に表示をコントロールできます。数値として演算する必要がない場合は、最初から文字列として扱うのが確実です。


3. ExcelやCSVへの出力時にフォーマットが崩れる理由と対処

よくある症状と原因

  • 「2025/6/1」が「6/1/2025」と出力される
  • 「000123」が「123」に自動変換されてしまう
  • 小数点以下の桁数が勝手に丸められる

これらは、ExcelやCSVファイルが値を「自動で変換」する仕様によって起きる現象です。

対処方法:事前に文字列に変換してから出力する

  1. 「ToText」アクションで日付・数値を明示的に文字列に変換
  2. 文字列としてExcelのセルやCSVに書き込むことで、自動変換を回避

例:CSVに郵便番号(例:001-0001)を出力したい場合

ToText("001-0001") → "001-0001"としてCSVに出力

4. フォーマットの統一を保つコツ

日時データのフォーマット例(ToText使用):

変換前の型書式コード出力例
DateTime型“yyyy-MM-dd”2025-06-26
DateTime型“yyyy年M月d日”2025年6月26日
DateTime型“yyyy/MM/dd HH:mm:ss”2025/06/26 14:15:00

数値データのフォーマット例(ToText使用):

元の値書式コード出力例
1234.56“#,##0.00”1,234.56
78“00000”00078

ヒント:

  • 書式コードはExcelやVBAの形式と互換性があります
  • ToText変換は、出力直前に行うのが安全です(中間処理では数値型で保持)

目次

よくある質問(FAQ)

Q1. ToTextで変換しても、Excelでまたフォーマットが変わってしまう
→ Excelに書き込むときに「セルのデータ型」が自動的に変わってしまうことがあります。「書式設定済み書き込み」アクションを使うことで、文字列として出力できます。

Q2. 小数点以下の桁数が丸められてしまいます
→ ToText関数で”#.00″や”#.0000″のように明示的に桁数を指定してください。指定しない場合、PADやExcelの自動書式に依存します。

Q3. CSVに出力したら、先頭のゼロが消えていました
→ 数値として出力されるとゼロが自動で削除されます。ToTextで文字列に変換し、ダブルクォート(”)で囲んで出力すると、CSV側で文字列として認識されます。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次