Proficient programming language:
- Google sheet
善用工具的心法很簡單:
我相信有這個功能
不過還是需要拆解一下:需求 -> 功能分解 -> 合併
需求
以這次功能為例,我想要針對所有同學進行分組,但是不需要隨機,只要按照順序分 A, B, C 就好。
功能分解、逐漸合併
三個一個循環很容易想到取餘數 (modulo)1。接著到 Google sheet function list 2 搜尋看看有沒有:
我們大概可以知道 MOD(x, y)
得到的是 x/y
的餘數,因此 x
是對應到列數,而 y
是分組的數量。
再來比較抽象。我們有了餘數功能,要怎麼對應到每一列 (row)? 所以就找到 ROW()
可以取得目前的列數,這樣我們就得到 x
了。
y
用 3
代入
如果分組編號就是 0,1,2 的話就可以在這邊停止,不過如果要重新取代號 (A,B,C) 或是分配不同內容給各個組別時就需要繼續下去。
再來的思考方向,就是用剛剛的 0,1,2 當作索引值 (index),查看看如何用索引值取得其他格子的內容。我們選擇使用 INDEX()
,其使用方法就是先選擇一個區塊 reference
接著用 row
, column
去選擇。
套用進去會長這樣,INDEX(\$E\$1:\$E\$3, MOD(ROW(), 3))
(\$
是鎖定用,不會因為下拉導致列或欄改變,因為 E1:E3
是固定放我們的代號)。
會發生上面的錯誤是因為 INDEX
使用的列起始是從 1
開始,所以我們來加 1
。
如果想要 A 開始的會只要將右邊 E 欄換個順序即可。