x

主要章節

  1. LimeSurvey Cloud 與 LimeSurvey CE 的差異
  2. 快速入門指南 - LimeSurvey 3.0+
  3. 安裝 - LimeSurvey CE
  4. 如何設計一份好的問卷(指南)
  5. 入門指南
  6. 管理 LimeSurvey
  7. 問卷 - 簡介
  8. 問卷設定
  9. 問卷選單
  10. 問卷結構
  11. 問題簡介
  12. 題組 - 簡介
  13. 問卷管理
  14. 問卷工具列選項
  15. 多語言問卷
  16. ExpressionScript 引擎 - 快速入門指南
  17. 未分類及進階功能
  18. 常見問題
  19. 疑難排解
  20. 應變方案
  21. 授權條款
  22. 版本更改紀錄檔
  23. 外掛程式
 Actions

設定條件

From LimeSurvey Manual

本頁面可能為機器翻譯,可能包含錯誤。 檢視英文原文 · 改善此翻譯
This page is a translated version of the page Setting conditions and the translation is 100% complete.


LimeSurvey 條件概述

LimeSurvey 具有非常強大的邏輯分支功能。您可以點擊位於每個問題工具列上的設定條件按鈕 - - 來使用此功能。

在本章中,我們將說明:

  • 您可以在 LimeSurvey 中找到哪些條件
  • 您可以與無法使用條件做哪些事情
  • 設定簡單或較複雜的條件需要學習哪些步驟

如需逐步的影片說明,請參閱此教學,或下載條件範例問卷:LimeSurvey_Survey_Setting_Conditions.zip。


 Hint: 條件功能就像是可套用於問題的運算式與方程式的圖形化介面,讓使用者無需接觸運算式與相關性方程式,即可輕鬆提高問卷的複雜度。不過,若要擴大 LimeSurvey 可用的選項範圍,仍必須學習或了解ExpressionScript。


顯示/隱藏分支與跳躍分支

您可以使用 LimeSurvey 設計邏輯分支,也就是說,您可以決定只有在符合某些條件時才顯示特定問題,例如「如果問題 Y 的答案為 Z,則顯示問題 X」。

我們採用的方式是實作顯示/隱藏分支邏輯:

  • 您可以為問卷中的每個問題定義一個條件或一組條件 - 如果符合條件,則會顯示該問題:



簡單來說:
  • 未定義條件的問題一律會顯示;
  • 已定義條件的問題,除非符合條件,否則不會顯示。

此方式不同於其他軟體有時採用的跳躍分支邏輯。在跳躍分支邏輯中,符合條件後的動作是跳至另一個問題(也就是隱藏中間的所有問題)。LimeSurvey 並未實作此跳躍分支邏輯方法。取而代之的是,如果您想要跳過一系列問題,只需對所有不希望顯示的問題設定相同的條件即可。例如,若您想在問題 2 上設定的跳躍條件為「如果問題 1 的答案為『是』,則跳至問題 5」,您只需:

  • 為問題 2、3 和 4 設定條件,僅在「問題 1 的答案不是『是』」時才顯示

LimeSurvey 允許您將條件從一個問題「複製」到一系列其他問題,讓您能輕鬆對多個問題設定相同的條件(也就是實作跳躍分支邏輯)。在上述範例中,您可以先為問題 2 設定條件,然後在同一個畫面中,將該條件複製到問題 3 和問題 4。

如需進一步了解如何在 LimeSurvey 中複製條件,請繼續閱讀以下wiki 章節。


支援的條件類型

基本上,條件可以比較數值,並傳回真或假。

可供比較的值為先前問題的答案。例如,如果您在問題 1 回答「是」,則問卷填答者將會看到問題 2:





此時,了解哪些項目屬於條件編輯器可用的問題項目非常重要。

問題項目可以是:

  • 簡單問題(除陣列問題以外的所有問題類型)
    • 例如:開放性問題、單選或下拉式選單,甚至是多選問題
  • 或陣列問題中的一列(陣列雙重尺度和陣列多重彈性問題除外)
    • 例如:5 點單選按鈕陣列或標籤陣列問題
  • 或陣列雙重尺度問題的左半部或右半部
  • 或陣列彈性問題的每個儲存格
請查看以下連結,進一步了解 LimeSurvey 中可用的問題類型。
  • 常數值
    • 例如:「如果您對以下問題的回答超過 18 歲」



  • 參與者的個人資料: 若要使用問卷參與者表中的資料,「匿名作答結果」必須設為否。此選項位於問卷參與者設定面板中。





