計算欄位處理器 | Qlik Cloud 說明
跳到主要內容 跳至補充內容

計算欄位處理器

根據 Qlik 指令碼運算式新增欄位。

計算欄位處理器可讓您在資料的結構描述中建立新欄位,並使用 Qlik 指令碼運算式填入每個欄位。您的指令碼可以使用輸入結構描述中的所有內容,從而允許您使用現有欄位的組合或轉換版本。

用法

  • 計算欄位處理器需要一個輸入流程,且只能產生一個輸出流程。

  • 按一下處理器組態面板中的 + 圖示以建立多個計算欄位。

限制

  • 計算欄位處理器會在載入指令碼內容中執行運算式。諸如 firstSortedValuesumavgcount 等彙總函數在此處理器中不起作用,因為它會個別處理每一列,而不是在 GROUP BY 彙總內處理。若要使用彙總函數,請參閱 彙總處理器

  • 圖專用函數在此處理器中不起作用,因為它在資料載入圖層中運作。

  • 目前無法在同一個計算欄位處理器中建立新欄位並對其進行參照。建議使用兩個不同的處理器。

屬性

要設定以計算新欄位的屬性。

組態
屬性 組態
名稱 為新建立的欄位指定自訂名稱。
運算式 在欄位中輸入您的 Qlik 指令碼運算式,以設定新欄位的值。如需 Qlik 指令碼語法的詳細資訊,請參閱 指令碼語法和圖函數
開啟編輯器 使用此選項可使用功能更強大的指令碼編輯器,您可以在其中受益於協助您更輕鬆建立運算式的工具。如需詳細資訊,請參閱 使用運算式編輯器

若要重新命名處理器或編輯其說明,請將滑鼠游標移至 屬性 面板中要變更的名稱或說明上,然後按一下 編輯 編輯 圖示。

使用運算式編輯器

按一下組態面板中的 開啟編輯器 按鈕會開啟 運算式編輯器,這是一個功能強大的指令碼編輯器,可協助您建立新欄位。輕鬆插入欄位名稱或函數、開啟說明文件並檢查運算式的有效性。

使用運算式編輯器建立計算欄位

在左側面板中,您可以檢視目前載入至資料流程中的欄位,並瀏覽各種 Qlik 指令碼函數。此面板分為兩個索引標籤:

  • 欄位,其中列出了此流程點可用的欄位。將滑鼠游標移至任何欄位名稱上,然後按一下 + 以直接將其插入運算式中。

  • 函數,您可以在其中瀏覽 Qlik 函數。您可以使用搜尋欄位來尋找特定函數,或使用 函數類別 下拉式功能表來篩選它們。

    將滑鼠游標移至任何函數上,然後按一下 + 以直接將其插入運算式中。

  • 如果您選取 說明指南 切換開關,按一下函數時將會顯示簡短說明和說明文件的連結。

在頂部面板中,您可以啟用或停用三個工具,以在撰寫指令碼時為您提供協助和引導,以及用於修正潛在錯誤的復原和重做按鈕。

  • 搜尋和取代,以自動尋找特定值並在需要時進行取代。

    運算式編輯器的搜尋和取代功能

  • 說明模式,將您在指令碼中撰寫的任何函數轉換為可按一下的連結,這些連結將帶您前往說明文件。

    在指令碼編輯器中啟用說明模式

  • 自動完成,在您輸入時顯示建議,並附有函數的簡短說明和範例。

    使用自動完成撰寫指令碼函數

底部面板說明了指令碼的任何潛在錯誤,例如不正確的欄位名稱或無效的運算式。

顯示指令碼中錯誤的驗證工具

當狀態面板顯示綠色的 確定 時,表示您的運算式有效。按一下 確認 以將此運算式用於您的計算欄位,並返回資料流程編輯器。然後,您可以驗證處理器組態。

範例

  • 設定遞增值以用作新欄位列的識別碼:

    RecNo()

    如需詳細資訊,請參閱 計數器函數

  • 使用 if/then/else 條件。在此範例中,您已載入包含溫度的資料,並希望根據這些值包含其他資訊:

    
    If(Temperature <= 0 , 'Freezing',
    If(Temperature >= 100, 'Boiling',
    If(Temperature >0 AND Temperature < 100, 'Between')))

    如需詳細資訊,請參閱 if - 指令碼和圖函數

  • 在單一處理器中執行多個數學運算。在包含已售單位數量、單位價格和單位成本欄位的資料集中,您可以為總收入和總成本建立兩個新欄位。

    1. 在第一個欄位中,輸入 total_revenue 作為新欄位名稱,以及以下運算式:

      [Units Sold] * [Unit Price]
    2. 按一下處理器組態面板中的 + 圖示以建立另一個計算欄位。

    3. 在第二個欄位中,輸入 total_cost 作為新欄位名稱,以及以下運算式:

      [Units Sold] * [Unit Cost]

如需更多指令碼運算式的範例,請參閱 常規陳述式指令碼和圖函數

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們!