2014年3月28日 星期五

Naming your field names in QlikView 取一個你看的懂的欄位名稱

擁有一個乾淨友好的使用者介面看得懂的欄位名稱,是一套針對使用者操作的一個關鍵。

在分析資料時,往往在資料庫裡的資料欄位跟前端拉取資料命名會不太一樣,如果要前端看的懂的欄位名稱在QlikView 中欄位別名,必需要使用 "as" 來重新命名,如下圖例子:


在前端取德欄位會像這樣

那如果都我要用中文欄位呢?都取別名實在太辛苦了,萬一我的資料源來及欄位很多時,這種做法實在是太不科學了。

接下來就是要教各位一個小小的技巧,讓我們可以方便取名
Step 1:  利用一個List box 將所有欄位滙出來
             請選擇系統欄位$Field
             列出資料後,直接滙出到Excel

Step 2:  利用剛滙出的EXCEL 檔案,增加一個欄位為使用者識別的欄位


Step 3: 回到Script 編輯器中,將剛那個EXCEL檔案滙入
           使用MAPPING LOAD statement 於語法編輯器

Step 4: Applying the field name map
            請在語法的最後加入一行,Using 後的就是剛滙入的表格名稱
      RENAME FIELDS USING FieldMap;

*在這裡有一個要注意的地方,如果在步驟3所Mapping 的欄位沒有包含全部欄位時,則欄位名稱會以舊的為主

Step 5: 重新Reload 資料後,剛你所設定的欄位名稱就出來囉.

2014年3月26日 星期三

QlikView and Google Map integration Step-by-Step

你想要有張地圖結合你資料的呈現嗎? 我們可以在QlikView 上很快速的套用囉
下列方法是一步步的執行方式參考,吔...這表示我有偷吃步啦,
想知道嗎?嘿嘿,待我下回分曉囉.
  

  1. 首先,第一步請增加一段語法在QV的語法編輯器中 
Edit Script
Ctrl+E 
請注意,你的分析資料中必需要有欄位為Latitude,      Longitude才能跟Google 連結

例如:
member:
LOAD 會員編號, 
     姓名, 
     姓別, 
     電話, 
     生日, 
     [E-mail], 
     地址, 
     GPS, 
     Latitude, 
     Longitude, 
     星座
FROM
會員檔.xlsx

(ooxml, embedded labels, table is 會員資料);

======================

//請整個複製到語法中
// Google Maps Key
// 申請一個MAP 的KEY 並填入下方 here http://code.google.com/apis/maps/signup.html  
gmap_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
max_zoom_level = 17; //maximum value 17 

// Variables required for calculating map
// No need to change these
var_pi180= '=pi()/180';
var_lat_offset= '0';
var_mc2= '=256*pow(2,$(var_zoom))';
var_mc1= '=256*pow(2,($(var_zoom)-1))';
var_mid_lat= '=min(Latitude)+(1+var_lat_offset)*((max(Latitude)-min(Latitude))/2)';
var_mid_long= '=min(Longitude)+(max(Longitude)-min(Longitude))/2';
var_zoom= '=max(aggr(if(max( round(256*pow(2,(_zoom_level -1)))+( Longitude  *((256*pow(2,_zoom_level ))/360)) )-min( round(256*pow(2,(_zoom_level -1)))+( Longitude  *((256*pow(2,_zoom_level ))/360)) ) <map_size_x AND max((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((Latitude)*pi()/180)))/(1-(sin((Latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))-min((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((Latitude)*pi()/180)))/(1-(sin((Latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))<map_size_y,_zoom_level,1),_zoom_level))';
var_maptype= '=if(isnull(only(maptype)),fieldvalue( '&chr(39)&'maptype'&chr(39)&', 1 ),maptype)';
map_size_x=  '640';
map_size_y=     '400';


SET HidePrefix='_' ;
// Field required for calcualting best zoom level
_zoom_level:
Load RecNo( ) as _zoom_level autogenerate(max_zoom_level);