支援多種比較運算子 - 從簡單的「等於」到進階的「正規表示式」:

  • 基本運算子包括「等於」與「不等於」
  • 也提供大於/小於系列運算子,通常用於數值型的問題項目
    • 請注意,數值欄位的比較使用數值順序。例如,2 < 10
    • 如果您使用的問題項目類型為文字,則條件可能會被評估為 "2" > "10"(字串順序)!
    • 數值問題以及文字問題(設定了 'numbers_only' 屬性時)會使用數值順序進行比較
  • 也提供使用正規表示式的進階比較運算子(別擔心!如果您不知道這是什麼,就代表您不需要它)
    • 模式不需要以 '/' 字元括住
    • 例如:[a-zA-Z]$


如何組合條件?

您可以使用AND 和OR 邏輯運算子,將簡單條件組合起來,以建立複雜條件。



不過,請務必了解,LimeSurvey 會自動判斷要套用哪一種邏輯運算子。這表示使用OR 或AND 運算子是依據條件的內容來決定。在上述範例中,只有一個情境。這表示 LimeSurvey 使用布林代數,也就是會先「計算」or 運算子。

我們稍後會進一步說明複雜條件。讓我們先from基本條件開始。

條件設定器

首先,您需要進入條件設定器。為此,請點選您要套用條件的問題:



接著,請在頂部問題列中找到設定條件按鈕:



進入後,將顯示以下頁面:



條件設定器面板可分為三個部分:


條件設定器工具列

工具列中提供以下選項:



  • 顯示該題條件:點選此按鈕可快速查看目前已套用於該問題的現有條件。
  • 增加並編輯條件:這是點選設定條件按鈕後自動開啟的預設頁面。它分為兩個部分:(1) 顯示所有現有條件和情境的表格,以及 (2) 新增/編輯條件選單。
  • 複製條件:有時您希望將相同的條件套用到 X 個問題,以便最終顯示問題Y。為此,請點選複製條件。系統會開啟一個新視窗,顯示已新增至您問題(我們稱之為問題3)的現有條件。若要將這些條件新增至問題5,請勾選您要複製的條件,選擇問題5,然後點選面板左下方的複製條件按鈕。如需更多資訊,請繼續閱讀以下wiki 章節。
  • 儲存並關閉:完成變更後,點選儲存並關閉即可儲存您的條件。
  • 移至問題::若要在不離開條件設定器面板的情況下移至其他問題,請使用此選項,從下拉式選單中選擇您要套用條件的下一個問題。請注意,下拉式選單會顯示問卷中位於目前問題之前和之後的問題。
  • 關閉:如果您想在不進行任何變更的情況下離開面板,可以直接前往設定/結構索引標籤並選擇所需的選項,或點選位於畫面右上方的關閉。


現有條件概覽

此區段顯示一個表格,其中包含某個問題的所有現有情境和條件。您可以在此執行某些操作:



  • 在右上方提供三個操作:
    • 快速添增條件 - 加快新增條件的流程(請參閱下方以了解所有選項)
    • 重新編號情境 - 點選後,情境將從一開始以遞增數字重新編號。請注意,只有在您的問題套用了兩個或更多情境時,才會顯示此選項。
    • 刪除所有條件 - 透過此操作,您可以刪除套用於您問題的所有現有條件和情境。



  • 在每個情境的編號旁有三個按鈕,可讓您執行以下操作:
    • 刪除情境
    • 變更情境編號
    • 為此情況添增條件 - 點選此按鈕可為所需的情境再新增一個條件



  • 每個條件可執行兩個操作:
    • 刪除條件
    • 編輯條件 - 點選後,您可以在條件選單中編輯該條件


新增/編輯條件

畫面下半部為新增/編輯條件選單:



如果您先前點選了與要編輯的問題對應的綠色鉛筆圖示,也可以在同一位置編輯該條件(請參閱條件和場景表格)。

為了瞭解 LimeSurvey 中條件功能的運作方式,我們將先介紹基本條件。


注意:目前請不要修改預設場景(),它會在新增條件的表單中自動選取。稍後將在此維基章節中說明。


基本條件的定義

基本條件就是不含任何 OR 或 AND 邏輯運算子的單一條件。

它由以下部分組成:

  • 左運算元:測試值。您可以在條件編輯器中選取適當的索引標籤來選擇測試值的類型。它可以是先前的問題,或是問卷參與者屬性。



