📝

Slack WorkflowでスプレッドシートのEdit Rowがうまく動かないときに確認するとよいところ

2022/05/13に公開

結論

  • スプレッドシートの言語設定を確認する(US推奨、自動で埋め込んでくれる時間のフォーマットが正しく解釈されるので)
  • 時刻をSearch対象としている場合は、時刻のカラムの書式を「書式なしテキスト」にする

なんで?

前提として時刻をもとに行を特定して修正を行う場合の話。

スプレッドシートの言語設定がUSになっている場合、Slack→スプレッドシートに埋め込むときにはUSの時刻形式(ex. Fri, 13 May 2022 00:43:16)で渡され書き込み後はスプレッドシート側で時刻として解釈しフォーマットを勝手に変えてしまうっぽい。
その後Editする際に行を検索しようとするものの、フォーマットが変換されているため検索で引っかからず処理が進まなくなってしまう。
そのため、時刻をSearch対象として行を修正したい場合は、スプレッドシート上でキーとなる時刻のカラムの「書式なしテキスト」として明示してやることで、自動的にフォーマット変換されることを防いでやれば正しく行を認識して更新できるようになる。ちなみにこの場合でも時刻にまつわる関数はちゃんと動く。

ちなみに言語設定がUS以外の場合はその形式を解釈できずただのテキストとして保持してくれるので上記対応は不要だが、このままだとただのテキストなため時刻関連の計算がシート状で行えず不便だし変換するの結構めんどくさいのでさっさと言語設定変えちゃうほうが楽だと思います。

おまけ

Workflowで取得した時刻を同じシート状で関数つかってなんかしたい場合、ARRAYFORMULA関数で埋め込まないと行更新のタイミングで関数も容赦なく消えるので注意です

Discussion