下拉複選框得分設定
簡介
案例簡介
下拉複選框目前的邏輯為:勾選多個選項之後,選項的儲存排序是按照勾選順序來排列的,而不是按照選項本身的順序來排列的。即:下拉複選框依次勾選了「B、C、A」之後,儲存起來的排序就是「B、C、A」,而不是「A、B、C」。
使用場景
需要使用下拉複選框欄位製作題目並計算得分的場景。
預期效果
操作步驟
表單配置
表單內新增一個下拉複選框用來選擇答案,一個單行文字記錄該多選題的正確答案,一個數字欄位計算得分(這裡用正確得十分,否則得零分舉例)。
設定正確答案欄位
設定正確答案為輔助欄位用於在得分公式中與選擇的答案進行對比,在「表單設計 > 正確答案 > 欄位屬性 > 預設值」處填寫問題的正確答案。
附註:
正確答案間需要有英文逗號間隔,不要求答案順序。
如欄位設定為不可見,則一定要在表單屬性中修改「不可見欄位賦值」屬性為「始終重新計算」。
已知答案正確有兩個條件:
- 選擇的答案個數和正確答案個數相同;
- 選擇的答案選項是正確答案的子集。
判斷答案個數
答案正確首先應該滿足「條件一:選擇的答案個數和正確答案的個數相同」,因此可以透過 COUNT 函數來計算出兩個答案的個數,即滿足公式:
COUNT(請選擇答案)==COUNT(SPLIT(正確答案,',')
表示選擇的答案個數和正確答案的個數相同;
其中 SPLIT 函數用於將正確答案的文字欄位用英文逗號分割成陣列。
判斷答案選項
在滿足兩個答案個數相同的情況下,我們還需要判斷答案的選項是否一致。
假設正確答案是「A、B、C」,選擇的答案是「A、B、E」,則答案的選項是不一致的,因此我們考慮將正確答案和選擇答案組合在一起去重,去重之後組合為「A、B、C、E」,選項個數為四個,和正確答案個數不符,則判斷為錯誤;
如選擇的答案是「A、B、C」,此時將正確答案和選擇答案組合在一起去重之後,組合為「A、B、C」,選項個數是三個,等於正確答案個數,則判斷為正確。
因此想要答案正確還應該滿足「條件二:選擇的答案和正確答案組合去重之後,答案個數應該等於正確答案個數」,即需要滿足公式:
COUNT(UNION(SPLIT(正確答案+','+請選擇答案,',')))==COUNT(SPLIT(正確答案,','))
其中 UNION 函數可以將文字內的重複資料自動剔除。
設定得分欄位
綜上,在設定得分欄位的公式時,用 IF函數 將兩個條件新增進去即可,得分欄位設定公式為:
IF(AND(COUNT(請選擇答案)==COUNT(SPLIT(正確答案,',')),COUNT(UNION(SPLIT(請選擇答案+','+正確答案,',')))==COUNT(SPLIT(正確答案,','))),10,0)
表示當同時滿足條件一和條件二時,得分為 10,否則不得分。
附註:
操作步驟中的公式複製後不可直接使用,欄位調用處需進行手動替換。