Lookerでスプレッドシートの数式が文字列になっちゃう!? 1日待てば治る? 謎の現象とその解決策
Lookerでスプレッドシートのデータを取り込んだ際、数式が文字列になってしまうという現象と、その解決策についてお話します。
原因
Lookerは、スプレッドシートのデータを取り込む際、最初に1行分のデータのみを読み込み、そのデータ型を基に他の行のデータ型を推測します。
もし、1行目のセルに数式が含まれている場合、Lookerはその式全体を文字列として認識してしまうのです。
行ったこと
①接続を編集からテキストから数値に変更してもテキスト扱いされる
Lookerの接続設定で、データタイプをテキストから数値に変更しても、データがテキストとして認識され続ける問題が解決しませんでした。
②スプレッドシート側の設定を数値にするもテキスト扱いされる
スプレッドシート側でセルの形式を数値に設定しましたが、依然としてLookerではテキストとして認識されました。
③どのようなデータが格納されているかを確認したらNULLにだった
データがNULLとして表示されるため、どのようなデータが格納されているか確認が難しくなりました。
④数値の少数点が原因かと思いround関数で整数にしてもテキスト扱いされる
数値の少数点が原因かと考え、ROUND関数を使用して整数にしましたが、問題は解決しませんでした。
⑤Looker側の計算フィールドでCASTをしてもデータがNULLなのでデータは表示されない
Lookerの計算フィールドでCASTを試みましたが、データがNULLのため、表示されませんでした。
⑥データ更新、ページの更新をしても変わらない
データの更新やページのリフレッシュを行っても、状況は改善されませんでした。
回避策
1行目のセルに数式を含めないようにするか、数式を別のセルに移動することで回避できますが、arrayformulaなどが利用できないため、やはり解決をしたい。。。
結論
色々試した結果、驚いたことに「翌日になると数値として扱われていました(笑)」。どうやら、Lookerの内部処理のタイミングの問題で、データの認識に時間がかかることがあるようです。
これで苦労した人結構いますよねー、ってことで時間が解決してくれるので、しばらくお待ちください。