Translate

2020年2月20日木曜日

◆Googleのダッシュ・ボード「データポータル」で、最新の日付のデータを表示させる方法を模索中です:データ元としてグーグルのスプレッドシートを利用した場合


How to display data of most recent date in Data Studio 「Covid-19」の感染者数の推移のデータを基にしたDash Board(ダッシュボード)を試作しています。

グーグルのアカウントがあれば無料で利用できる、「データポータル(Data Studio)」というダッシュボードのサービスを利用しています。

グーグルのスプレッドシートのデータをデータポータルに読み込んで、パネルや表、グラフを作成しています。

日々追加される感染者数のデータを、パネルやグラフ、表などで、わかりやすく表示させることができるのですが、最新の感染者数(累計)をパネルに表示させようとすると、ちょっとした工夫が必要なようです。

計算フィールドで「MAX(DATE)」を作成して利用すれば簡単ですが、それ以外の方法を試してみました。

例えば、「フィルター」を利用して、表示するデータの日付を設定できますが、データを更新するたびに「フィルター」の日付を変更する必要があります。

あるいは、レポート上で「期間選択」できるようにして、ユーザーに日付選択をしてもらうことも可能ですが、不特定多数の人が利用するレポートとしては、デフォルトで最新データが表示されるようにしておきたいものです。

また、データポータルの日付絞り込み機能で、「今日」「昨日」などの設定もできますが、「昨日」のデータを表示させるようにしている場合は、午前0時を過ぎると「一昨日」のデータの表示ができなくなってしまいます。

「データの中の日付で、最新の日付に対応したデータ」を表示させるというのは、既成の機能では難しいようです。

そこで、少し手間がかかり、自動更新ではありませんが、下記のような方法で、最新データの表示を行っています。

まず、データはグーグルのスプレッドシート上で、下のような形になっています。


1.データの「日付」の列「Date」を参照して、「日付のシリアル値」の列を作成

「N(日付のセル)」という「N()」という関数などで日付からシリアル値を得ることができます。
 C列に日付のデータがあるとすると、「=N(C2)」といった入力になります。この関数を利用して、J列にシリアル値の列を作成します。

あるいは、単に、「Date」の列のセルを参照して、新しい列の表示設定を「数値」にする方法もあります。


2.「日付のシリアル値」の列を元にして、「日付のランキング」の列「DRank(名前は適当)」を作成

「RANK(当該セル,日付シリアル値の列全体,0)」といった関数を使います。
J列に日付のシリアル値があるとすると、K2のセルに=RANK(J2, J:J, 0)と入力し、K列全体にコピペします。


3.「日付のランキング」の列を利用して、フィルターでパネルや表などに表示させるデータを最新のものにします

「RANK()」関数では、3番目の引数を「0」とすると、最大値に対して「1」を返します。つまり、日付のシリアル値が最大になっているデータ(最新の日付のデータ)の「RANK()」関数の値は「1」になります。そこで、データ・ポータルのフィルターで「Drank」の列の値が「1に等しい」、という条件でデータを絞り込むように設定します。

データの追加・更新時に、J列、K列といった2つの列を整えないといけませんが、データ・ポータルのフィルターの設定は一度しておけば、データ更新時にフィルター設定を触らなくても最新データが表示されます。

以上のような処理によって、下の図で言うと、「表」を利用した「Date」の表示、三つの「パネル」の表示は、「データの中の最新の日付のデータ」になります。




----------------------------------------------------

---------------------------------------------------
-

◆【COVID-19】国別、地域別の感染者数の推移を簡単に確認できる「DashBoard(ダッシュボード)」の試作です:新型コロナウイルスダッシュボード(Novel Coronavirus DashBoard)

【COVID-19】今後、中国本土以外の地域への感染拡大が懸念されているため、国別、地域別の感染者数の推移を簡単に確認できるダッシュボードを試作してみました(Data source : JHU CSSE Covid19 Daily Reports)。

0 件のコメント:

コメントを投稿