如果您(從先前問題索引標籤)選取了某個問題項目,且該問題使用預定義答案,則對應的預定義答案會顯示在比較值選擇的預定義索引標籤下。


請注意,若要使用 Token,您的問卷必須:


  • 比較運算子。從下拉式選單中選擇要套用的比較運算子(小於、小於或等於、等於、不等於、大於或等於、大於、正規表示式)。


  • 右運算元:比較值。您可以在條件編輯器中選取適當的索引標籤來選擇比較值的類型。建立條件時,您可以選擇預定義值(答案)、常數、問題、問卷參與者屬性或正規表示式作為比較值:


基本條件範例及建立方式

  • 顯示問題「AAMN」如果 「問題「Gender」的答案為預定義答案「Male」」
    • 測試值 = 問題「Gender」的答案
    • 比較運算子 = 等於
    • 比較值 = 預定義答案代碼(此處為「Male」答案)



  • 顯示問題「Alcohol」如果 「問題「Age」的答案大於或等於數值「18」」
    • 測試值 = 問題「Age」的答案
    • 比較運算子 = 大於或等於
    • 比較值 = 常數值「18」



  注意 : 對日期問題使用常數「比較值」時,無論問卷中設定的日期格式為何,您都必須使用 YYYY-MM-DD 日期格式。



  • 顯示問題「Alcohol」如果 「問題「BirthDate」的答案大於 2000-01-01」
    • 測試值 = 問題「BirthDate」的答案
    • 比較運算子 = 大於或等於
    • 比較值 = 「2000-01-01」(常數欄位中的格式:2000-01-01)



  • 顯示問題「Alcohol」如果 「「DrinkingHistory」參與者屬性」符合字串「Yes」。
    • 測試值= 取自問卷參與者表格的「DrinkingHistory」值
    • 比較運算子 = 等於
    • 比較值 = 常數值「Yes」


LimeSurvey 中的條件與場景

預設條件組合

如前所述,LimeSurvey 會根據「上下文」自動決定在條件之間套用哪一種邏輯運算子(AND 或 OR)。

另請注意,您定義基本條件的順序並不重要,因為 LimeSurvey 會依照自己的邏輯自動重新排序。

讓我們詳細說明。請務必記住兩條規則:


第一條規則:具有相同測試值的條件以 OR 組合

當您有多個條件時,如果它們具有相同的測試值,就會以 OR 組合。當條件套用於屬於同一個問題的多個答案時即是如此。例如,下方對屬於同一問題的三個答案套用了條件:如果問題「FavColour」的答案等於「green」或問題「FavColour」的答案等於「red」或問題「FavColour」的答案等於「blue」,則問卷受訪者將會看到問題「BirthDate」:



注意:若要選取多個預先定義的答案,在選取受測值時請記得按住 Shift 或 Ctrl 鍵。


第二條規則:具有不同受測值的條件以 AND 結合

當您有多個條件時,如果它們不具有相同的受測值,則會以 AND 結合。例如,下方是以多個不同先前問題為基礎的條件範例:「如果問題 'Alcohol' 的答案等於 'Y' 且問題 'Gender' 的答案等於 'F'」,則問卷受訪者將會看到問題 'Alcoholconsumption':



多選問題

注意:本段適用於多選及帶評論的複選題問題,不適用於採複選版面的陣列多重彈性(數字)問題(後者的每個核取方塊都是獨立的問題項目,其處理方式與其他多選問題類型不同)。


多項選擇和帶評論的複選題問題類型會以兩種形式顯示:

  • 複選群組形式:讓您針對相應問題的所有可能答案設定條件;
  • 一組單選項目:讓您針對每個核取方塊individually設定條件。



複選群組形式

現在,讓我們透過一個範例來更清楚了解這兩種形式的差異。假設我們希望只有在受訪者至少勾選問題 'MultipleOrganizations' 下列出的其中一個受測答案時,才顯示問題 'Pointchoice'。

如上所述,複選群組形式可讓您針對相應問題的所有可能答案設定條件。因此,下方僅選取與職責相關的選項作為比較值:



如我們所見,由於一開始選擇了複選群組形式,這些條件會以 OR 結合:



在多選問題中以 AND 結合條件

現在,讓我們看一個類似的範例。不過這次我們只想找出最活躍的成員,以便向他們提出進一步的問題。為此,我們使用單選形式,它可讓您針對每個核取方塊individually設定條件。

在此範例中,如果 A 和 B 都被勾選,就會顯示問題 X:



