
- QlikView 資料載入
- QlikView - Excel 檔案
- QlikView - 分隔符檔案
- QlikView - XML 檔案
- QlikView - Web 檔案
- QlikView - 資料庫
- QlikView - 內聯資料
- QlikView - Resident 載入
- QlikView - 前置載入
- QlikView - 增量載入
- QlikView - 資料檔案 (QVD)
- QlikView 報表介面
- QlikView - 工作表和物件
- QlikView - 指令碼
- Qlikview - 函式
- QlikView - IntervalMatch
- QlikView - 聚合函式
- QlikView - Match 函式
- QlikView - Rank 函式
- QlikView - Peek 函式
- QlikView - RangeSum 函式
- QlikView - 文件
- QlikView - 列表框
- QlikView - 多選框
- QlikView - 文字物件
- QlikView - 條形圖
- QlikView - 餅圖
- QlikView - 儀表盤
- QlikView 資料轉換
- QlikView - 轉換向導
- QlikView - Fill 函式
- QlikView - 列操作
- QlikView - 表格旋轉
- QlikView 資料模型
- QlikView - 維度和度量
- QlikView - 星型模式
- QlikView - 合成鍵
- QlikView - 生成資料
- QlikView 資料分析
- QlikView - 交叉表
- QlikView - 直通表
- QlikView - 資料透視表
- QlikView - 集合分析
- QlikView - 連線
- QlikView - 保留
- QlikView - 連線
- QlikView - 主日曆
- QlikView - 對映表
- QlikView - 迴圈引用
- Qlikview 有用資源
- Qlikview - 問答
- Qlikview - 快速指南
- Qlikview - 有用資源
- Qlikview - 討論
QlikView 快速指南
QlikView - 概述
QlikView 是一個領先的商業探索平臺。與傳統的 BI 平臺相比,它在許多方面都是獨一無二的。作為一種資料分析工具,它始終保持資料之間的關係,並且可以透過顏色直觀地看到這種關係。它還顯示了不相關的 資料。它透過使用列表框中的單個搜尋提供直接和間接搜尋。
QlikView 的核心和專利技術具有記憶體資料處理功能,這為使用者提供了超快的結果。它可以動態計算聚合,並將資料壓縮到原始大小的 10%。QlikView 應用程式的使用者和開發人員都不需要管理資料之間的關係。它是自動管理的。
QlikView 的功能
QlikView 擁有專利技術,使其能夠快速地從多個數據源建立高階報表,具有許多有用的功能。以下是使 QlikView 非常獨特的功能列表。
資料關聯自動維護 - QlikView 自動識別資料集中每個資料片段之間的關係。使用者無需預先配置不同資料實體之間的關係。
資料儲存在記憶體中供多個使用者使用,以提供超快的使用者體驗 - 報表的結構、資料和計算都儲存在伺服器的記憶體 (RAM) 中。
聚合根據需要動態計算 - 由於資料儲存在記憶體中,因此計算是在動態進行的。無需儲存預先計算的聚合值。
資料壓縮到原始大小的 10% - QlikView 大量使用資料字典。任何分析所需的記憶體中只有必要的資料位。因此,它將原始資料壓縮到非常小的尺寸。
使用顏色進行視覺化關係 - 資料之間的關係不是透過箭頭或線條顯示,而是透過顏色顯示。選擇一個數據片段會為相關資料提供特定的顏色,為不相關的資料提供另一種顏色。
直接和間接搜尋 - 使用者無需直接輸入要查詢的值,而是可以輸入一些相關資料並獲得準確的結果,因為存在資料關聯。當然,他們也可以直接搜尋值。
QlikView - 安裝
下載 QlikView
QlikView 的免費個人版可以從 QlikView 個人版 下載。您需要使用您的詳細資訊進行註冊才能下載。
下載後,安裝過程非常簡單,您需要接受許可協議並提供安裝的目標資料夾。下面給出的螢幕截圖描述了整個安裝過程。
啟動安裝嚮導
雙擊 QlikViewDesktop_x64Setup.exe 將顯示一個螢幕,用於選擇您選擇的語言。選擇英語後,將顯示以下螢幕。然後單擊 下一步。
接受許可協議
閱讀許可協議,如果您同意,請選擇“我接受許可協議中的條款”選項。然後單擊“下一步”。
提供您的詳細資訊
提供您的姓名和組織詳細資訊。然後單擊“下一步”。
選擇目標資料夾
您可以接受預設的安裝目標或更改它。然後單擊“下一步”。
選擇安裝型別
選擇“完全”作為安裝型別。然後單擊“下一步”。
開始安裝
在此螢幕中,您最終決定真正開始安裝。如果需要,您仍然可以返回並更改某些選項。假設您對到目前為止的所有內容都滿意,請單擊“安裝”。
安裝完成
成功安裝後,將出現安裝完成螢幕。單擊“完成”。
驗證安裝
您可以透過轉到 Windows 開始選單並單擊 QlikView 圖示來驗證安裝。螢幕如下所示。
您現在可以開始學習 QlikView 了。
QlikView - 架構
作為領先的商業探索平臺,QlikView 採用了與其他傳統平臺不同的資料探索方法。QlikView 不會首先構建查詢,然後根據查詢獲取結果。相反,它在載入資料後立即在不同的資料物件之間形成關聯,並提示使用者以任何方式探索資料。沒有預定義的資料鑽取路徑。只要資料可用並關聯,資料鑽取路徑就可以向任何方向進行。
當然,使用者也可以使用 QlikView 中提供的資料建模方法在資料元素之間建立關聯。
架構概述
QlikView 的架構包括一個前端來視覺化處理後的資料,以及一個後端來為 QlikView 使用者文件提供安全和釋出機制。下圖描述了 QlikView 的內部工作原理。架構將在圖片下方詳細討論。
前端
QlikView 中的前端是基於瀏覽器的訪問點,用於檢視 QlikView 文件。它包含 QlikView Server,主要用於業務使用者透過 Internet 或 Intranet URL 訪問已建立的 BI 報表。
業務使用者使用此前端探索和互動資料,並得出關於資料的結論。他們還可以透過共享見解和共同探索資料(即時或離線)與其他使用者協作處理給定的一組報表。這些使用者文件的格式為 .qvw,也可以作為獨立文件儲存在 Windows 作業系統中
前端中的 QlikView 伺服器管理使用者和 QlikView 後端系統之間的客戶端伺服器通訊。
後端
QlikView 後端由 QlikView 桌面 和 QlikView 釋出器 組成。
QlikView 桌面 是一個嚮導驅動的 Windows 環境,具有從源載入和轉換資料的功能。它的拖放功能用於建立報表在前端可見的 GUI 佈局。由 QlikView 桌面建立的檔案型別以 .qvw 副檔名儲存。這些是傳遞到前端 QlikView 伺服器的檔案,該伺服器為使用者提供這些檔案。此外,.qvw 檔案可以修改為儲存僅包含資料的檔案,稱為 .qvd 檔案。它們是二進位制檔案,僅包含資料而不包含 GUI 元件。
QlikView 釋出器 用作分發服務,用於在各種 QlikView 伺服器和使用者之間分發 .qvw 文件。它處理授權和訪問許可權。它還透過使用 .qvw 檔案中定義的連線字串直接從資料來源載入資料。
QlikView - 導航
在本節中,我們將熟悉使用者執行各種操作可用的螢幕。我們將學習基本的導航並瞭解 QlikView 中提供的圖示執行的不同功能。
開始螢幕
此螢幕是導航 QlikView 的簡要介紹。啟動 QlikView 並選中 啟動 QlikView 時顯示開始頁 選項時,將顯示此螢幕。如果向下滾動左側的示例部分,您可以點選任何示例,例如 - 電影資料庫、資料視覺化等,以呼叫它並檢視 QlikView 的工作原理。請隨意點選周圍!向右移動時,您會注意到 最近 和 收藏 連結,它們顯示所有最近訪問的 QlikView 文件以及您想要經常訪問的文件。
選單命令
關閉“開始”視窗後,我們將獲得包含所有可用選單命令的主介面。它們代表 QlikView 中提供的全部功能集。以下是選單命令每個部分的概述。
檔案選單
此選單用於建立新的 QlikView 檔案並從本地系統和 QlikView 伺服器開啟現有檔案。此選單中的重要功能包括:
作為附件傳送郵件 以將當前開啟的文件作為附件傳送電子郵件。
減少資料 以僅檢視報表佈局和資料庫結構,而不顯示任何資料。
表格檢視器 選項用於以圖形方式查看錶格、欄位及其關聯的結構。