maptype:
LOAD * INLINE [
    maptype
    roadmap
mobile
satellite
terrain
hybrid 
];



  
==================================
離開語法編輯器, 到Design Sheet 頁中
2.增加一個Cart 圖於畫版裡 scatter chart


選 擇Scatter chart => NEXT



=> NEXT
 選擇資料欄位

 => NEXT

 新增3個運算式 , 除了運算式3可以自行指定運算式外,運算式1,2 都建議不可以更改
  1. 運算式1 => Label : Longitude  


  • 輸入公式:  sum( round (256*pow(2,($(var_zoom)-1)))+( Longitude  *((256*pow(2,$(var_zoom)))/360)) )
  • 點開公式下增加 Background color:  公式為:=ARGB(150,255,0,0)
     2. 運算式2 =>  Label :  Latitude 
  • 輸入公式: 
=sum(  ((256*pow(2,($(var_zoom)-1)))+((0.5*log((1+(sin((Latitude)*pi()/180)))/(1-(sin((Latitude)*pi()/180)))))*((-256*pow(2,$(var_zoom)))/(2*pi())))))
  • 點開公式下增加 Background color:  公式為:ARGB(150,255,0,0)
  3. 運算式3 => Label: Sales 





  => NEXT
選擇顯示的樣式
 => NEXT

  => NEXT

X axis:
Static Min:
=(256*pow(2,($(var_zoom)-1)))+( var_mid_long  *((256*pow(2,$(var_zoom)))/360)) -round(map_size_x/2)
Static Max:
=( (256*pow(2,($(var_zoom)-1)))+( var_mid_long  *((256*pow(2,$(var_zoom)))/360)) + round(map_size_x/2))

Y axis:
Static Min:
=((256*pow(2,($(var_zoom)-1)))+((0.5*log((1+(sin(var_mid_lat*pi()/180)))/(1-(sin(var_mid_lat*pi()/180)))))*((-256*pow(2,$(var_zoom)))/(2*pi())))+round(map_size_y/2))
Static Max:
=((256*pow(2,($(var_zoom)-1)))+((0.5*log((1+(sin(var_mid_lat*pi()/180)))/(1-(sin(var_mid_lat*pi()/180)))))*((-256*pow(2,$(var_zoom)))/(2*pi())))-round(map_size_y/2))

 => NEXT選擇 Dynamic Image:


='http://maps.googleapis.com/maps/api/staticmap?center='  &  num(var_mid_lat, '##############', '.', ',' )   &  ','  &  num(var_mid_long, '##############', '.', ',' )   &  '&zoom=$(var_zoom)'  &  '&maptype='&var_maptype  &  '&size='&map_size_x&'x'&map_size_y  &  '&key='&gmap_key & '&sensor=false&.jpg'&

'&language=zh-HK'






2014年3月14日 星期五

QlikView 11 SR6 繁體中文版快要出版囉

台灣的冰友啊~~QlikView 11 SR6 繁體中文版快要出版囉
有幸參與SR6版本的測試計劃,想起前一陣子一堆英翻中的文件要檢查,此時看到這個成果時,頓時好有成就感。
未來我們可以有繁體的Desktop 工具使用囉!  敬請期待呦!!



update . 中文版已經出來囉, 目前到QlikView 11 SR10

2014年3月11日 星期二

弦圖 Parallel Coordinates in QlikView {Big data 一定要看}

Visualize Your Data

Parallel Coordinate 適用於多維度資料,尤其是有區分性較大的資料;藉由不同維度的交叉比對以呈現多面向的量化資料;可以判讀是否有趨勢或是特徵。

下圖用於顯示不同維度之間的訊息,例子中,我們所看到的保險報價,並在不同位置的占比;例如 申請人的名稱,當前狀態,什麼樣的產品的報價,包括報價於該月份,我可以即刻從圖看出大部分報價為男性,他們是有效保單,分佈在所有的產品和大多建立五月的關連性。

