Translate

2020年4月25日土曜日

◆データの自動更新などに役立つ「arrayformula()関数」:データが増えても自動対応なので便利です

新型コロナウイルスの感染確認者数などのデータを扱う、ダッシュボード「データポータル」の元データを、グーグルのスプレッドシートで管理していますが、日々データが更新、追加される場合には「arrayformula()関数」の機能が便利です。

仕組みとしては、「データポータル用データシート」から「更新用のデータシート」にあるデータを参照しています。更新用のデータは、「R」でダウンロードから前処理まで済ませてCSVファイルとして保存したデータをスプレッドシートに読み込んでいます。

データポータルでは、元データの更新がうまくいかないと、エラーになるので、直接更新データを「データポータル用データのシート」に書き込まないようにしています。

そこで、「更新用のデータシート」に更新データを書き込んで、「データポータル用データシート」から参照しています。

データが日々追加される(データの行が増える)場合には、その都度、セル参照の数式を追加していく必要があります。

当初、更新のたびに、セル参照をコピペやオートフィル操作で追加していたのですが、さすがに面倒なので、「arrayformula()関数」を利用することにしました。

例えば、「データポータル用データシート」のA列から、「更新用のデータシート」の「Conf」のA列のデータを参照する場合は、「データポータル用データシート」のA2のセルに「=arrayformula(INDIRECT("Conf"&"!A2:A"))」という式を入れるだけです。A2以下にデータが読み込まれます。なお、A1のセルは「変数名(フィールド名)」で、固定のものです。

B列の場合は、「=arrayformula(INDIRECT("Conf"&"!B2:B"))」となります。この関数を使えば、各変数(列)の1行目だけにこのような関数式を入れるだけで済みます。

緯度、経度を「,」でつなげる場合は次のような式です。
E列とF列のデータを「,」でつなげる場合は、下記の式をG列(他の列でも同じ)の1行目入力します。「=arrayformula($E$2:$E&","&$F$2:$F)」

そして、「更新用のデータシート」のデータの行数が増えても、自動的に「データポータル用データシート」に反映されます。



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

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

0 件のコメント:

コメントを投稿