Googleスプレッドシートで日付セルに異なる書式で日付を入力すると、書式が解除されてしまう。

続きになります。
日付を記録する列には日時が記録されていますが、「mm/dd」の表示形式が指定されているために「月/日」の形式で表示されています。

ところが、このセルに手入力でもAPIで書き込んでも同じなのですが、異なる形式の日時データを書き込むとなぜか「mm/dd」の書式が解除されてしまい、書き込んだ日時の書式がそのまま表示形式になってしまうのです。これはおかしい。

Excelでは日付の表示形式が設定されている限り、有効などんな日時を入れても表示はそれに従うはずです。そうでなければ表示形式を指定する意味が半分以上失われてしまうのではないでしょうか?

文句を言ったところで始まりませんから何か対応策を考えなければなりません。APIから書き込む際にはその値がRAWかユーザーが入力したのと見なすかを選択することができます。RAWというのは内部的に持っているデータの形といって良いと思います。ですがこの2つの結果に違いはありませんでした。書き込んだ後でもう一度表示形式を設定し直すと戻るんですけどね。それをAPI経由ですることはまた処理が複雑になります。

結局行き当たった方法。 「2019/05/27 20:42:05」というデータを書き込みたい場合には次のように書き込みます。

=DATEVALUE(“2019/05/27 20:42:05”)

なんだか冗談みたいですよね。こうすると表示形式を残したまま日時を書き込むことができます。もちろんそのセルを選択すると上の関数が入っていることがわかります。でも書式は残っているので表示が乱れることはありません。APIでデータを取得する際も表示形式のまま取得できます。

表示されていない詳細な時刻も一応記録されているので良しとしましょう。他に良い方法を見つけるまではこれでしのぎます。

Be the first to comment

Leave a Reply

Your email address will not be published.


*