完成後,您可以看到這兩個條件現在以 AND 結合。



這表示除非兩個受測值(所選的子問題)都符合,否則您的問題不會顯示。


場景的使用方式 - 在不同問題之間使用以 OR 結合的條件

您可能會說,有時即使條件設定在不同的問題上(也就是不同的受測值),仍需要以 OR 結合。這就是我們提供場景的原因!


場景的定義

場景就是手動將條件分組,其中某些條件的評估獨立於其他場景中的條件。由多個場景組合而成的複雜條件,只要有一個場景符合就會成立。換句話說,場景是遵循上述規則的條件邏輯分組,並且各場景之間以 OR 結合,以建構複雜條件。

上述所有說明都適用於每個場景中的條件。依預設,所有新條件都會建立在預設場景中,其識別碼為數字「1」。建立新條件時,您可以選擇是否將其加入預設場景。若要變更場景,只需使用其他識別碼即可。


將問題新增至其他場景

建立(或編輯)條件時,只需按一下「增加場景」按鈕,即可修改該條件所屬的場景:



如您所見,預設場景使用「1」作為識別碼。若要將條件新增至不同的場景,請在方塊中輸入其他數字以變更識別碼。

場景的編號 ID 並不重要,不同場景的 ID 可以是不連續的。



您可以按一下此圖示 ,並為場景指派新的 ID,以變更指派給該場景的編號。



注意:如上所述,場景編號不會影響條件的評估方式。不過,在以下情況下需要修改場景編號:
  • 決定使用問卷的可列印版本時場景的顯示順序
  • 合併兩個場景中的條件(若要將場景 10 與場景 1 合併,只需將場景 10 重新編號為場景 1)。


範例:建立三個場景

若要建立三個場景,您至少需要三個條件,並為每個條件指定不同的場景 ID。完成後,這些場景之間將透過「OR」運算子相連。例如,結果可能如下所示:


同一場景中的 AND 與 OR

在某些情況下,同一個場景中可能同時出現 AND 與 OR 邏輯運算子:



LimeSurvey 一律會先套用 OR。有關詳細資訊,您可以參閱下列維基百科文章:布林代數。

此外,運算順序也可以在「相關性等式」欄位中看到。以上述範例而言,相關性等式如下方醒目提示所示:



如您所見,OR 邏輯運算會額外加上一組括號,以告知軟體必須先「計算」這部分。


說明:有關相關性等式的更多資訊,請參閱 ExpressionScript - Presentation 與 相關性等式 維基章節。

如何複製條件

當您想將套用於 Question5 的同一組條件套用至 Question10 時,可以使用複製條件功能。如此一來,您就不必手動重新建立先前問題所套用的條件。

若要開始複製條件,首先必須選擇已套用條件的問題(本例中為問題「LowQ」)。接著,選取您要複製的條件,並選擇要新增這些條件的問題(本例中為問題「Alcohol」)。



注意:條件只能根據出現在設定該條件之問題「之前」的問題來設定。

當您要複製位於不同場景下的一組條件,並將其套用至使用相同或不同場景 ID 編號的另一個問題時,請留意複製條件功能的運作方式。為了彙整可能出現的情況,請參閱下列範例:

  • 您想將 QuestionX 中的 場景 1 - 條件 A、場景 1 - 條件 B、場景 7 - 條件 C 以及場景 7 - 條件 D 複製到 QuestionY
  • QuestionY 已包含 場景 1 - 條件 A、場景 - 條件 C、場景 6 - 條件 E、場景 8 - 條件 F。
  • 複製完成後,QuestionY 將套用下列條件:
    • 場景 1:條件 A、條件 B、條件 C -> 條件 A 因已存在於 QuestionY 中而不會再被複製,只會複製條件 B。
    • 場景 6:條件 E -> 不受影響
    • 場景 7:條件 C、條件 D -> 建立新場景,並將這兩個條件新增至其中
    • 場景 8:條件 F -> 不受影響


重設條件

若要快速重設問卷的所有條件,請按一下任一問卷相關設定,在頂端工具列中找到工具,然後按一下重設條件:



接著,請在下一頁確認您要繼續,所有條件隨即會被刪除。


注意事項

一般考量

