@kyanny's blog

My life. Opinions are my own.

Google Spreadsheet の「値のみ貼り付け」の挙動の差

TL;DR Cmd + Shift + V を使え

Google Spreadsheet には二種類の「値のみ貼り付け」があり、挙動が違うようだ。

  • 元データは 2019/04/10 9:44:00 という(たぶん) Date 型の値
  • 元データが入っているセルの表示形式は「時間(hh:mm:ss)」
    • なので 9:44:00 という値が入っているように見える
    • 同様の表示形式が設定されていないセルにペーストすると 2019/04/10 9:44:00 という値が入る
    • テキストエディタなどにペーストすると 9:44:00 という値が入る
    • このデータを同様の表示形式が設定されているセルに「値のみ貼り付け」でペーストしたときの挙動に差がある
      • Cmd + V してからコンテキストメニューで「値のみ貼り付け」を選んだ場合、 2019/04/10 9:44:00 という値が入る(日付を含む)
      • Cmd + Shift + V の「値のみ貼り付け」をした場合、 9:44:00 という値が入る(時刻のみ)
      • どっちも見た目はセルの表示形式通りになる(時 + 分 という表示形式ならば 9:44 と見える)
      • どっちも ISDATE は TRUE を返す
        • セル内の値が日付を持つかどうかにかかわらず、内部的には Date 型のデータになっている?

これで若干ハマったが、自分の用途では常に Cmd + Shift + V を使うことで問題を回避できた。