Googleスプレッドシートのセルに一意なIDを自動で付けたかった。
上から下へ順にカウントアップするものを。
- 上にあるセルを数をカウントし、カウント結果をIDにする
- カウント結果が3桁未満の場合は数字の前に0を1~2個つけて揃える
- プレフィックス文字列も欲しい
- 1行目には固定のラベルが入っているから2行目以降にID振りたい
ってことがやりたくて、図にするとこんなんで
ID | name|dat -------------------- data-001|hoge |100 data-002|foo |200 data-003|bar |150 . .. ...
ひねり出した数式がこちら。
="data-"&IF(LEN(COUNTA($A$1:A10)) < 3, REPT(0, 3 - LEN(COUNTA($A$1:A10)) ),"")&COUNTA($A$1:A10)
見やすくしてみる
="data-" & IF( LEN(COUNTA($A$1:A10)) < 3, REPT(0, 3 - LEN(COUNTA($A$1:A10)) ), "" ) & COUNTA($A$1:A10)
IFの条件としてCOUNTAで上にある中身入りのセル数をカウントして、
3桁より少なかったらREPTで0を (3 - カウント文字列数)だけ並べる
3桁以上になったらなにもしない。
&は文字列連結の記号(JavaScriptだと+なアレ)
Googleスプレッドシートの場合、エクセルのようなVBマクロはないが
JavaScriptのApp-Scriptというのが用意されている。のでそれを使えば数式は要らなくなる…
リファレンス見てたら眠くなったので気が向いたら書きます。