再舉個例子:
各位男生們最喜愛的車子例子就可以更容易懂了,下方連結你可以看到馬力、車子重量、起速、年份等,可以很快速的看到馬力很大的起速1-60哩是靠近8秒的的藍色線條,有沒有更容易看到他的相關屬性是什麼了嗎?

資料源來:http://mbostock.github.io/protovis/ex/cars.html


QVW Sample 下載請點我



2014年3月9日 星期日

原來Candy Crush 也在 QlikView 了


Big Data 海量資料愈來愈普及,但是大家都只偏重在""資料,那你們有在"分析及分享"資料嗎?就如同Candy Crush案列,真正的商業分析不是只在分析儲存在系統裡的Log ,而是將其用戶行為分析再加上企業的CRP ,ERP 等財務行為上計算其轉化率,甚至是遊戲用戶間透過Facebook的客戶行為分析。只有真正結合企業於商業上資訊及海量的客戶行為,才能再探索更多價值,找出海量資料中的藍海。

HKG PC Market PC 雜誌內容

如何快速的連結資料到QlikView

我自己錄了段影片, 將資料儲存於Access 的交易資料,及主檔資料分別來自於csv file 及execl 檔案;將三種不同類型來源的資料滙入到QlikView 中。
此段影片雖然沒有出現我的聲音,但是已經可以學會如何滙資料的動作囉!



在連結ACCESS 資料庫時,要特別注意你的OFFICE 是什麼位元版本的;如果是使用32位元
請勾選強制32位元


如果要連結ORACLE 時,建議安裝使用Oracle Client Driver的 OLE DB
但使用時需特別先進行Oracle Client 的TNSName 名稱指定.


2014年3月8日 星期六

QlikView 資料整理 - 1 欄位更名

剛好最近有人問我一個問題,需要分析資料的長像如下:
他有一個需求是如何將這個資料表格滙入到QlikView 後,當分析狀態Inactive 時可以看到那些IP ,或是Active 的IP

我將要分析的資料結果用兩種方法來處理:

方法A:  如果你想要的資料呈現是要如下方的欄位組合 IP+Active+Inactive

在QlikView 的資料中,只需要直接滙入資料,不需要任何加工處理
因為在這工具裡他會將同是IP 的欄位變成Key

active:
LOAD IP   , Active    INLINE [
    IP, Active
    10.10.0.1 , A
    10.10.0.2 , A
    10.10.0.3 , A 
];

Inactive:
LOAD IP , Inactive   INLINE [
    IP, Inactive
    10.10.0.1 , I
    10.10.0.4 , I
    10.10.0.5 , I 
];

方法B:  如果你想要的資料呈現是要如下方的欄位組合 IP+Status
在QlikView 的資料中,只要將Active 及Inactive 欄位皆改為同一個欄位名稱為Status ,
而更名的方式只需要利用 "as" 方式就能更改欄位名稱 ,請參考下方我的語法
 此時滙入到QlikView 時資料的儲存如下表


active:
LOAD IP   , Active as status  INLINE [
    IP, Active
    10.10.0.1 , A
    10.10.0.2 , A
    10.10.0.3 , A 
];

Inactive:
LOAD IP , Inactive as status  INLINE [
    IP, Inactive
    10.10.0.1 , I
    10.10.0.4 , I
    10.10.0.5 , I 
];


圖表 Chart 如何改變大小跟位置

在QlikView 的圖表中, 常常都有大小可能不符合預期,或是你的右方圖例想要換個位置
其實有個小小的方法可以快速的改變。

例如下表的圖示

點選到此表後,請點選Ctrl+Shift 即會在圖上方出現紅色的框

持續鍵盤按著Ctrl+Shift ,並使用滑鼠來調整紅色框的位置



圖表建議—思維指南 copy from internet

最近發現網路上有人用簡單的mind map 方式將各程圖表的呈現方式展現出來還蠻受用的,如果有需要長用圖表分析但是每次分析的圖表不夠豐富可以參考一下下列圖型來美化囉

 image copy from internet