書名: 精通Tableau商業數據分析與可視化作者名: 王國平本章字數: 787字更新時間: 2020-04-24 14:08:03
3.4 運算符及優先級
運算符用于執行程序代碼運算,會針對一個以上操作數項目進行運算的。例如,2+3的操作數是2和3,運算符是“+”。Tableau支持的運算符有算術運算符、邏輯運算符、比較運算符。
3.4.1 算術運算符
?+(加法):此運算符應用于數字時表示相加;應用于字符串時表示串聯;應用于日期時,將天數與日期相加。例如,'abc'+'def'='abcdef';#April 15,2004#+15=#April 30,2004#。
?–(減法):此運算符應用于數字時表示減法;應用于表達式時表示求反;應用于日期時,可用于從日期中減去天數,還可用于計算兩個日期之間的天數差異。例如,7–3=4;-(7+3)=-10;#April 15,2004#-#April 8,2004#=7。
?*(乘法):此運算符表示數字乘法。例如,5*4=20。
?/(除法):此運算符表示數字除法。例如,20/4=5。
?%(求余):此運算符表示數字余數。例如,5%4=1。
?^(乘方):此符號等效于POWER函數,用于計算數字的指定次冪。例如,6^3=216。
3.4.2 邏輯運算符
?AND:邏輯運算且,兩側必須使用表達式或布爾值。
例如,IIF(Profit=100 AND Sales=1000,"High","Low"),如果兩個表達式都為TRUE,結果就為TRUE;如果任意一個表達式為UNKNOWN,結果就為UNKNOWN;其他情況結果都為FALSE。
?OR:邏輯運算或,兩側必須使用表達式或布爾值。
例如,IIF(Profit=100 OR Sales=1000,"High","Low"),如果任意一個表達式為TRUE,結果就為TRUE;如果兩個表達式都為FALSE,結果就為FALSE;如果兩個表達式都為UNKNOWN,結果就為UNKNOWN。
?NOT:邏輯運算符否,可用于對另一個布爾值或表達式求反。
例如,IIF(NOT(Sales=Profit),"Not Equal","Equal")。
3.4.3 比較運算符
Tableau有豐富的比較運算符,有==或=(等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、!=和<>(不等于),用于比較兩個數字、日期或字符串,并返回布爾值(TRUE或FALSE)。
3.4.4 運算符優先級
所有運算符都按特定順序計算,如2*1+2等于4而不等于6,因為*運算符始終在+運算符之前計算。表3-1顯示了計算運算符的順序,第一行具有最高優先級,同一行中的運算符具有相同優先級,如果兩個運算符具有相同優先級,在公式中就從左向右進行計算。
表3-1 運算符優先級

可以根據需要使用括號,括號中的運算符在計算時優先于括號外的運算符,從內部的括號開始向外計算,如(1+(2*2+1)*(3*6/3))=31。