在「雄:HTML5 FUN : 利用 Google Form 登錄遊戲成績」中說到,目前 HTML5 FUN 的部份遊戲可以利用 Google 表單將遊戲的成績和作答歷程寫入 Google 試算表中。如果是照範例建立的表單及試算表,在試算表的 H 欄中,應該是:
- 作答歷程(題目,使用秒數,錯的次數,回答內容)
這些記錄是一人一格,做過的題目全部記錄在一個儲存格中,如果解析出錯的哪些題目呢?
先來看看 H 欄中的內容特徵是什麼:
- 全部是一個字串。
- 每一題最後會有換行字元。
- 每一題都有四項記錄,記錄跟記錄間有半形逗號:
- 題目
- 使用秒數
- 錯的次數
- 回答內容
如果答對的,「錯的次數」應該就會是 0,例如:
[Z],3,1,c
[V],9,1,T
[K],3,0,K
[P],8,0,P
這個人的第一題作答歷程是「[Z],3,1,c」,分解一下:
- 題目: [Z]
- 使用秒數: 3
- 錯的次數: 1
- 回答內容: c
所以如果將答對的題目(「錯的次數」是「0」)的通通去掉,剩下的就是錯的,進一步再解析出「題目」的內容,這樣就知道錯了哪些了。
底下的試算表是已經在 J 欄中加入解析公式的,可以參考:
- https://docs.google.com/spreadsheets/d/16iJmgcRNlyyoKO166P_t_XHFhchsDXIxHE_y_WOZ6Z0/edit?usp=sharing
以 H2 的資料來說,用的公式是 (請參考J欄):
=REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(H2, "([^,]+,\d+,0,[^\n]+\n*)", "♥"), "(^[\n♥]+)", ""), "([^,]+),\d+,\d+,[^\n♥]*[\n♥]+", "$1")
主要都是利用 Google 試算表的「REGEXREPLACE」:
- 將對的題目那行置換為「♥」。使用的規則:
- ([^,]+,\d+,0,[^\n]+\n*)
- 將開頭的換行及「♥」全部去掉(空字串)。使用的規則:
- (^[\n♥]+)
- 將錯的記錄行解析,並置換為題目內容就好,其它的資訊不保留。使用的規則:
- ([^,]+),\d+,\d+,[^\n♥]*[\n♥]+
這個例子是因為題庫的題目是考字母,然後都用中括號括住了,所以將所有錯的題目合起來,就變成:
- [Z][V][O][R][S][M][F]
一題一題很清楚,如果是單字的話,可能要再加個逗號、空格,或是其它符號來分開,如果想在每一個錯的題目後面加一個逗號和一個空格,公式可以改為 (請參考K欄):
=REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(H2, "([^,]+,\d+,0,[^\n]+\n*)", "♥"), "(^[\n♥]+)", ""), "([^,]+),\d+,\d+,[^\n♥]*[\n♥]+", "$1, ")
在最後面的「"$1"」中加料即可。(註:$1 就是找到的題目內容)。
關於記錄的解析公式如果有什麼問題,或是需求,歡迎在底下留言區留言討論哦!
沒有留言:
張貼留言