4 Replies Latest reply on Feb 23, 2018 7:04 PM by Shinichiro Murakami

    [解答 時間計算編 (頭の体操)]  時間のグラフ=エクセル複製

    Shinichiro Murakami

      もんだい

      [チャレンジ(頭の体操)]  時間のグラフ=エクセル複製

      Part1

      [解答 データ準備編(頭の体操)]  時間のグラフ=エクセル複製

       

      **************************************************************************************

      Part1 で、データのノイズ除去を行ったので、本題です。

       

      何が問題か?

      簡単です。

       

      エクセルのほうが賢い!!

       

      エクセルからおさらいです。

      データそのものには何の変更も与えずに、表示形式だけで、かように多彩な見せ方ができます。

       

      おおきな特徴として、

      1. 西暦1900年には1月0日が存在!!

      2. [] で囲むことで、時間の場合、24時間以上の表示が可能

      かたや、Tableau

      1.西暦スタートは1900/1/1 です。

      2.書式形式のみでは 24時間以上を表示できないです。

       

       

      つまり、Tableauは、

      「時刻表示」にしか対応しておらず、「時間表示」はNGな訳ですね。

       

      でもユーザーは時間数を表示したいときもありますし、

      Tabelau自身も、数値計算としてのみ、「時間計算」は装備しているわけです。

       

      それが、Datediff という関数ですが、注意が必要です。今回のひとつめのPointです。

      多くの皆さんが、Datediffを使用されていました。

       

      Point-1  時間計算  Datediff の特徴

       

      表を見たら分かるとおり、Datediffの計算のルールは、

      一つ下位の時間単位を切り捨てた上で計算するということです。

       

      24時間以上には対応できますが、0:59~1:01 を Datediffの"hour" で計算すると、「1」になるということです。

      0~1 で計算したら、ちゃんと合ってますね。

       

      じゃあ、(エクセル的に)正しい、差異の「時間表示」はどのようにして得るか。

      「これより下がない単位」で計算すればOKです。

      今回の場合、秒単位で整理をしたので、秒を基準に考えます。

      60秒が1分、3600秒が1時間 ですから、

       

      たとえば、

      を使って

       

      そして、表示上は、分、秒は60以上はいらないので、

       

      となり、

       

       

      無理やり表示を合わせるなら、

      たとえば、

      強制二桁表示のテクニックを覚えておけば便利です。

       

      str([Diff Sec H])+":"+right(str(100+[Diff SecMod M]),2)+":"+right(str(100+[Diff SecMod S]),2)

       

       

      *************************************************************************************************

       

      もっと簡単にできないの?

      ==>できます。私たちは、賢いので。

       

      たぶんこっちのほうが(ちょっとだけ)手間がかからない。

       

      DATEPARTを使います。少し楽なのと、何してるかが分かりやすい。

       

       

      注意は、先に書いたとおり、1月0日が存在しないため、24時間以上に換算する場合、

      (day-1 )x24 + hours にする必要がある点。

       

      いずれにしても、何らかの組み合わせで時間、分、秒を 持ってくればOKです。

       

       

      ながい!

      一旦切ろう。まだ半分もいってないわ。。。ってことで、ここまで、時間計算のみ。

       

      別のPOSTで、グラフ作成編。。。

       

       

      Enjoy Tableau !

       

      Shin