[心得] 不用excel直接整理全館團G單

作者: ichico (細雪。)   2016-04-30 10:09:15
有開過全館團的主購,
應該都知道全館團的單非常難整理。
有的主購會利用excel來另外整理G單,
不過因為我是用Mac,要開excel非常麻煩(Mac版Office很難用),
所以用了這個方法直接在G單上面整理。
有點複雜,但是熟練之後很好用喔!
我用我上一團的G單來做範例(團員個資皆已全部改成無意義資料)
G單範例:(登入Google帳號後可以儲存為副本,就可以練習)
https://goo.gl/W4VnEV
1.表單設計
首先是品項的欄位,
G單在這一欄要先設計成「多行格式」,格式為
縮網址;尺寸;顏色;數量
*分號一定要是半型的分號!
像是這樣
http://i.imgur.com/2M7xEb4.png
團員格式填正確的話,內容應該會長得像這樣
http://i.imgur.com/6JcEmCX.png
於是結團後你會收到這樣的G單
http://i.imgur.com/3HCF3Xj.png
2.分割團員品項資料列:使用自訂函數
這時候關鍵來了,我們不要用excel整理的方式,
就是要在G單裡面自己寫函數了
2.1 設定自訂函數
請按下G單上的Tool->Script Editor
http://i.imgur.com/P6Tmm2q.png
然後會開啟這樣的一個視窗
http://i.imgur.com/X2tjHgp.png
接著,在code.gs的那欄裡面(就是有寫function myFunction())的地方
把內容清空,然後貼上以下的程式
function result(range,colnum) {
var output2 = [];
for(var i = 0, iLen = range.length; i < iLen; i++) {
var s = range[i][colnum].split("\n");
for(var j = 0, jLen = s.length; j < jLen; j++) {
var output1 = [];
for(var k = 0, kLen = range[0].length; k < kLen; k++) {
if(k == colnum) {
output1.push(s[j]);
} else {
output1.push(range[i][k]);
}
}
output2.push(output1);
}
}
return output2;
}
按下存檔,就可以把視窗關掉,回到G單
2.2使用自訂函數
到G單裡面新開一個工作表,在新的工作表裡面填入這樣的參數
=result('Form responses 1'!A1:H7,5)
'Form responses 1'!A1:H7:G單資料的範圍,
注意一定要選到格子的範圍,不能偷懶直接把A欄到H欄全選,程式會失效
5:“品項”欄在第幾欄的數字再減1
以我的範例G單來說,品項是在第6欄,所以填入5
然後G單就變這樣了,是不是很賞心悅目呀
http://i.imgur.com/ScMAwDh.png
3.分割團員品項資料欄
但是這樣還是沒有把資料分隔,
於是這邊就是要說明為什麼要請團員把網址尺寸顏色數量用分號分隔了
3.1 複製值
不過,因為剛剛用函數幫忙整理出來的資料,
其實都是函數幫你呈現的,
實際上欄位裡面都沒有值,只有第一欄有一個公式而已,
這樣我們沒辦法再繼續整理下去,所以要再新增一個工作表,
把剛剛函式幫我們分割好的資料範圍選取起來,
到新工作表上,按右鍵,選擇paste special->paste values only
http://i.imgur.com/rii2moZ.png
這會幫我們函式整理好的值都貼到新工作表
3.2複製欄位
G單裡面本來就有一個預設的功能「分割欄位」
在Data->Split text to columns
http://i.imgur.com/lk4q0YQ.png
選取好品項的那一欄,按下Split text to columns
G單會跳出一個小視窗問你要用什麼來分割
http://i.imgur.com/YJKoMtF.png
選擇「Semicolon」
如果團員填寫的格式正確,G單就會自動幫你把欄位都分割好了
http://i.imgur.com/gV5MZrm.png
前面說分號一定要是半型的原因,
就是因為G單只認識半型的符號,
可以參考我的範例G單,如果團員有自創格式(如用全型,少填資料)
那G單幫你分割的時候,資料就會跑掉,主購就要自己手動整理了...
(謎之音:其實刪單最快...)
希望各位主購都能有愉快的團購!也謝謝各位辛苦的主購!

Links booklink

Contact Us: admin [ a t ] ucptt.com