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というのが用意されている。のでそれを使えば数式は要らなくなる…
リファレンス見てたら眠くなったので気が向いたら書きます。