0

PowerQuery を使用して、特定の日時期間列を作成しています。次のxlsxテーブルがあります:

表1

DateTime1: =A2+B2

DateTime2=D2+E2

DateDiff=F2-C2

ここで、PowerQuery を使用して列 G の「DateDiff」を変換したいと考えています。範囲 A から G を選択し、Data=>をクリックします。From Table/Rage

データの場所を尋ねられ、事前に入力されたエントリを使用して [OK] をクリックします。PowerQuery が開きます。

PQ1

DateDiff 列を選択し、右クリックしてこの列を複製します。この列のコピーが表示されるので、それを選択します。データ型 (現在 10 進数が表示されている場所) で、「期間」を選択します。値が変換され、次のことがわかります。

ポケ

これは予想通りです。そのため、最初に 32 日、1 日、33 日などの日が続き、その後に時、分、秒が続きます (秒単位の丸め/計算の違いがありますが、これは無視できます)。

閉じるをクリックしてロードします。

テーブルは次のように追加されます。

表2

値が変更されました。これで、列 H には 32、33、および 1 日が表示されなくなりました。値は 1.07...、2.08... と誤って表示されます。

なぜこれが起こるのか理解できませんか?ここで正しい結果を得るにはどうすればよいですか?

フォーマットを標準に変更すると、正しい数値が再び得られます。したがって、数値は変更されませんでした。T.hh:mm:ss のようなカスタム形式を適用しようとすると、同じ間違った数字が表示されます。同じ問題につながります。

4

1 に答える 1

1

フォーマットの問題のようです。ほとんどの場合、次のように書式設定された列 H があります。d.hh:mm:ss

残念ながら、Excel の日付d( day ) 形式 (または、お使いのロケールの day のコード) では値 > は表示されません31。その時点で、ラップバックします1

必要な表示を取得する 1 つの方法は、それを文字列に変換することです。

=INT(A1) & "." & TEXT(MOD(A1,1),"hh:mm:ss")

Power Query を使用して文字列に変換することもできます

  • 次の式を使用してカスタム列を追加します。

     Text.From([DateDiff])
    
  • 次に、 を区切り記号として使用してその列を分割し、dot一番右の区切り記号のみを選択します。

  • 不要な列を削除します。

于 2020-11-24T18:59:08.933 に答える