編輯選單
此選單用於執行編輯選項,如複製、貼上、剪下和使用格式刷。此選單中的重要功能包括:
啟用所有 選項啟用開啟的工作表中存在的所有工作表物件。
刪除 從活動視窗中刪除工作表。
高階搜尋 選項用於使用多選框使用高階搜尋表示式進行搜尋。
檢視選單
此選單用於檢視標準工具欄和放大/縮小功能。它還以級聯選單的形式顯示所有活動工作表。此選單中的重要功能包括:
啟用/停用 WebView 模式 切換 WebView 模式和本地檢視模式。
當前選擇 顯示選定工作表物件的欄位名稱和檔案值。
設計網格 用於切換活動物件的工作表物件佔位符,以及用於調整佈局中物件大小和移動物件的吸附到網格。
選擇選單
此選單用於選擇和清除工作表物件中值的選中狀態。它還提供了在您正在處理的工作表中向前和向後進入不同邏輯語句的功能。此選單中的重要功能包括:
- 鎖定 鎖定當前選擇中的所有值。
- 解鎖 解鎖當前選擇中所有鎖定的值。
佈局選單
佈局選單用於新增選項卡式工作表、選擇不同的工作表和重新排列工作表物件。此選單中的重要功能包括:
- 提升工作表 將當前工作表或選項卡向前移動一步。
- 降低工作表 將當前工作表或選項卡向後移動一步。
- 刪除工作表 刪除活動工作表及其中的所有內容。
設定選單
設定選單用於設定使用者首選項、文件屬性和工作表屬性。此選單中的重要功能包括:
- 變數概述 所有未隱藏的變數及其值在一個列表中。
- 表示式概述 將文件、工作表和工作表物件中的表示式顯示為一個列表。
書籤選單
此選單用於建立指向不同文件的書籤,以便更快地檢索。
報表選單
報表選單用於建立新的報表和編輯現有的報表。您可以編輯佈局、向報表新增頁面,還可以刪除報表。
工具選單
工具選單是一個非常突出的選單,經常用於建立圖表和開啟QlikView管理控制檯。此選單中的重要功能包括:
快速圖表嚮導 在不使用大量不同設定和選項的情況下建立簡單的圖表。
時間圖表嚮導 建立時間序列圖表。
統計圖表嚮導 用於對資料應用常見的統計檢驗。
物件選單
此選單用於建立新的工作表物件和修改現有的工作表物件。工作表屬性選項開啟頁面以設定定義工作表的引數。此選單中的重要功能包括:
複製工作表 - 建立工作表的副本以及所有工作表物件。
複製影像到剪貼簿 - 將工作表區域的點陣圖圖片複製到剪貼簿。
移除 - 完全刪除工作表及其中的工作表物件。
視窗和幫助選單用於組織QlikView應用程式的不同視窗並提供幫助文件。
QlikView - Excel檔案
QlikView透過簡單的拖放操作接受Excel電子表格進行資料分析。您需要開啟QlikView主視窗並將excel檔案拖放到介面中。它將自動建立顯示excel資料的表單。
選擇Excel檔案
保持QlikView主視窗開啟,並瀏覽要使用的excel檔案。
選擇資料來源
將excel檔案拖放到主視窗後,將出現檔案嚮導。檔案型別已選擇為Excel。在標籤下,選擇嵌入式標籤。單擊“下一步”繼續。
載入指令碼
將顯示載入指令碼,其中顯示將資料載入到QlikView文件中的命令。此命令可以編輯。
現在,Excel嚮導提示以*.qvw副檔名的形式儲存檔案。它要求選擇需要儲存檔案的位置。單擊“下一步”繼續。現在是檢視從Excel檔案載入的資料的時候了。我們使用表格框工作表物件來顯示此資料。
建立表格框
表格框是一個工作表物件,用於將可用資料顯示為表格。它從選單佈局→新建工作表物件→表格框呼叫。
單擊下一步後,我們將獲得從表格框中選擇欄位的選項。您可以使用提升或降低按鈕重新排列欄位。
表格框資料
完成上述步驟後,將出現表格框工作表物件,其中顯示從Excel檔案讀取的資料。
QlikView - 分隔符檔案
QlikView可以使用純文字檔案中的資料,其中欄位由逗號、製表符、分號等字元分隔。這裡,我們將以CSV為例。每個資料列都由逗號分隔的檔案稱為CSV檔案。它是一種非常廣泛使用的檔案格式,用於儲存組織為列和行的純文字資料。
QlikView使用指令碼編輯器中“檔案”選單下的“來自檔案的資料”選項載入csv檔案。或者,您也可以開啟一個新的QlikView文件並按control+E以獲取如下所示的指令碼編輯器視窗。從相應路徑中選擇檔案Product_details.csv。
選擇檔案標題
開啟選定的CSV檔案後,將出現如下所示的視窗。在標籤下,選擇嵌入式標籤,因為我們的檔案的第一行是標題行。單擊完成。
載入指令碼
將檔案載入到QlikView中是透過載入指令碼完成的,這可以在下面的螢幕截圖中看到。因此,當我們使用任何分隔符檔案時,我們可以根據檔案格式調整下面的指令碼。
現在,指令碼嚮導提示以*.qvw副檔名的形式儲存檔案。它要求選擇需要儲存檔案的位置。單擊“下一步”繼續。現在,是檢視從分隔符檔案載入的資料的時候了。我們使用表格框工作表物件來顯示此資料。
建立表格框
表格框是一個工作表物件,用於將可用資料顯示為表格。它從選單佈局→新建工作表物件→表格框呼叫。
單擊下一步後,我們將獲得從表格框中選擇欄位的選項。您可以使用提升或降低按鈕重新排列欄位。
表格框資料
完成上述步驟後,將出現表格框工作表物件,其中顯示從Excel檔案讀取的資料。
QlikView - XML檔案
XML是一種檔案格式,它共享檔案格式和資料,在全球資訊網、內聯網和其他地方使用標準ASCII文字。它代表可擴充套件標記語言(XML)。類似於HTML,它包含標記標籤。但是,與HTML中標記標籤描述頁面結構不同,在XML中,標記標籤描述檔案中包含的資料的含義。QlikView可以使用XML檔案中的資料。
從XML檔案載入資料的過程類似於我們之前看到的載入分隔符檔案的過程。開啟指令碼編輯器。單擊選單插入→載入語句→從檔案載入。瀏覽要載入的XML檔案。在此示例中,我們選擇employee_dat.xml檔案。
選擇XML檔案結構
開啟選定的XML檔案後,將出現如下所示的視窗。在左側的檔案型別部分中,選擇XML。XML檔案的內容現在顯示為表格以及標題列。單擊完成。
檔案載入器指令碼
將XML檔案載入到QlikView中是透過載入指令碼完成的,這可以在下面看到。因此,當我們使用任何XML檔案時,我們可以調整以下給定的指令碼以重新命名列或更改檔案位置等。
現在,指令碼嚮導提示您以*.qvw副檔名的形式儲存檔案。它要求選擇需要儲存檔案的位置。單擊“下一步”繼續。現在是檢視從XML檔案載入的資料的時候了。我們使用表格框工作表物件來顯示此資料。
建立表格框
表格框是一個工作表物件,用於將可用資料顯示為表格。它從選單佈局→新建工作表物件→表格框呼叫。
單擊下一步後,我們將獲得從表格框中選擇欄位的選項。您可以使用提升或降低按鈕重新排列欄位。
表格框資料
完成上述步驟後,將出現表格框工作表物件,其中顯示從Excel檔案讀取的資料。
QlikView - Web檔案
QlikView可以處理來自Web的HTML格式的檔案。它可以從HTML表格中提取資料。要處理的Web檔案的URL作為輸入給出,QlikView獲取檔案的結構和內容。然後,它分析頁面的結構,從頁面中存在的HTML表格中提取相關資料。我們從指令碼編輯器“資料”選項卡下的“來自檔案的資料”部分中選擇Web檔案選項。
將URL作為輸入
選擇Web檔案選項後,我們將獲得一個新視窗以將URL作為輸入。在此示例中,我們從維基百科中選擇亞洲主權國家和屬地列表作為輸入頁面。提及URL並單擊下一步。
從Web檔案中選擇表格
開啟選定的Web檔案後,將出現如下所示的視窗。在這裡,我們可以看到網頁中存在的各種表格,標記為@1、@1、@3等。選擇第一個表格並連續單擊下一步兩次。
選擇表格的列
從上表中,我們可以透過使用交叉符號刪除不需要的列來僅選擇所需的列。
載入指令碼
將檔案載入到QlikView中是透過載入指令碼完成的,這可以在下面給出的螢幕截圖中看到。因此,當我們使用任何分隔符檔案時,我們可以根據檔案格式調整以下給定的指令碼。
現在,指令碼嚮導提示以*.qvw副檔名的形式儲存檔案。它要求選擇需要儲存檔案的位置。單擊“下一步”繼續。現在是檢視從Web檔案載入的資料的時候了。我們使用表格框工作表物件來顯示此資料。
建立表格框
表格框是一個工作表物件,用於將可用資料顯示為表格。它從選單佈局→新建工作表物件→表格框呼叫。
單擊下一步後,我們將獲得從表格框中選擇欄位的選項。您可以使用提升或降低按鈕重新排列欄位。
表格框資料
完成上述步驟後,將出現表格框工作表物件,其中顯示從Web檔案讀取的資料。標記非英語字元!!
QlikView - 資料庫連線
QlikView可以連線到大多數流行的資料庫,如MySQL、SQL Server、Oracle、Postgress等。它可以將資料和表結構提取到QlikView環境中,並將結果儲存在其記憶體中以供進一步分析。連線到任何這些資料庫的步驟包括使用DSN建立ODBC連線,然後使用此DSN提取資料。
在本教程中,我們將連線到MySQL資料庫。本教程假設您有一個可用的MySQL環境。按照以下步驟為MySQL建立一個ODBC DSN(資料來源名稱):建立DSN。 將DSN命名為mysqluserdsn,或者如果您已經為MySql建立了DSN,則可以首選使用現有的DSN。
連線到資料庫
在本節中,我們將使用名為sakila的MySql內建資料庫。我們建立一個新的QlikView文件並開啟指令碼編輯器(按Control+E)。在“資料”選項卡下,我們找到名為資料庫的部分。從下拉列表中選擇ODBC,然後單擊連線。將開啟以下視窗。選擇名為mysqluserdns的DSN,然後單擊測試連線。應出現訊息連線測試成功。
驗證資料庫連線
連線成功後,將出現如下所示的螢幕,顯示在指令碼編輯器主視窗中與資料庫的連線。
選擇資料庫表
在上述視窗中單擊選擇以獲取表和列的列表。由於我們已使用sakila作為預設資料庫建立了DSN,因此我們將獲得來自此資料庫的表和列的列表。我們可以從資料庫下拉列表中選擇另一個數據庫,如下面的螢幕截圖所示。在本節中,我們將繼續使用sakila資料庫。
表載入器指令碼
在上述視窗中單擊確定後,我們將返回到主指令碼編輯器,其中顯示了使用名為actor的表的指令碼。
在qvd檔案中顯示結果
現在,載入到 QlikView 文件中的資料需要永久儲存以便進一步分析。為此,我們將編輯指令碼以 QVD 檔案的形式儲存資料。按Ctrl+E開啟編輯指令碼視窗並編寫以下程式碼。
在程式碼中,我們為列指定了合適的名稱,並在 load 語句上方提到了表名。此外,我們還指定了生成 QVD 檔案的儲存路徑。將此檔案儲存為QV_mysql.qvw
使用 QVD 檔案
QVD 檔案可以載入到主文件中,並用於建立圖表和表格以進行進一步分析。按Ctrl+R重新載入QV_mysql.qvw檔案,然後在圖表嚮導中單擊下一步。選擇以 actor_id、first_name、last_name 作為維度,並以 actor_id 的計數作為表示式的直線表。如下所示,將顯示一個圖表。
QlikView - 內聯資料
可以透過直接鍵入或貼上資料來將其輸入 QlikView 文件。此功能是將剪貼簿中的資料快速匯入 QlikView 的方法。指令碼編輯器在“插入”選項卡下提供了此功能。
指令碼編輯器
要開啟內聯資料載入選項,我們開啟指令碼編輯器並轉到插入→載入語句→內聯載入。
插入資料
開啟上述屏幕後,我們將獲得一個類似電子表格的文件,可以在其中鍵入值。我們還可以貼上已存在於剪貼簿中的值。請注意,列標題會自動建立。單擊“完成”。
載入指令碼
在後臺建立了載入資料的命令,可以在指令碼編輯器中看到該命令。
表格框資料
在建立表框工作表物件時,我們將看到從內聯資料載入選項讀取的資料。
QlikView - Resident 載入
QlikView 可以載入其 RAM 中已存在的表中的資料,這些資料已由指令碼處理。當您想要建立一個從同一指令碼中已存在的表派生資料的表時,就會出現此需求。請注意,新表和現有表都應在同一指令碼中。
建立載入指令碼
開啟指令碼編輯器(或使用 Ctrl+E)並提及以下指令碼。這裡我們建立一個名為Regions的內聯表,其中包含不同地區的銷售資料。然後,我們建立另一個名為Total的表來計算按地區名稱計算的總銷售額。最後,我們刪除表 Regions,因為在這個 .qvw 檔案中,我們只需要名為Total的表進行資料分析。
表格框資料
在建立表框工作表物件時,我們將看到從駐留資料載入選項讀取的資料。
QlikView - 前置載入
QlikView 前載入是一種載入型別,其中我們使用一個載入語句,該語句採用同一指令碼中另一個載入語句的列。由第一個載入語句讀取的資料位於指令碼編輯器視窗的底部,然後由其上方的載入語句使用。
載入指令碼
下面給出的螢幕截圖顯示了資料的指令碼,這些資料作為內聯資料載入,然後將 max 函式應用於其中一列。底部的載入語句使資料在 QlikView 的記憶體中可用,供其上方的第二個載入語句使用。第二個載入語句使用 group by 子句應用 max 函式。
表格框資料
在建立表框工作表物件時,我們將看到從內聯資料載入選項讀取的資料。
QlikView - 增量載入
隨著 QlikView 文件資料來源中資料量的增加,載入檔案所需的時間也會增加,這會減慢分析過程。最小化載入資料所需時間的其中一種方法是僅載入源中新的或更新的記錄。僅將源中的新記錄或更改的記錄載入到 QlikView 文件中的這一概念稱為增量載入。
要識別源中的新記錄,我們使用順序唯一鍵或每行的日期時間戳。唯一鍵或資料時間欄位的值必須從原始檔流向 QlikView 文件。
讓我們考慮以下包含零售店產品詳細資訊的原始檔。將其另存為 .csv 檔案,儲存在本地系統中,以便 QlikView 可以訪問。一段時間後,會新增更多產品,並且一些產品的描述會發生變化。
Product_Id,Product_Line,Product_category,Product_Subcategory 1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities 2,"Food, Beverages & Tobacco",Food Items,Fruits & Vegetables 3,Apparel & Accessories,Clothing,Uniforms 4,Sporting Goods,Athletics,Rugby 5,Health & Beauty,Personal Care 6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments 7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories 8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials 9,Hardware,Tool Accessories,Power Tool Batteries 10,Home & Garden,Bathroom Accessories,Bath Caddies 11,"Food, Beverages & Tobacco",Food Items,Frozen Vegetables 12,Home & Garden,Lawn & Garden,Power Equipment
將資料載入到 QlikView 中
我們將使用指令碼編輯器 (Ctrl+E) 透過選擇“表文件”選項載入上述 CSV 檔案,如下所示。在這裡,我們還將資料儲存到本地系統中的 QVD 檔案中。將 QlikView 文件另存為 .qvw 檔案。
驗證載入的資料。
我們可以透過建立一個名為表框的工作表物件來檢查載入到 QlikView 文件中的資料。它位於“佈局”選單和“新建工作表物件”子選單中。
建立表佈局
選擇表框工作表物件後,我們將進入下一個螢幕,該螢幕用於選擇列及其在要建立的表中的位置。我們選擇以下列及其位置,然後單擊“完成”。
檢視現有資料
將顯示以下圖表,其中顯示了上一步中佈局的資料。
更新源資料
讓我們向源資料中再新增以下三個記錄。這裡,產品 ID 是表示新記錄的唯一編號。
13,Office Supplies,Presentation Supplies,Display 14,Hardware,Tool Accessories,Jigs 15,Baby & Toddler,Diapering,Baby Wipes
增量載入指令碼
現在,我們編寫指令碼以僅從源中提取新記錄。
// Load the data from the stored qvd. Stored_Products: LOAD Product_Id, Product_Line, Product_category, Product_Subcategory FROM [E:\Qlikview\data\products.qvd] (qvd); //Select the maximum value of Product ID. Max_Product_ID: Load max(Product_Id) as MaxId resident Stored_Products; //Store the Maximum value of product Id in a variable. Let MaxId = peek('MaxId',-1); drop table Stored_Products; //Pull the rows that are new. NewProducts: LOAD Product_Id,Product_Line, Product_category,Product_Subcategory from [E:\Qlikview\data\product_categories.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) where Product_Id > $(MaxId); //Concatenate the new values with existing qvd. Concatenate LOAD Product_Id,Product_Line, Product_category, Product_Subcategory FROM [E:\Qlikview\data\products.qvd](qvd); //Store the values in qvd. store NewProducts into [E:\Qlikview\data\products.qvd](qvd);
上述指令碼僅提取載入並存儲到 qvd 檔案中的新記錄。正如我們所看到的,記錄具有新的產品 ID 13、14 和 15。
QlikView - 資料檔案 (QVD)
QlikView 的重要功能之一,使其如此與眾不同的是能夠以非常壓縮的大小儲存大量資料,並將其與 QlikView 文件一起儲存。因此,一旦建立了文件,我們就不需要連線到資料來源,因為資料已與文件的佈局一起儲存。這是透過 QVD 檔案實現的,QVD 檔案是使用 .qvd 副檔名儲存的平面檔案。一個 QVD 檔案儲存一個 QlikView 文件的資料,並且它是使用 QlikView 文件中提供的指令碼編輯器建立的。
使用 QVD 檔案的優勢
在 QlikView 中使用 QVD 檔案的優勢如下:
- 更快的載入資料速度
- 隨著資料量的增長,優雅地支援擴充套件
- 用於增量載入
- 可以將來自多個來源的資料合併到一個數據集
- 並行提取資料
建立 QVD 檔案
QVD 檔案是在載入 QlikView 檔案期間使用 STORE 語句建立的。此語句建立一個單個 qvd 檔案,該檔案將作為檔案儲存在指定位置;與建立它的 QVW 檔案分開儲存。
下面給出了一個在將資料載入到 QlikView 文件(透過讀取原始檔)後儲存 qvd 檔案的示例。
使用 QVD 檔案
載入 QVD 檔案到 QlikView 文件的方式與使用其他檔案(如 CSV、Excel 和分隔符檔案)類似。我們使用“檔案”選單下提供的“開啟”選項,並瀏覽之前建立的 QVD 檔案。開啟後,它將提供一個視窗來檢視資料、選擇列標題並執行任何所需的資料轉換。
QVD 檔案載入器指令碼
單擊“完成”後,將出現編輯指令碼視窗,其中顯示用於載入 QVD 檔案的程式碼。我們可以進一步編輯此程式碼。例如,僅獲取要顯示的幾列或應用任何內建函式等。單擊“完成”將檔案載入到當前 QlikView 文件中。將 QlikView 文件另存為use_qvd.qvw。
顯示來自 QVD 檔案的資料
使用Ctrl+R重新載入文件,並選擇選單選項佈局→新建工作表物件→表框。將出現一個視窗,顯示 QVD 檔案中存在的表中的所有列。選擇“全部新增”將所有列新增到顯示錶中。使用“提升/降級”選項更改列的順序。單擊“完成”。將顯示以下螢幕,其中顯示了 QVD 檔案的內容。
QlikView - 工作表和物件
每個 QlikView 文件至少包含一個名為Main的工作表。我們可以新增更多工作表,這些工作表就像同一個 QlikView 文件的多個頁面。工作表幫助我們顯示多種資料格式,例如多個圖表或多個表格。每個工作表可以包含各種工作表物件。此外,可以使用提升工作表/降級工作表選項重新排列工作表,並可以使用刪除工作表選項從 QlikView 文件中刪除工作表。
工作表屬性
工作表具有各種可以設定以自定義工作表的屬性。例如,我們可以設定工作表的名稱及其顏色。右鍵單擊工作表中的任意位置,然後選擇“屬性”選項。然後選擇以下屬性。
工作表設定→顏色。- 這將設定工作表的背景顏色。
選項卡設定→自定義顏色。- 這將設定工作表名稱顯示的選項卡的顏色。
標題。- 這將設定工作表的名稱。
建立工作表物件
工作表物件是嵌入到工作表中的 QlikView 資料元素。它們顯示載入到 QlikView 記憶體中的資料。每個工作表物件都與資料來源及其一個或多個列繫結。工作表物件從佈局選單建立,如下所示。
使用工作表物件
工作表物件顯示來自資料來源的資料,並且工作表中的所有物件相互關聯。讓我們建立一個列表框和一個多選框,並在操作中檢視此關聯。
建立列表框
列表框顯示 QlikView 記憶體中可用表的一列中的資料。從“新增工作表物件”選項中選擇列表框選項,並設定如下所示的屬性。
建立多選框
多選框表示來自表中多列的資料。從“新增工作表物件”選項中選擇多選框選項,並設定如下所示的屬性。
完成上述步驟後,將出現以下視窗,其中顯示了這兩個物件。
工作表物件之間的關聯
我們可以透過從多選框中選擇一個選項來檢視工作表物件如何相互連結,該選項突出顯示列表框中的關聯行。讓我們在多選框中的“產品類別”下拉列表中選擇“紙尿褲”。將顯示如下所示的視窗。
QlikView - 指令碼
指令碼編寫是 QlikView 中一項非常強大的功能,它可以控制資料載入選項和資料轉換。它支援使用 QlikView 中提供的許多內建函式,並建立可在 QlikView 文件中的多個指令碼中使用的子例程。
指令碼編寫是使用指令碼編輯器完成的。可以透過“檔案”選單中的指令碼編輯器訪問它。我們也可以按Ctrl+E開啟指令碼編輯器視窗。它預填充了一些資料格式,這些格式被設定為要處理資料的預設格式。例如,千位分隔符是逗號,日期格式為月-日-年。可以根據需要更改這些格式以適合傳入的資料。
指令碼編輯器功能
指令碼編輯器具有許多功能,可以透過指令碼編輯器視窗中的選單訪問,該選單與主選單不同。以下是重要功能列表。
檔案選單
重新載入 - 重新載入指令碼並獲取新資料。
大小寫轉換 - 轉換單詞的大小寫,因為QlikView區分大小寫。
註釋 - 用於註釋程式碼塊。
編輯選單
清除整個指令碼 - 清除活動指令碼選項卡。
開啟指令碼檔案 - 開啟儲存的指令碼檔案。
表格檢視器 - 用於檢視正在載入資料的表格檢視。
插入選單
環境變數 - 插入標準的環境變數列表。
指令碼檔案 - 允許瀏覽指令碼檔案並插入它們。
連線/斷開連線語句 - 用於連線或斷開外部資料庫的連線。
選項卡選單
插入選項卡 - 在當前游標位置插入選項卡。
提升/降低選項卡 - 允許將選項卡從左向右移動,反之亦然。
與前一個合併 - 用於將活動標籤的內容與前一個選項卡合併。
工具選單
ODBC管理員64位/ODBC管理員32位 - 允許為資料來源設定正確的DSN資訊。
編輯器首選項 - 允許您配置文字字型和大小、幫助功能、快捷方式、預設指令碼引擎等。
語法檢查 - 用於驗證指令碼程式碼的語法。
QlikView - 函式
QlikView有許多內建函式,可用於應用於記憶體中已有的資料。這些函式被組織成許多類別,並且一旦選擇函式,其語法就會顯示出來。我們可以點選“貼上”按鈕將表示式貼上到編輯器中並提供引數。
建立表格框
按照下面螢幕截圖中顯示的選單建立表格框。
完成上述步驟後,我們會看到一個視窗,在左下方顯示計算條件。
函式列表
點選計算條件旁邊的按鈕,然後轉到“函式”選項卡。它顯示了可用的函式列表。
從函式類別中選擇字串,我們只能看到少數幾個將字串作為引數的函式。
在接下來的章節中,我們將看到許多重要函式的使用。
QlikView - IntervalMatch
QlikView IntervalMatch是一個強大的函式,用於將不同的數值與數值區間匹配。它有助於分析事件的實際發生情況與計劃事件之間的差異。一個使用它的場景示例是生產廠房的裝配線,其中皮帶計劃在特定時間執行並持續特定時間。但是,由於故障等原因,實際執行可能發生在不同的時間點。
示例
考慮一條裝配線,其中有三個名為A、B和C的皮帶。它們計劃在一天中的特定時間開始和停止。在給定的一天,我們研究實際的開始和結束時間,並分析當天發生的所有事情。為此,我們考慮如下所示的兩組觀察結果。
# Data Set for AssembilyLine. StartTime,EndTime, BeltNo 00:05,4:20, A 1:50,2:45,B 3:15,10:30,C # Data set for the events happened. ActualTime,Product 1:10,Start Belt A 2:24,Stop Belt A 3:25,Restart Belt A 4:35,Stop Belt A 2:20,Start Belt B 3:11, Stop Belt B 3:15,Start Belt C 11:20, Stop Belt C
建立指令碼
我們使用Ctrl+E在新的QlikView文件中開啟指令碼編輯器。以下程式碼建立所需的表格作為內聯資料。建立此指令碼後,按Ctrl+R將資料重新載入到QlikView文件中。
建立工作表物件
讓我們建立一個表格框工作表物件來顯示IntervalMatch函式生成的資料。轉到選單項佈局→新建工作表物件→表格框。將出現以下視窗,在其中我們提到表格的標題並選擇要顯示的所需欄位。
顯示錶格框
在上述視窗中點選“確定”後,將出現一個表格,顯示與區間StartTime和EndTime匹配的欄位ActualTime。
QlikView - 聚合函式
QlikView聚合函式用於從表格的行生成聚合資料。在建立載入指令碼時,這些函式應用於列。下面是一個聚合函式的示例列表。在應用聚合函式時,我們還需要適當地應用分組依據子句。
- SUM給出列的數值之和。
- AVG給出列的數值的平均值。
- MAX給出列的數值的最大值。
- MIN給出列的數值的最小值。
示例
考慮以下資料儲存在本地系統中的product_sales.csv檔案中。它表示商店中不同產品線和產品類別的銷售資料。
Product_Line,Product_category,Quantity,Value Sporting Goods,Outdoor Recreation,12,5642 Food, Beverages & Tobacco,38,2514 Apparel & Accessories,Clothing,54,2365 Apparel & Accessories,Costumes & Accessories,29,4487 Sporting Goods,Athletics,11,812 Health & Beauty,Personal Care,21,6912 Arts & Entertainment,Hobbies & Creative Arts,58,5201 Arts & Entertainment,Paintings,73,8451 Arts & Entertainment,Musical Instruments,41,1245 Hardware,Tool Accessories,2,456 Home & Garden,Bathroom Accessories,36,241 Food,Drinks,54,1247 Home & Garden,Lawn & Garden,29,5462 Office Supplies,Presentation Supplies,22,577 Hardware,Blocks,53,548 Baby & Toddler,Diapering,19,1247
建立載入指令碼
我們使用Ctrl+E在新的QlikView文件中開啟指令碼編輯器。以下程式碼建立所需的表格作為內聯資料。建立此指令碼後,按Ctrl+R將資料重新載入到QlikView文件中。
建立工作表物件
讓我們建立一個表格框工作表物件來顯示聚合函式生成的資料。轉到選單佈局→新建工作表物件→表格框。將出現以下視窗,在其中我們提到表格的標題並選擇要顯示的所需欄位。點選“確定”將在QlikView表格框中顯示來自CSV檔案的資料,如下所示。
應用SUM()函式
以下是查詢產品線和產品類別銷售數量和銷售額之和的載入指令碼。
點選“確定”並按Ctrl+R將資料重新載入到QlikView文件中。現在按照上面在“建立工作表物件”中給出的相同步驟建立QlikView表格框以顯示指令碼的結果,如下所示。
應用AVG()函式
以下是建立每個產品線銷售數量和銷售額平均值的載入指令碼。
# Average sales of Quantity and value in each Product Line. LOAD Product_Line, avg(Quantity), avg(Value) FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) Group by Product_Line;
點選“確定”並按Ctrl+R將資料重新載入到QlikView文件中。現在按照上面在“建立工作表物件”中給出的相同步驟建立QlikView表格框以顯示指令碼的結果,如下所示。
應用MAX() & MIN()函式
以下是建立每個產品線銷售數量的最大值和最小值的載入指令碼。
# Maximum and Minimum sales in each product Line. LOAD Product_Line, max(Quantity) as MaxQuantity, min(Quantity) as MinQuantity FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) Group by Product_Line;
點選“確定”並按Ctrl+R將資料重新載入到QlikView文件中。現在按照上面在“建立工作表物件”中給出的相同步驟建立QlikView表格框以顯示指令碼的結果,如下所示。
QlikView - Match 函式
QlikView中的Match()函式用於將表示式的字串值與列中存在的資料值匹配。它類似於我們在SQL語言中看到的in函式。它有助於獲取包含特定字串的行,並且它還以wildmatch()函式的形式擴充套件。
讓我們考慮以下資料作為下面說明的示例的輸入檔案。
Product_Id,Product_Line,Product_category,Product_Subcategory 1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities 2,Food, Beverages & Tobacco,Food Items,Fruits & Vegetables 3,Apparel & Accessories,Clothing,Uniforms 4,Sporting Goods,Athletics,Rugby 5,Health & Beauty,Personal Care 6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments 7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories 8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials 9,Hardware,Tool Accessories,Power Tool Batteries 10,Home & Garden,Bathroom Accessories,Bath Caddies 11,Food, Beverages & Tobacco,Food Items,Frozen Vegetables 12,Home & Garden,Lawn & Garden,Power Equipment 13,Office Supplies,Presentation Supplies,Display 14,Hardware,Tool Accessories,Jigs 15,Baby & Toddler,Diapering,Baby Wipes
帶有Match()函式的載入指令碼
以下指令碼顯示了載入指令碼,該指令碼讀取名為product_categories.csv的檔案。我們在Product_Line欄位中搜索與字串“Food”和“Sporting Goods”匹配的值。
建立工作表物件
讓我們建立一個表格框工作表物件來顯示match函式生成的資料。轉到選單佈局→新建工作表物件→表格框。將出現以下視窗,在其中我們提到表格的標題,然後選擇要顯示的所需欄位。點選“確定”將在QlikView表格框中顯示來自CSV檔案的資料,如下所示。
帶有Wildmatch()函式的載入指令碼
wildmatch()函式是match()函式的擴充套件,我們可以在其中使用萬用字元作為字串的一部分,以將值與正在搜尋的欄位中的值匹配。我們搜尋字串“Off*”、“*ome*”。
建立工作表物件
讓我們建立一個表格框工作表物件來顯示wildmatch函式生成的資料。轉到選單項佈局→新建工作表物件→表格框。將出現以下視窗,在其中我們提到表格的標題,然後選擇要顯示的所需欄位。點選“確定”將在QlikView表格框中顯示來自CSV檔案的資料,如下所示。
QlikView - Rank 函式
QlikView中的Rank()函式用於顯示欄位中值的排名以及返回具有特定排名值的行。因此,它用於兩種場景。第一種場景是在QlikView圖表中顯示欄位中值的排名,第二種場景是在聚合函式中僅顯示具有特定排名值的行。
輸入資料
描述Rank函式的示例中使用的資料如下所示。您可以將其儲存為系統中某個路徑下的.csv檔案,QlikView可以訪問該路徑。
Product_Id,Product_Line,Product_category,Quantity,Value 1,Sporting Goods,Outdoor Recreation,12,5642 2,Food, Beverages & Tobacco,38,2514 3,Apparel & Accessories,Clothing,54,2365 4,Apparel & Accessories,Costumes & Accessories,29,4487 5,Sporting Goods,Athletics,11,812 6,Health & Beauty,Personal Care,21,6912 7,Arts & Entertainment,Hobbies & Creative Arts,58,5201 8,Arts & Entertainment,Paintings,73,8451 9,Arts & Entertainment,Musical Instruments,41,1245 10,Hardware,Tool Accessories,2,456 11,Home & Garden,Bathroom Accessories,36,241 12,Food,Drinks,54,1247 13,Home & Garden,Lawn & Garden,29,5462 14,Office Supplies,Presentation Supplies,22,577 15,Hardware,Blocks,53,548 16,Baby & Toddler,Diapering,19,1247 17,Baby & Toddler,Toys,9,257 18,Home & Garden,Pipes,81,1241 19,Office Supplies,Display Board,29,2177
載入指令碼
上述資料透過使用指令碼編輯器載入到QlikView記憶體中。從“檔案”選單開啟“指令碼編輯器”,或按Ctrl+E。從“從檔案獲取資料”選項卡中選擇“表格檔案”選項,並瀏覽包含上述資料的檔案。點選“確定”並按Ctrl+R將資料載入到QlikView的記憶體中。
使用Rank()函式建立圖表
接下來,我們按照以下步驟建立一個圖表,該圖表顯示了關於維度Product_Line描述的欄位Value的排名。
選擇圖表型別
點選圖表嚮導並選擇直線表作為圖表型別。點選“下一步”。
選擇圖表維度
從第一個維度下拉列表中,選擇Product_Line作為維度。點選“下一步”。
定義圖表表示式
在自定義表示式欄位中,提及如下所示的排名表達式。這裡我們考慮名為Value的數值欄位,它表示每個產品線下每個類別的銷售額。點選“下一步”。
顯示圖表
在上述步驟中點選“完成”後,將出現以下圖表,顯示每個產品線的銷售額排名。
將聚合函式與Rank一起使用
像max、min等聚合函式可以將rank作為引數來返回滿足某些排名值的行。我們認為以下表達式將在指令碼編輯器中輸出,這將給出每個產品線下銷售額最高的行。
# Load the records with highest sales value for each product line. LOAD Product_Line, max(Value,1) FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) group by Product_Line;
建立工作表物件
讓我們建立一個**表格框**工作表物件來顯示上面給定指令碼生成的資料。轉到選單**佈局 → 新建工作表物件 → 表格框**。將出現以下視窗,在其中我們提及表格的標題並選擇要顯示的所需欄位。單擊“確定”將在 QlikView 表格框中顯示來自 CSV 檔案的資料,如下所示。
QlikView - Peek 函式
QlikView 中的**peek()**函式用於獲取欄位在上一條記錄中的值並在計算中使用它。
輸入資料
讓我們考慮如下所示的月度銷售額資料。將資料儲存為名為 monthly_sales.csv 的檔案。
Month,Sales Volume March,2145 April,2458 May,1245 June,5124 July,7421 August,2584 September,5314 October,7846 November,6532 December,4625 January,8547 February,3265
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從包含以上資料的檔案的**表格檔案**選項中選擇。編輯載入指令碼以新增以下程式碼。單擊**確定**並單擊**Ctrl+R**將資料載入到 QlikView 的記憶體中。
LOAD Month, [Sales Volume], peek('Sales Volume') as Prevmonth FROM [C:\Qlikview\data\monthly_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立工作表物件
讓我們建立一個**表格框**工作表物件來顯示上面給定指令碼生成的資料。轉到選單項**佈局 → 新建工作表物件 → 表格框**。將出現以下視窗,在其中我們提及表格的標題並選擇要顯示的所需欄位。單擊“確定”將在 QlikView 表格框中顯示來自 csv 檔案的資料,如下所示。還可以按如下所示設定排序順序,以便使結果與欄位**月份**在源中的順序相同。
完成以上步驟並單擊**完成**後,我們將獲得顯示如下所示資料的表格框。
在計算中使用 peek() 函式
**peek()**可以用於涉及其他列的計算。讓我們顯示每個月的銷售額變化百分比。以下指令碼實現了此結果。
LOAD Month, [Sales Volume], peek('Sales Volume') as Prevvolume, (([Sales Volume]-peek('Sales Volume')))/peek('Sales Volume')*100 as Difference FROM [C:\Qlikview\data\monthly_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立工作表物件
讓我們建立一個**表格框**工作表物件來顯示上面給定指令碼生成的資料。轉到選單項**佈局 → 新建工作表物件 → 表格框**。將出現以下視窗,在其中我們提及表格的標題並選擇要顯示的所需欄位。單擊“確定”將在 QlikView 表格框中顯示來自 CSV 檔案的資料,如下所示。
QlikView - RangeSum 函式
QlikView 中的**RangeSum()**函式用於對選定的欄位進行選擇性求和,這不容易透過 sum 函式實現。它可以接受包含其他函式的表示式作為其引數,並返回這些表示式的總和。
輸入資料
讓我們考慮如下所示的月度銷售額資料。將資料儲存為名為 monthly_sales.csv 的檔案。
Month,Sales Volume March,2145 April,2458 May,1245 June,5124 July,7421 August,2584 September,5314 October,7846 November,6532 December,4625 January,8547 February,3265
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從**從檔案匯入資料**選項卡中選擇**表格檔案**選項,並瀏覽到包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。單擊**確定**並單擊**Ctrl+R**將資料載入到 QlikView 的記憶體中。
LOAD Month, [Sales Volume] FROM [C:\Qlikview\data\monthly_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
應用 RangeSum() 函式
將以上資料載入到 QlikView 的記憶體後,我們編輯指令碼以新增一個新列,該列將提供按月銷售額的滾動總和。為此,我們還藉助前面章節中討論的 peek 函式來儲存上一條記錄的值,並將其新增到當前記錄的銷售額中。以下指令碼實現了結果。
LOAD Month, [Sales Volume], rangesum([Sales Volume],peek('Rolling')) as Rolling FROM [C:\Qlikview\data\monthly_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立工作表物件
讓我們建立一個**表格框**工作表物件來顯示上面給定指令碼生成的資料。轉到選單**佈局 → 新建工作表物件 → 表格框**。
將出現以下視窗,在其中我們提及表格的標題並選擇要顯示的所需欄位。單擊“確定”將在 QlikView 表格框中顯示來自 CSV 檔案的資料,如下所示。
QlikView - 文件
QlikView 文件是包含用於資料展示和分析的所有物件的的檔案。它包含工作表、變數、資料模型、源資料連線詳細資訊,甚至從源提取後加載的資料。
文件屬性
我們可以快速瞭解 QlikView 文件的基本資訊。點選**幫助 → 文件支援資訊**。下面是一個示例輸出。
設定文件背景影像
我們可以使用**通用**選項卡下的**牆紙影像**複選框將影像設定為文件的背景影像。我們選擇一個影像,並使用下拉按鈕將其對齊到左上角位置。
選擇以上選項後將出現以下螢幕。
工作表物件
QlikView 文件包含各種工作表物件,可以透過拖動它們來移動並在文件中的任何位置放置。讓我們建立兩個工作表物件,一個**表格框**和一個**統計框**。您可以參考前面的章節,我們已經學習瞭如何建立工作表物件。此外,我們使用檔案 Product_sales.csv,此處有說明。
可以使用“工作表”選項卡檢視工作表物件的詳細資訊。它顯示文件中包含的所有工作表,以及每個工作表顯示的工作表物件。工作表和工作表物件都具有唯一的 ID。我們也可以從此選項卡本身編輯這些物件的各種屬性。
計劃文件
可以計劃 QlikView 文件以在某些所需間隔重新整理。這是使用文件屬性視窗中提供的**計劃**選項卡完成的。
QlikView - 列表框
**列表框**表示特定欄位的所有值的列表。在列表框中選擇一個值會突出顯示其他工作表物件中的相關值。這有助於更快的視覺分析。它對於在各種工作表物件之間遵循鑽取路徑也非常有用。它還有一個搜尋功能,允許在列表框中搜索特定值,這對於非常長的值列表非常有用。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從**從檔案匯入資料**選項卡中選擇**表格檔案**選項,並瀏覽到包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。單擊**確定**並單擊**Ctrl+R**將資料載入到 QlikView 的記憶體中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立列表框
建立**列表框**涉及瀏覽選單**佈局 → 新建工作表物件 → 列表框**。以下螢幕顯示了這些步驟。
接下來,我們選擇產品類別作為構建列表框的欄位。
列表框資料
完成以上步驟將顯示以下螢幕,其中顯示產品類別作為列表框的值。
列表框中的搜尋選項
當列表框包含大量值時,向下滾動並查詢它會很困難。因此,可以使用列表框頂部的搜尋框鍵入搜尋字串。鍵入第一個字母后,相關值就會立即顯示。
列表框和關聯
其他工作表物件會自動與列表框關聯,並且可以透過從列表框中選擇值輕鬆觀察到關聯。
QlikView - 多選框
**多選框**表示來自多個欄位的所有值的列表,作為下拉值。與列表框類似,在多選框中選擇一個值會突出顯示其他工作表物件中的相關值。這有助於更快的視覺分析。它對於在各種工作表物件之間遵循鑽取路徑也非常有用。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從**從檔案匯入資料**選項卡中選擇**表格檔案**選項,並瀏覽到包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。單擊**確定**並單擊**Ctrl+R**將資料載入到 QlikView 的記憶體中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立多選框
建立多選框涉及瀏覽選單**佈局 → 新建工作表物件 → 多選框**。以下螢幕顯示了這些步驟。
接下來,我們選擇產品銷售表的欄位來構建多選框。
多選框資料
完成以上步驟將顯示以下螢幕,其中顯示產品類別作為多選框的值。
多選框和關聯
其他工作表物件會自動與多選框關聯,並且可以透過從多選框中選擇值輕鬆觀察到關聯。
QlikView - 文字物件
QlikView **文字物件**用於顯示有關正在顯示的 QlikView 報表的一些描述性資訊。它還可以顯示基於某些表示式的計算結果。它主要用於使用顏色和不同字型型別在與其他工作表物件分開的框中顯示格式良好的資訊。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從“從檔案匯入資料”選項卡中選擇“表格檔案”選項,並瀏覽到包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。單擊“確定”並按“Ctrl+R”將資料載入到 QlikView 的記憶體中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立表格框
對於以上資料,讓我們建立一個**表格框**,它將以表格形式顯示資料。轉到選單**佈局 → 新建工作表物件 → 表格框**並選擇如下所示的列。
單擊**應用**,然後單擊**確定**以完成建立表格框。將出現以下螢幕。
建立文字物件
對於以上資料,讓我們建立一個**文字物件**。轉到選單**佈局 → 新建工作表物件 → 文字物件**,如下所示。
建立文字物件表示式
在上面建立的文字框上,右鍵單擊並選擇屬性。然後在“通用”選項卡下的“文字”框中輸入要在文字物件上顯示的內容,如下所示。
選擇背景顏色
可以使用“通用”選項卡中的背景選項設定文字物件的背景顏色。
文字物件
最終的文字物件如下所示。如果我們單擊某個產品線進行篩選,則文字物件中的內容會相應更改以反映新值。
QlikView - 條形圖
條形圖是一種非常廣泛使用的圖表方法,用於以條形形式研究兩個維度之間的關係。圖表中條形的高度表示一個維度的值。條形的數量表示另一個維度的值序列或分組值。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從檔案選單開啟指令碼編輯器或按Ctrl+E。從“從檔案獲取資料”選項卡中選擇“表格檔案”選項,並瀏覽包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。點選“確定”並按“Ctrl+R”將資料載入到 QlikView 的記憶體中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
建立表格框(工作表物件)
對於以上資料,讓我們建立一個表格框,它將以表格形式顯示資料。轉到選單佈局 → 新建工作表物件 → 表格框,並選擇如下所示的列。
點選應用,然後點選確定以完成表格框的建立。將顯示如下所示的螢幕。
使用快速圖表嚮導
要開始建立條形圖,我們將使用快速圖表嚮導。點選它後,將出現以下螢幕,提示選擇圖表型別。選擇條形圖,然後點選下一步。
選擇圖表維度
選擇產品線作為第一個維度。
選擇圖表表示式
圖表表示式用於對具有數值的欄位應用求和、平均值或計數等函式。我們將對名為 Value 的欄位應用求和函式。點選下一步。
選擇圖表格式
圖表格式定義圖表的樣式和方向。我們在每個類別中選擇第一個選項。點選下一步。
條形圖
條形圖如下所示。它顯示了不同產品線的欄位值的條形高度。
QlikView - 餅圖
餅圖是將值表示為不同顏色的圓形切片。切片已標記,並且每個切片對應的數字也顯示在圖表中。QlikView 使用圖表嚮導或圖表工作表物件建立餅圖。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從“從檔案匯入資料”選項卡中選擇“表格檔案”選項,並瀏覽到包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。單擊“確定”並按“Ctrl+R”將資料載入到 QlikView 的記憶體中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
使用快速圖表嚮導
要開始建立餅圖,我們將使用快速圖表嚮導。點選它後,將出現以下螢幕,提示選擇圖表型別。選擇餅圖,然後點選下一步。
選擇圖表維度
選擇產品線作為第一個維度。
選擇圖表表示式
圖表表示式用於對具有數值的欄位應用求和、平均值或計數等函式。我們將對名為 Value 的欄位應用求和函式。點選下一步。
選擇圖表格式
圖表格式定義圖表的樣式和方向。我們選擇第三個選項。點選下一步。
餅圖
條形圖如下所示。它顯示了不同產品線的欄位值的條形高度。
QlikView - 儀表盤
儀表盤是一個強大的功能,可以同時顯示許多欄位中的值。QlikView 的記憶體中資料關聯功能可以在所有工作表物件中顯示動態值。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器或按**Ctrl+E**。從“從檔案匯入資料”選項卡中選擇“表格檔案”選項,並瀏覽到包含以上資料的檔案。編輯載入指令碼以新增以下程式碼。單擊“確定”並按“Ctrl+R”將資料載入到 QlikView 的記憶體中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
選擇矩陣
我們從以上輸入資料中選擇欄位作為要顯示在儀表盤中的矩陣。為此,我們按照選單佈局 → 選擇欄位中的步驟操作。
在下一個螢幕中,選擇要在儀表盤中顯示的可用欄位。點選“確定”。
以下螢幕顯示所有欄位
將圖表新增到儀表盤
現在,我們透過右鍵單擊工作表中的任意位置並選擇新建工作表物件 → 圖表來將圖表新增到儀表盤。
選擇圖表型別
讓我們選擇條形圖作為圖表型別,以顯示各種產品線的銷售值。
圖表維度
讓我們選擇產品線作為圖表維度。
圖表表示式
用於顯示產品線維度銷售值的表示式在表示式編輯器中編寫。
儀表盤
以下是完成以上步驟後顯示的儀表盤。
使用儀表盤
可以選中以上儀表盤中的值以篩選特定產品,並且圖表會相應更改。此外,相關值也會突出顯示。
QlikView - 資料轉換
資料轉換是將現有資料修改為新資料格式的過程。它還可以包括過濾掉或向現有資料集新增一些特定值。QlikView 可以在讀取資料到記憶體後並使用許多內建函式執行資料轉換。
輸入資料
讓我們考慮以下輸入資料,它表示每個月的銷售額。它儲存為一個名為 quarterly_sales.csv 的 csv 檔案。
Month,SalesVolume March,2145 April,2458 May,1245 Sales Values in Q2 June,5124 July,7421 August,2584 Sales Values in Q3 September,5314 October,7846 November,6532 December,4625 January,8547 February,3265
載入資料
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從檔案選單開啟指令碼編輯器或按Ctrl+E。從“從檔案獲取資料”選項卡中選擇“表格檔案”選項,並瀏覽檔案 quarterlt_sales.csv。點選下一步。
轉換向導
下一個螢幕提示我們選擇一些資料轉換。點選啟用轉換步驟按鈕。
轉換型別
在此步驟中,我們將選擇轉換以消除描述季度的行。我們選擇垃圾 → 刪除標記並選擇不需要的兩行。點選下一步。
檔案嚮導選項
選擇轉換型別和要刪除的行後,下一個螢幕將提示我們進行任何進一步的轉換,例如選擇 where 子句或新增任何字首。我們將忽略此步驟並點選完成。
轉換後資料的載入指令碼
完成所有轉換步驟後,以上資料的載入指令碼如下所示。
顯示轉換後的資料
可以使用表格框工作表物件顯示轉換後的資料。建立它的步驟如下所示。
接下來,我們選擇表格框的欄位。
表格框現在在工作表中顯示資料。
QlikView - Fill 函式
QlikView 中的填充函式用於將現有欄位中的值填充到新欄位中。
輸入資料
讓我們考慮以下輸入資料,它表示實際和預測的銷售額。
Month,Forecast,Actual March,2145,2247 April,2458, May,1245, June,5124,3652 July,7421,7514 August,2584, September,5314,4251 October,7846,6354 November,6532,7451 December,4625,1424 January,8547,7852 February,3265,
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從檔案選單開啟指令碼編輯器或按Ctrl+E。從“從檔案獲取資料”選項卡中選擇“表格檔案”選項,並瀏覽包含以上資料的檔案。
在以上步驟中點選下一步後,我們選擇啟用轉換步驟按鈕以執行所需的資料轉換。
選擇資料轉換
由於我們將使用填充函式,因此讓我們選擇填充選項卡,該選項卡在實際欄位下顯示空值。
建立填充條件
點選填充按鈕後,將出現選擇目標列和單元格條件的選項。我們選擇第三列,因為我們希望用第二列中同一行的值填充此列的空值。此外,選擇單元格值為“空”,以便僅將空單元格覆蓋為新值。
轉換後的資料
完成以上步驟後,我們將獲得如下所示的轉換後的資料。
轉換後資料的載入指令碼
可以使用指令碼編輯器檢視轉換後資料的載入指令碼。該指令碼顯示了替換空單元格值的表示式。
顯示轉換後的資料
可以透過使用選單佈局 → 新建工作表物件中的選項建立表格框來檢視轉換後的資料。
QlikView - 列操作
列操作是一種資料轉換型別,其中新列將填充來自現有列的值,該列滿足某些條件。條件可以是作為資料轉換步驟的一部分建立的表示式。
輸入資料
讓我們考慮以下輸入資料,它表示實際和預測的銷售額。
Month,Forecast,Actual March,2145,2247 April,2458,2125 May,1245,2320 June,5124,3652 July,7421,7514 August,2584,3110 September,5314,4251 October,7846,6354 November,6532,7451 December,4625,1424 January,8547,7852 February,3265,2916
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從檔案選單開啟指令碼編輯器或按Ctrl+E。從“從檔案獲取資料”選項卡中選擇“表格檔案”選項,並瀏覽包含以上資料的檔案。點選下一步後,我們選擇啟用轉換步驟按鈕以執行所需的資料轉換。
選擇資料轉換
選擇列選項卡,然後選擇新建按鈕。它要求指定新列和行條件。我們將第三列指定為源列,並將以 2 開頭的值作為行條件。
轉換後的資料
完成以上步驟後,我們將獲得如下所示的轉換後的資料。
轉換後資料的載入指令碼
可以使用指令碼編輯器檢視轉換後資料的載入指令碼。該指令碼顯示了建立具有所需值的新的列的表示式。
顯示轉換後的資料
可以透過使用選單佈局 → 新建工作表物件中的選項建立表格框來檢視轉換後的資料。
QlikView - 表格旋轉
QlikView 中的旋轉表類似於 Microsoft Excel 中的列和行轉置功能,但具有一些其他選項。我們可以多方向轉置列,並且它們會產生不同的結果。在本章中,我們將瞭解將行轉換為列的常規轉置選項。
輸入資料
讓我們考慮以下輸入資料,它表示實際和預測的銷售額。
Month,Forecast,Actual March,2145,2247 April,2458, May,1245, June,5124,3652 July,7421,7514 August,2584, September,5314,4251 October,7846,6354 November,6532,7451 December,4625,1424 January,8547,7852 February,3265,
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從檔案選單開啟指令碼編輯器或按Ctrl+E。從“從檔案獲取資料”選項卡中選擇“表格檔案”選項,並瀏覽包含以上資料的檔案。
點選下一步後,我們選擇啟用轉換步驟按鈕以執行所需的資料轉換。
選擇資料轉換
由於我們將使用旋轉函式,因此讓我們選擇旋轉選項卡,該選項卡顯示所有欄位的值。
應用旋轉
我們點選轉置按鈕以轉置以上資料。轉置後的資料如下所示。
轉換後資料的載入指令碼
可以使用指令碼編輯器檢視轉換後資料的載入指令碼。該指令碼顯示了替換空單元格值的表示式。
顯示轉換後的資料
可以透過使用選單佈局 → 新建工作表物件中的選項建立表格框來檢視轉換後的資料。
QlikView - 維度和度量
維度和度量是基本實體,始終用於資料分析。例如,考慮分析的結果“每個季度的銷售量百分比變化是多少?”在這種情況下,每個季度都代表維度,即季度的名稱。銷售量的百分比變化代表度量,它是相對於維度中每個值的計算。以下是這兩個術語的一些廣泛接受的定義。
- 維度 - 資料集中描述性欄位,表示一些不同的值。例如 - 月份、年份、產品 ID 等。
- 度量 - 數值欄位,對維度每個不同的值執行一些計算。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別在不同地區的銷售量和收入。將資料儲存到 .csv 檔案中。
ProductID,ProductCategory,Region,SalesVolume, Revenue 1,Outdoor Recreation,Europe,457,25841 2,Clothing,Europe,125,54281 3,Costumes & Accessories,South Asia,781,54872 4,Athletics,South Asia,839,87361 5,Personal Care,Australia,473,15425 6,Arts & Entertainment,North AMerica,625,84151 7,Hardware,South America,772,45812
載入指令碼
以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從檔案選單開啟指令碼編輯器或按Ctrl+E。從從檔案獲取資料選項卡中選擇表格檔案選項,並瀏覽包含以上資料的檔案。點選確定並按Ctrl+R將資料載入到 QlikView 的記憶體中。
表格結構
我們可以透過以下選單檔案 → 表格檢視器或按Ctrl+T查看錶格的結構。以下螢幕出現,我們已將維度標記在綠色框內,將度量標記在紅色框內。
使用維度和度量
讓我們建立一個直線表圖表,顯示使用以上維度和度量的計算結果。點選快速圖表嚮導,如下所示。
接下來,點選直線表選項。點選下一步。
選擇維度
在此螢幕中,我們選擇區域作為維度,因為我們希望選擇每個區域的總收入。
選擇度量
下一個螢幕提示將計算應用於度量欄位。我們選擇對欄位“收入”應用**求和**。
最終圖表
完成上述步驟後,我們將獲得最終圖表,該圖表顯示每個區域(維度)的總收入(度量)。
QlikView - 星型模式
星型模式是一種資料模型,其中多個維度連結到單個事實表。當然,在更大的模型中,可以有多個事實錶鏈接到多個維度和其他事實表。這種模型的用處在於執行快速查詢,並在各種表之間進行最少的連線。事實表包含資料,這些資料是度量,並具有數值。計算應用於事實表中的欄位。維度表的唯一鍵用於將其連結到事實表,事實表通常也具有相同的欄位名稱的鍵。因此,事實表包含來自整個維度表的鍵,並形成一個用於各種查詢的連線主鍵。
輸入資料
下面列出了包含來自各種供應商和區域的不同產品的資料的表。此外,供應發生在不同的時間間隔內,這些時間間隔在時間維度表中捕獲。
產品維度
它包含產品類別和產品名稱。產品ID欄位是唯一鍵。
ProductID,ProductCategory,ProductName 1,Outdoor Recreation,Winter Sports & Activities 2,Clothing,Uniforms 3,Lawn & Garden Power, Equipment 4,Athletics,Rugby 5,Personal Care,Shaver 6,Arts & Entertainment,Crafting Materials 7,Hardware,Power Tool Batteries
區域維度
它包含供應商所在的區域名稱。RegionID欄位是唯一鍵。
RegionID,Continent,Country 3,North America, USA 7,South America, Brazil 12,Asia,China 2,Asia,Japan 5,Europe,Belgium
供應商維度
它包含供應上述產品的供應商名稱。SupplierID欄位是唯一鍵。
SupplierID,SupplierName 3S12,Supre Suppliers 4A15,ABC Suppliers 4S66,Max Sports 5F244,Nice Foods 8A45,Artistic angle
時間維度
它包含供應上述產品的時間段。TimeID欄位是唯一鍵。
TimeID,Year,Month 1,2012,Feb 2,2012,May 3,2012,Sep 4,2013,Aug 5,2014,Jan 6,2014,Nov
供應商數量事實
它包含供應數量和其中缺陷百分比的值。它透過名稱相同的鍵連線到上述每個維度。
ProductID,RegionID,TimeID,SupplierID,Quantity, DefectPercentage 1,3,3,5F244,8452,12 2,3,1,4S66,5124,8.25 3,7,1,8A45,5841,7.66 4,12,2,4A15,5123,1.25 5,5,3,4S66,7452,8.11 6,2,5,4A15,5142,3.66 7,2,1,4S66,452,2.06
載入指令碼
以上資料透過使用指令碼編輯器載入到QlikView記憶體中。從檔案選單開啟指令碼編輯器或按**Ctrl+E**。從**資料來自檔案**選項卡中選擇**表文件**選項,並瀏覽包含上述資料的檔案。單擊**確定**並按**Ctrl+R**將資料載入到QlikView的記憶體中。以下是讀取每個上述檔案後出現的指令碼。
LOAD ProductID, ProductCategory, ProductName FROM [C:\Qlikview\images\StarSchema\Product_dimension.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD TimeID, Year, Month FROM [C:\Qlikview\images\StarSchema\Time.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD SupplierID, SupplierName FROM [C:\Qlikview\images\StarSchema\Suppliers.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD RegionID, Continent, Country FROM [C:\Qlikview\images\StarSchema\Regions.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD ProductID, RegionID, TimeID, SupplierID, Quantity, DefectPercentage FROM [C:\Qlikview\images\StarSchema\Supplier_quantity.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
星型資料模型
將上述資料讀入QlikView記憶體後,我們可以檢視資料模型,該模型以星型模式的形式顯示所有表、欄位和關係。
QlikView - 合成鍵
**合成鍵**是QlikView用於在兩個表之間存在關於使用哪個鍵的歧義時建立人工鍵的解決方案。當兩個表具有兩個或多個公共欄位時,就會出現這種情況。QlikView在記憶體中建立關聯的功能會自動檢測到這種情況,並建立一個額外的表,該表將儲存建立的新鍵的值。
輸入資料
讓我們考慮以下兩個CSV資料檔案,它們用作進一步說明的輸入。
Sales: ProductID,ProductCategory,Country,SaleAmount 1,Outdoor Recreation,Italy,4579 2,Clothing,USA,4125 3,Costumes & Accessories,South Korea,6521 Product: ProductID, Country 3,Brazil 3,China 2,Korea 1,USA
載入指令碼
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按**Ctrl+E**呼叫。選擇**表文件**選項,並瀏覽輸入檔案。
資料模型
接下來,我們使用表檢視器的選單命令(Ctrl+T)檢視資料模型。出現以下螢幕,顯示建立了第三個表,該表提供合成鍵的值,因為這兩個表都具有ProductID和Country作為匹配鍵。
合成鍵的影響
合成鍵表示正在使用的資料模型中的缺陷。它們不會導致資料正確性或報表效能出現任何問題。如果大型資料模型具有一兩個合成鍵例項,則一切都會正常工作。但是,如果我們有太多這樣的鍵,那麼這暗示需要重新設計資料模型。
QlikView - 生成資料
很多時候,我們需要一些資料由正在使用的軟體以程式設計方式生成,這些資料不是來自源。例如,100個隨機數或只是一年中第23周的日期。資料分析師可能需要建立此類資料,以便對不包含這些值的資料執行一些分析,因為資料在到達時不包含這些值。QlikView提供了一個名為**Autogenerate**的功能,可用於此類需求。
資料需求
考慮一種場景,我們需要查詢的只是星期四或星期日的日期。我們需要查詢從今天開始到今年年底的範圍內的日期。我們建立以下指令碼,它將實現此目的。
解釋
我們宣告兩個變數來捕獲當前月的第一天和今年的最後一天。接下來,我們應用各種函式和篩選條件來生成所需的值。recno()函式為每個日期建立一個記錄。我們新增Autogenerate函式,將變數作為範圍。
生成的資料
將上述指令碼載入到QlikView的記憶體中並使用選單**佈局→新建工作表物件→表框**建立表框後,我們將獲得如下所示的建立資料。
QlikView - 交叉表
在分析資料時,我們會遇到希望列變成行,反之亦然的情況。這不僅僅是關於轉置,它還涉及將許多列彙總在一起或在行中多次重複許多值,以在表中實現所需的列和行佈局。
輸入資料
考慮以下輸入資料,它顯示了每個季度特定產品的區域銷售情況。我們使用以下給定資料建立一個分隔檔案(CSV)。
Quarter,Region1,Region2,Region 3 Q1,124,421,471 Q2,415,214,584 Q3,417,321,582 Q4,751,256,95
載入輸入資料
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按**Ctrl+E**呼叫。選擇**表文件**選項,並瀏覽輸入檔案。選擇以下選項後,單擊下一步。
交叉表選項
在下一個視窗(檔案嚮導→選項)中,單擊**交叉表**按鈕。它以不同的顏色突出顯示列。粉紅色表示**限定符欄位**,它將在**屬性欄位**的每個值的許多行中重複。屬性欄位下的單元格值作為資料。單擊確定。
交叉錶轉換
轉換後的資料出現在其中所有區域欄位都合併到一列中,但每個季度的值都會重複。
載入指令碼
交叉錶轉換的載入指令碼顯示以下給出的命令。
交叉表資料
使用選單**佈局→新建工作表物件→表框**建立表框工作表物件後,我們將獲得以下輸出。
QlikView - 直通表
直觀表是QlikView中使用最廣泛的工作表物件,用於顯示資料。它們非常簡單但功能強大,具有列重新排列、排序和著色背景等功能。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到QlikView記憶體中。從檔案選單開啟指令碼編輯器或按**Ctrl+E**。從“資料來自檔案”選項卡中選擇“表文件”選項,並瀏覽包含上述資料的檔案。出現以下螢幕。
單擊“確定”並按“Ctrl+R”將資料載入到QlikView的記憶體中。
建立表格框
接下來,我們建立一個新的表框型別工作表物件。我們按照以下選單所示進行操作。
選擇列
QlikView提示選擇將在最終表框中顯示的列。我們選擇所有列,並使用**提升或降級**選項設定列的順序。
選擇顯示樣式
接下來,我們選擇樣式選項卡,為顯示資料提供特定的背景顏色。當前樣式選項列出了許多預建樣式。我們選擇**睡衣紅**,並在每兩行使用**條紋**。
列重新排序
我們可以透過按住滑鼠按鈕位於列標題處,然後將其拖動到所需位置來重新排序列的位置。
QlikView - 資料透視表
透視表廣泛用於資料分析,以顯示資料中許多可用維度上的值的總和。QlikView的圖表選項具有透過選擇適當的圖表型別建立透視表的功能。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
載入指令碼
以上資料透過使用指令碼編輯器載入到QlikView的記憶體中。從檔案選單開啟指令碼編輯器或按**Ctrl+E**。從“資料來自檔案”選項卡中選擇“表文件”選項,並瀏覽包含上述資料的檔案。出現以下螢幕。
單擊“確定”並按“Ctrl+R”將資料載入到QlikView的記憶體中。
選擇圖表型別
接下來,我們使用圖表嚮導選擇**透視表**選項。單擊下一步。
選擇圖表維度
在下一個螢幕中,我們選擇Product_Line作為圖表的第一個維度。
選擇圖表表示式
下一個螢幕提示我們選擇圖表表示式,我們選擇值的總和。
選擇圖表格式
單擊下一步後,我們將獲得一個螢幕來選擇圖表格式,在其中我們選擇**睡衣綠**作為樣式和預設模式。
透視圖表資料
完成上述步驟後,我們將獲得如下所示的最終圖表。
QlikView - 集合分析
QlikView的集合分析功能用於將不同工作表物件中的資料細分為多個集合,並在其中一些集合中保持值不變。簡單來說,它建立了一個選項,即在預設行為是所有工作表物件彼此關聯的情況下,不將某些工作表物件與其他工作表物件關聯。這有助於篩選一個工作表物件中的資料並在其他工作表物件中檢視相應的結果,而被選作不同集合的工作表物件則根據其自身的篩選器顯示值。
輸入資料
讓我們考慮以下輸入資料,它表示不同產品線和產品類別的銷售額。
Product_Line,Product_category,Month,Value Arts & Entertainment,Hobbies & Creative Arts,Jan,5201 Arts & Entertainment,Paintings,Feb,8451 Arts & Entertainment,Musical Instruments,Jan,1245 Baby & Toddler,Diapering,Mar,1247 Baby & Toddler,Toys,Dec,257 Apparel & Accessories,Clothing,Feb,574 Apparel & Accessories,Costumes & Accessories,Apr,1204 Arts & Entertainment,Musical Instruments,Apr,3625 Baby & Toddler,Diapering,Apr,1281 Apparel & Accessories,Clothing,Jul,2594 Arts & Entertainment,Paintings,Sep,6531 Baby & Toddler,Toys,May,7421 Apparel & Accessories,Clothing,Aug,2541 Arts & Entertainment,Paintings,Oct,2658 Arts & Entertainment,Musical Instruments,Mar,1185 Baby & Toddler,Diapering,Jun,1209
載入指令碼
以上資料透過使用指令碼編輯器載入到QlikView記憶體中。從檔案選單開啟指令碼編輯器或按**Ctrl+E**。從“資料來自檔案”選項卡中選擇“表文件”選項,並瀏覽包含上述資料的檔案。出現如下所示的螢幕。
建立表格框
選擇所有可用於建立表格框的欄位,使用選單選項佈局 → 新工作表物件 → 表格框,並使用選單選項佈局 → 新工作表物件 → 列表框建立一個包含月份欄位的列表框。此外,建立一個直線表圖表,顯示每個產品類別下的總銷售額。
資料關聯
現在,我們可以透過在一個工作表物件中選擇一些值來觀察這三個工作表物件之間的關聯。讓我們從“月份”列表框中選擇月份“Apr”和“Jan”。我們可以看到表格框和圖表中值的改變,顯示了相關的值。
克隆物件
接下來,我們克隆銷售總額圖表以生成一組與其他工作表物件無關的新資料。右鍵單擊圖表銷售總額,然後單擊選項克隆,如下所示。QlikView文件中將出現同一圖表的另一個副本。
設定表示式
接下來,我們選擇圖表的第二個副本銷售總額,並右鍵單擊它以獲取圖表屬性。我們在定義選項卡下建立了一個名為“銷售值”的表示式,並編寫了公式,如下所示。
應用集合分析
完成上述步驟後,我們發現當我們選擇月份“六月”時,會在表格框和“銷售總額”圖表中獲取相關值。但是,“四月”的銷售額不會改變,因為它基於集合表示式中的資料。
QlikView - 連線
QlikView中的聯接用於將來自兩個資料集的資料組合成一個。QlikView中的聯接與SQL中的聯接含義相同。輸出中僅顯示與聯接條件匹配的列值和行值。如果您完全不瞭解聯接,您可能希望首先了解它們此處。
輸入資料
讓我們考慮以下兩個CSV資料檔案,它們用作進一步說明的輸入。
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts ProductSales: ProductID,ProductCategory,SaleAmount 4,Athletics,1212 5,Personal Care,5211 6,Hobbies & Creative Arts,1021 7,Display Board,2177 8,Game,1145 9,soap,1012 10,Beverages & Tobacco,2514
內聯接
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按Ctrl+E呼叫。選擇選項表格檔案,並瀏覽輸入檔案。然後,我們編輯指令碼中的命令以在表之間建立內聯接。
內聯接僅獲取同時存在於兩個表中的行。在本例中,獲取產品列表和產品銷售表中可用的行。我們使用選單佈局 → 新工作表物件 → 表格框建立一個表格框,在其中選擇所有三個欄位 - ProductID、ProductCategory和SaleAmount進行顯示。
左聯接
左聯接涉及獲取左側表中的所有行以及右側表中的匹配行。
載入指令碼
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LEFT JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我們使用選單佈局 → 新工作表物件 → 表格框建立一個表格框,在其中選擇所有三個欄位 - ProductID、ProductCategory和SaleAmount進行顯示。
右聯接
右聯接涉及獲取右側表中的所有行以及左側表中的匹配行。
載入指令碼
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); RIGHT JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我們使用選單佈局 → 新工作表物件 → 表格框建立一個表格框,在其中選擇所有三個欄位 - ProductID、ProductCategory和SaleAmount進行顯示。
外聯接
外聯接涉及獲取右側表中的所有行以及左側表中的所有行。
載入指令碼
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); OUTER JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我們使用選單佈局 → 新工作表物件 → 表格框建立一個表格框,在其中選擇所有三個欄位 - ProductID、ProductCategory和SaleAmount進行顯示。
QlikView - 保留
QlikView中的keep命令用於組合來自兩個資料集的資料,同時保留兩個資料集在記憶體中。它與我們在上一章中介紹的聯接非常相似,但有兩個主要區別。第一個區別是 - 在keep的情況下;兩個資料集都存在於QlikView的記憶體中,而在聯接中,load語句僅生成一個數據集,您必須從中選擇列。第二個區別是 - 沒有外部keep的概念,而在聯接的情況下,我們有外部聯接可用。
輸入資料
讓我們考慮以下兩個CSV資料檔案,它們用作進一步說明的輸入。
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts Product Sales: ProductID,ProductCategory,SaleAmount 4,Athletics,1212 5,Personal Care,5211 6,Hobbies & Creative Arts,1021 7,Display Board,2177 8,Game,1145 9,soap,1012 10,Beverages & Tobacco,2514
內部Keep
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按Ctrl+E呼叫。選擇選項表格檔案,並瀏覽輸入檔案。然後,我們編輯指令碼中的命令以在表之間建立內部keep。
內部keep僅獲取同時存在於兩個表中的行。在本例中,獲取產品列表和產品銷售表中可用的行。我們使用選單佈局 → 新工作表物件 → 表格框建立表格框。
首先,我們僅選擇productSales表,它為我們提供了要顯示的欄位 - ProductID、ProductCategory和SaleAmount。
接下來,我們選擇ProductList資料集,它為我們提供了欄位ProductID和ProductCategory。
最後,我們選擇所有表格選項,並獲取所有表格中所有可用的欄位。
以下報告顯示了上述步驟中的所有表格框。
左Keep
左Keep類似於左聯接,它保留左側表中的所有行,同時兩個資料集都存在於QlikView的記憶體中。
左Keep指令碼
以下指令碼用於使用左Keep命令建立結果資料集。
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); left keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
左Keep資料
當我們如上更改指令碼並使用Ctrl+R重新整理報表中的資料時,我們在工作表物件中獲得以下資料。
右Keep
右Keep類似於左聯接,它保留右側表中的所有行,同時兩個資料集都存在於QlikView的記憶體中。
右Keep指令碼
以下指令碼用於使用左Keep命令建立結果資料集。
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); right keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
右Keep資料
當我們如上更改指令碼並使用Ctrl+R重新整理報表中的資料時,我們在工作表物件中獲得以下資料。
QlikView - 連線
QlikView中的連線功能用於將一個表中的行追加到另一個表。即使表具有不同數量的列,也會發生這種情況。它與聯接和Keep命令都不同,因為它不會將兩個表中的匹配行合併成一行。
輸入資料
讓我們考慮以下兩個CSV資料檔案,它們用作進一步說明的輸入。請注意,第二個資料集有一個名為“國家/地區”的附加列。
SalesRegionOld.csv ProductID,ProductCategory,Region,SaleAmount 1,Outdoor Recreation,Europe,4579 2,Clothing,Europe,4125 3,Costumes & Accessories,South Asia,6521 4,Athletics,South Asia,4125 5,Personal Care,Australia,5124 6,Arts & Entertainment,North AMerica,1245 7,Hardware,South America,456 SalesRegionNew.csv ProductID,ProductCategory,Region,Country,SaleAmount 6,Arts & Entertainment,North AMerica,USA,1245 7,Hardware,South America,Brazil,456 8,Home & Garden,South America,Brazil,241 9,Food,South Asia,Singapore,1247 10,Home & Garden,South Asia,China,5462 11,Office Supplies,Australia,Australia,577
載入指令碼
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按Ctrl+E呼叫。選擇選項表格檔案,並瀏覽輸入檔案。然後,我們編輯指令碼中的命令以在表之間應用連線。
接下來,我們將上述資料載入到QlikView的記憶體中,並使用選單佈局 → 新工作表物件 → 表格框建立一個表格框,在其中選擇所有可用的欄位進行顯示,如下所示。
連線資料
完成上述步驟後,我們得到如下所示的表格框。請注意產品ID 6和7的重複行。連線不會消除重複項。
QlikView - 主日曆
在QlikView中,很多時候我們需要建立一個日曆參考物件,該物件可以連結到QlikView記憶體中存在的任何資料集。例如,您有一個表捕獲銷售金額和銷售日期,但沒有儲存與該日期相對應的星期幾或季度。在這種情況下,我們建立一個主日曆,它將根據任何資料集的要求提供其他日期欄位,如季度、日期等。
輸入資料
讓我們考慮以下CSV資料檔案,它們用作進一步說明的輸入。
SalesDate,SalesVolume 3/28/2012,3152 3/30/2012,2458 3/31/2012,4105 4/8/2012,6245 4/10/2012,5816 4/11/2012,3522
載入指令碼
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按**Ctrl+E**呼叫。選擇**表文件**選項,並瀏覽輸入檔案。
接下來,我們將上述資料載入到QlikView的記憶體中,並使用選單佈局 → 新工作表物件 → 表格框建立一個表格框,在其中選擇所有可用的欄位進行顯示,如下所示。
建立主日曆
接下來,我們透過在指令碼編輯器中編寫以下指令碼建立主日曆。在這裡,我們使用DailySales表作為駐留表,從中捕獲最大和最小日期。我們使用第二個load語句載入此範圍內的每個日期,該語句位於駐留load語句之上。最後,我們有一個第三個load語句,它從SalesDate值中提取年份、季度、月份等。
選擇欄位
在建立完整的load指令碼以及主日曆後,我們建立一個表格框以使用選單佈局 → 新工作表物件 → 表格框檢視資料
最終資料
最終輸出顯示了表格,顯示了使用銷售資料和主日曆建立的季度和月份值。
QlikView - 對映表
對映表是一個表,它用於對映兩個表之間的列值。它也稱為查詢表,僅用於從其他表中查詢相關值。
輸入資料
讓我們考慮以下輸入資料檔案,它表示不同區域的銷售值。
ProductID,ProductCategory,Region,SaleAmount 1,Outdoor Recreation,Europe,4579 2,Clothing,Europe,4125 3,Costumes & Accessories,South Asia,6521 4,Athletics,South Asia,4125 5,Personal Care,Australia,5124 6,Arts & Entertainment,North AMerica,1245 7,Hardware,South America,456 8,Home & Garden,South America,241 9,Food,South Asia,1247 10,Home & Garden,South Asia,5462 11,Office Supplies,Australia,577
以下資料表示國家/地區及其區域。
Region,Country Europe,Germany Europe,Italy South Asia,Singapore South Asia,Korea North AMerica,USA South America,Brazil South America,Peru South Asia,China South Asia,Sri Lanka
載入指令碼
上述資料透過使用指令碼編輯器載入到QlikView記憶體中。從“檔案”選單開啟指令碼編輯器或按Ctrl+E。從資料來自檔案選項卡中選擇表格檔案選項,並瀏覽包含上述資料的檔案。單擊確定,然後按Ctrl+R將資料載入到QlikView的記憶體中。
建立表格框
讓我們為上述每個表建立兩個表格框,如下所示。在這裡,我們無法在“銷售區域”報表中獲取國家/地區的名稱。
建立對映表
以下指令碼生成對映表,該表將銷售表中的區域值與MapCountryRegion表中的國家/地區值進行對映。
表格圖表
完成上述步驟並建立表格框以檢視資料後,我們將在“銷售”表中的其他列以及國家/地區列。
QlikView - 迴圈引用
迴圈引用發生在我們能夠使用兩個或多個不同的路徑從一個表遍歷到另一個表時。這意味著您可以使用列直接將Table1與Table2連線,或者您也可以首先將Table1與Table3連線,然後將Table3與Table2連線。這可能導致載入所有這三個表的資料模型形成的輸出結果不正確。QlikView一旦識別出迴圈引用,就會阻止將此類資料載入到其記憶體中。
輸入資料
讓我們考慮以下三個CSV資料檔案,它們用作進一步說明的輸入。
SalesCountries: ProductID,ProductCategory,Country,SaleAmount 1,Outdoor Recreation,Italy,4579 2,Clothing,USA,4125 3,Costumes & Accessories,South Korea,6521 4,Athletics,Japan,4125 5,Personal Care,Brazil,5124 6,Arts & Entertainment,China,1245 7,Hardware,South America,456 8,Home & Garden,Peru,241 9,Food,India,1247 10,Home & Garden,Singapore,5462 11,Office Supplies,Hungary,577 ProductCountry: ProductID, Country 3,Brazil 3,China 2,Korea 1,USA 2,Singapore 7,Sri Lanka 1,Italy
載入指令碼
我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按**Ctrl+E**呼叫。選擇**表文件**選項,並瀏覽輸入檔案。
資料載入
建立上述指令碼後,我們使用命令Ctrl+R將資料載入到QlikView的記憶體中。這時,我們會收到錯誤提示,提示載入的表中存在迴圈。
資料模型
為了找到上述警告的確切原因,我們可以使用表格檢視器的選單命令 - Ctrl+T檢視資料模型。出現以下螢幕,它清楚地顯示了迴圈引用。此處,RegionCountry和SalesRegion之間的連線可以使用欄位區域直接實現。它也可以透過首先轉到ProductCountry表,使用欄位國家/地區,然後將ProdcutID與Salesregion對映來實現。
解決迴圈引用
可以透過重新命名資料集中的一些列來解決上述迴圈引用,以便QlikView不會使用列名自動在表之間形成關聯。為此,我們將RegionCountry中的國家/地區列重新命名為SalesCountry。在ProdcuCountry資料集中,我們將國家/地區列重新命名為ProductCountry。
修正後的資料模型
重新命名上述列後的修正資料模型可以使用命令Ctrl+T檢視。現在我們可以看到表之間的關係不再形成迴圈。
按Ctrl+R重新載入資料不再會顯示警告,我們可以使用此資料建立報表。