在為問題設定條件之前,請先記住以下幾項基本規則:

  • 只要為某個問題設定了單一條件,除非符合該條件,否則該問題不會顯示。
  • 條件只能根據出現在設定條件之問題之前的問題來設定。
  • 若您在建立條件之後變更了問卷中問題的順序,LimeSurvey 不會警告您變更後的順序是否會破壞任何條件。建議您在對問卷中問題和問題群組的順序感到滿意之後,再建立條件。
  • 問卷啟用後,您仍然可以修改條件。請謹慎操作,因為系統不會進行「一致性檢查」。


使用「不適用」預設答案的條件


設定以下條件「若問題 'Gender' 的答案為「不適用」,則顯示問題 'FavColour'」,實際上的意思是「若問題 'Gender' 已顯示給問卷參與者,但參與者未送出答案,則顯示問題 'FavColour'」。


 Hint: 若要將「不適用」選項顯示為預設答案,該問題不可設為必填。


串連條件

若您對本身已有條件的問題再設定條件,問卷的行為可能會出乎您的預期。例如,一個典型的副作用是:如果您隱藏了某個問題群組中所有具有串連條件的問題,除非您依照下文說明修正這些條件,否則該群組的標題仍會顯示。




在上述範例中,若受訪者先前對問題 'AAMN' 回答「No (N)」,則會顯示問題 'Alcohol'。然而,如果受訪者在上一個問題('Gender')中未選擇答案「男性 (M)」,則問題 'AAMN' 最終可能不會顯示。在這種情況下,如果先前選擇了「男性 (M)」,就不會顯示問題 'Alcohol'。

若要顯示問題 'Alcohol',您必須將先前問題的條件複製到您正在編輯的問題。要顯示問題 'Alcohol',您需要設定以下一組條件:

  • 若 'Gender' 的答案為「男性 (M)」,則顯示 'AAMN'
  • 若 'Gender' 的答案為「男性 (M)」和 'AAMN' 的答案為 No (N),則顯示 'Alcohol'。

修正後,'Alcohol' 的正確條件組合應如下所示:



因此,如果您正在設計含有大量條件的複雜問卷,請務必以您所能想到的各種不同結果組合來測試問卷。

若要進一步瞭解如何在 LimeSurvey 中複製條件,請向上捲動,或點擊此處繼續閱讀專屬的wiki 章節。


限制與因應方法

進度條

如果您建立的問卷中有許多問題因條件而被略過,進度條可能會跳過一批問題,或是問卷在 50% 時就結束。

為避免這種情況,應將可能被略過的問題安排在會顯示的問題之間。這樣,每個答案只會略過一到兩個問題。

例如,根據 Question1(是或否問題),若 Question1 的答案為「Yes」,將顯示 14 個問題(2A 至 15A);若答案為「No」,則顯示 2B 至 15B。

如果您將這些問題安排在同一個群組中,並依 2A、2B、3A、3B 等順序排列,就能得到幾乎正確的進度條;反之,若依 2A、3A、4A、[...]、2B、3B、4B、... 的順序排列,則視第一個問題的答案而定,進度條會從 0 到 50%,或從 50% 到 100%。


為「日期」題型設定固定比較值

您必須使用日期值的內部表示格式(YYYY-MM-DD)來定義固定比較值。


為多選題型中的「其它」選項設定條件

在多選題型中,您可以使用該題型所提供的"其它"作為有效選項,但無法對其設定條件。例如,第 1 題詢問 "您偏好使用哪種顏色?",核取方塊的答案選項為藍色、黑色和其它。如果參與者選擇藍色,您可以設定一個條件;如果參與者選擇黑色,您可以設定另一個條件。然而,如果參與者選擇 "其它" 並在文字方塊中輸入內容,則完全無法設定條件。 LimeSurvey 無法辨識參與者是否選擇了 "其它"。這不是錯誤,而是一項限制。

此題型並未為「其它」核取方塊記錄實際欄位。因此,要得知使用者是否回答了問題的「其它」部分,唯一的方法就是檢查其它輸入欄位中所填寫的文字是否為空。

然而,由於多項選擇問題的特殊處理方式,系統從未實作對「其它」文字輸入欄位的測試。

作為替代方案,請新增一個名為「Other」的明確答案選項,並且不要使用這些問題類型內建的「其他」選項。然後再新增一個簡短文本問題,當勾選此「Other」核取方塊時才會顯示該問題。


如何在布林運算式中使用括號?

無法使用!

如果您想設計如下的條件:

(condition1 OR condition2) AND (condition3 OR condition4),

您必須改為設定:

 (condition1 AND condition3) OR

 (condition1 AND condition4) OR

 (condition2 AND condition3) OR

 (condition2 AND condition4)