“Nếu bạn nỗ lực, bạn có thể làm được mọi thứ.” “Nếu con số bằng 8, tôi thắng trò chơi!” Câu điều kiện là một phần của đời sống hàng ngày. Chúng ta thường xuyên dùng chúng để quyết định hành động dựa trên đánh giá logic:
Tôi có nỗ lực không (ĐÚNG/SAI)? Nếu có, tôi có thể làm bất cứ điều gì.
Số đó có = 8 không? Nếu có, tôi thắng trò chơi.
Trong Tableau, bạn có thể áp dụng logic điều kiện để mô phỏng cùng kiểu lý luận bạn dùng mỗi ngày. Tableau cung cấp một loạt hàm logic giúp bạn dễ dàng biến đổi dữ liệu có điều kiện dựa trên đánh giá logic, hoặc là một biểu thức boolean (ĐÚNG/SAI) hoặc là khớp giá trị chính xác. Trong bài viết này, chúng tôi sẽ khám phá một số câu lệnh điều kiện phổ biến trong Tableau và cách dùng chúng để phân tích và trực quan hóa dữ liệu.
Câu lệnh IF trong Tableau
IF là câu lệnh điều kiện cơ bản trong Tableau, cho phép người dùng đánh giá một biểu thức boolean và trả về một giá trị nếu điều kiện đúng, và một giá trị khác nếu sai. Cú pháp cơ bản của câu lệnh IF là:
IF [condition] THEN [value1] ELSE [value2] ENDĐược hỗ trợ bởi
Nếu kết quả cuối cùng phụ thuộc vào việc đánh giá một biểu thức boolean thay thế, bạn có thể chèn mệnh đề ELSEIF vào câu lệnh như sau:
IF [condition1] THEN [value1]
ELSEIF [condition2] THEN [value2]
ELSE [value3]
ENDĐược hỗ trợ bởi
Ví dụ, để phân loại thể loại nhạc pop và không-pop dựa trên việc tên có chứa ‘pop’ hay không, ta có thể dùng câu lệnh IF sau:
IF CONTAINS([Top Genre], 'pop') THEN 'pop'
ELSE 'other genre'
ENDĐược hỗ trợ bởi
IF lồng nhau
Các câu lệnh IF cũng có thể được lồng nhau để tạo điều kiện phức tạp hơn và đánh giá nhiều điều kiện cho các nhóm con trong dữ liệu. Để xây dựng IF lồng nhau, hãy dùng cú pháp sau:
IF [condition1] THEN
IF [condition2] THEN [value1]
ELSE [value2]
END
ELSE [value3]
ENDĐược hỗ trợ bởi
Giả sử chúng ta muốn tìm tỷ lệ bài hát pop có thể nhảy được (theo thước đo danceability trong Bộ dữ liệu Spotify Music). Ta có thể dùng câu lệnh IF lồng nhau sau để xác định:
IF CONTAINS([Top Genre], 'pop') THEN
IF [Dnce]>66 THEN 'danceable pop' // 66 is the median
ELSE 'less danceable pop'
END
ELSE 'not pop'
ENDĐược hỗ trợ bởi
IF lồng nhau là các hàm mạnh mẽ, đặc biệt khi cần thỏa mãn nhiều điều kiện cho các nhóm con khác nhau của dữ liệu.
IIF
Hàm IIF là một câu lệnh điều kiện khác trong Tableau, cho phép người dùng kiểm tra một điều kiện và trả về một trong hai giá trị. Cú pháp của hàm IIF là:
IIF([condition], [value if true], [value if false])Được hỗ trợ bởi
Ví dụ, để tạo một trường tính toán xác định các nhạc sĩ sáng tác bài hát đứng đầu bảng xếp hạng trong giai đoạn 2017–2019, ta có thể dùng hàm IIF sau:
IIF([Year]>=2017 AND [Year]<=2019, '2017-2019 Top Song', 'Not Top Song in 2017-2019')Được hỗ trợ bởi
Điều này sẽ trả về “2017-2019 Top Song” nếu bài hát đứng đầu trong giai đoạn 2017 đến 2019 (theo Billboard) và “Not Top Song in 2017-2019” nếu không.
Sử dụng hàm tổng hợp của Tableau với IF
Tableau cung cấp nhiều hàm dựng sẵn có thể dùng cùng với câu lệnh điều kiện để thực hiện các phép tính nâng cao. Một số hàm tổng hợp thường dùng gồm COUNTD, SUM, AVG, MIN và MAX. Với các hàm tổng hợp, bạn có thể tóm lược thông tin hiệu quả bằng cách xây dựng chỉ số mới trong Tableau. Bạn cần dùng cú pháp sau:
<Aggregation>(IF [Condition] THEN [value] END)Được hỗ trợ bởi
Ví dụ, hãy đếm số nghệ sĩ duy nhất có bài hát đứng đầu giữa năm 2017 và 2019 với hàm COUNTD:
COUNTD(IF [Year]>=2017 and [Year]<=2019 THEN [Artist] END)Được hỗ trợ bởi
Câu lệnh trên sẽ trả về số lượng nghệ sĩ phân biệt có bài hit trong giai đoạn 2017–2019. Nếu một nghệ sĩ có nhiều bài hit trong các năm đó, tên nghệ sĩ chỉ được đếm một lần.
Tương tự, ta có thể dùng các hàm SUM và AVG kết hợp với câu lệnh điều kiện để tính toán trên các tập con dữ liệu cụ thể.
Lời khuyên: hãy chắc chắn bao bọc điều kiện bên trong phép tổng hợp. Nếu không, bạn sẽ gặp lỗi quen thuộc: “Cannot mix aggregate and non aggregate comparisons or results in 'IF' expressions.” Ví dụ, câu lệnh dưới đây báo lỗi vì ta đang cố gắng thực hiện phép tổng hợp trên một điểm dữ liệu đơn lẻ, bản thân nó không được tổng hợp.
Câu lệnh CASE trong Tableau
Giới thiệu
Câu lệnh CASE là một câu lệnh điều kiện khác trong Tableau, cho phép người dùng thực hiện nhiều phép kiểm tra trên một trường và trả về các giá trị khác nhau dựa trên kết quả. Khác với IF dựa vào đánh giá biểu thức boolean, CASE dựa vào khớp giá trị chính xác. Nếu mệnh đề WHEN dùng logic boolean, bạn sẽ nhận lỗi sau trong Tableau:
Cú pháp của câu lệnh CASE là:
CASE [expression]
WHEN [value1] THEN [result1]
WHEN [value2] THEN [result2]
ELSE [default result]
ENDĐược hỗ trợ bởi
Ví dụ, hãy viết lại logic để xác định các nhạc sĩ có bài hát đứng đầu trong giai đoạn 2017–2019:
CASE [Year]
WHEN IN (2017, 2018, 2019) THEN '2017-2019 Top Songs'
ELSE 'Not Top Song in 2017-2019'
ENDĐược hỗ trợ bởi
Trong ví dụ trên, chúng ta dùng cấu trúc WHEN IN để liệt kê các năm quan tâm (2017, 2018 và 2019). Tableau sau đó dùng tập giá trị này để tìm khớp chính xác trong dữ liệu. Nếu không tìm thấy dữ liệu khớp và không chỉ định giá trị mặc định, giá trị null sẽ được trả về.
CASE lồng nhau
Tương tự IF lồng nhau, bạn có thể dùng CASE lồng nhau trong Tableau để biểu đạt logic phức tạp bằng một trường tính toán. Bạn có thể dùng cú pháp dưới đây để trả về logic lồng nhau với CASE:
CASE [expression1]
WHEN [value1] THEN
(CASE [expression2]
WHEN [value2] THEN [result1]
WHEN [value3] THEN [result2]
…
ELSE [default result]
END)
WHEN [value4] THEN
(CASE [expression2]
WHEN [value5] THEN [result3]
WHEN [value6] THEN [result4]
…
ELSE [default result]
END)
ELSE [default result]
ENDĐược hỗ trợ bởi
Mặc dù CASE không thể đánh giá các biểu thức boolean và không phù hợp để nhận diện các mẫu phức tạp trong dữ liệu, chúng dễ đọc hơn và hiệu năng tốt hơn so với IF. Nếu dữ liệu đủ đơn giản để biến đổi và không cần đánh giá ĐÚNG/SAI phức tạp, bạn nên dùng CASE. Trong một số trường hợp, bạn có thể kết hợp IF và CASE để có phân tích mạnh mẽ hơn.
Kết luận
Các câu lệnh điều kiện như IF và CASE là công cụ hiệu quả để nâng tầm kỹ năng Tableau của bạn với vai trò người làm dữ liệu. Để tiến bộ nhanh với Tableau, hãy xem các tài nguyên của chúng tôi như lộ trình nghề nghiệp Data Analyst in Tableau hoặc khóa học Analyzing Data in Tableau.
Khi đã có nền tảng vững, hãy luyện tập trực quan hóa trong Tableau bằng các bộ dữ liệu có sẵn trên DataLab. Các câu lệnh IF, IIF và CASE WHEN sẽ trở nên quen thuộc với bạn. Chúc may mắn!
Câu hỏi thường gặp về CASE và IF trong Tableau
Làm sao biết khi nào dùng IF so với CASE?⌄
Hàm bạn dùng chủ yếu phụ thuộc vào tác vụ bạn muốn thực hiện. Trong khiIFđánh giá một biểu thức boolean,CASEchỉ khớp theo giá trị của trường. Thường thì một câu lệnh CASEcó thể chuyển đổi thành IF, nhưng chiều ngược lại ít khả thi hơn, vì IFđược dùng cho các đánh giá phức tạp mà CASEthường không xử lý được.
Sự khác nhau giữa IF và CASE là gì?⌄
Trong khi IFcó thể đánh giá logic boolean trên các chiều không tổng hợp hoặc các thước đo đã tổng hợp, CASE chỉ đánh giá các khớp giá trị chính xác. Vì lý do đó, IF linh hoạt hơn CASE và có thể dùng để thực hiện logic phức tạp hơn trên dữ liệu. Tuy nhiên, CASE mang lại khả năng đọc tốt hơn và hiệu năng cao hơn so với IF. CASE hoạt động rất tốt khi dữ liệu chỉ cần các biến đổi đơn giản.
Tôi có nên định dạng hàm điều kiện không?⌄
Mặc dù Tableau chưa hỗ trợ tự động định dạng văn bản trong hộp thoại trường tính toán, việc thêm định dạng để tăng khả năng đọc là ý tưởng hay, gồm:
Chú thích: bạn có thể dùng//cho chú thích một dòng và/* <...> */cho chú thích nhiều dòng;
Xuống dòng và thụt lề: thêm xuống dòng và thụt lề để người khác xem workbook dễ hiểu các lớp logic trong trực quan hóa.
Sự khác nhau giữa IF và IIF là gì?⌄
Khác biệt chính giữa câu lệnh IF và hàm IIF là câu lệnh trước có thể kiểm tra nhiều điều kiện và trả về các giá trị khác nhau dựa trên kết quả, còn câu lệnh sau chỉ kiểm tra một điều kiện tại một thời điểm và trả về một trong hai giá trị. Dù bạn có thể tận dụng logic phức tạp hơn với IF, hàm IIF rất phù hợp cho các điều kiện đơn giản, nơi sự rõ ràng và ngắn gọn được ưu tiên.
Sao không chỉ dùng tham số và bộ lọc tích hợp sẵn của Tableau?⌄
Trong một số trường hợp, tính năng bộ lọc và tham số sẽ không đủ để phân tích dữ liệu. Như giải thích trong hướng dẫn Calculating Fields in Tableau của chúng tôi, đôi khi bạn cần tạo biến mới để bù phần dữ liệu thiếu trước khi phân tích. Thường thì các biến đổi bạn cần thực hiện sẽ rơi vào năm nhóm sau:
Phân khúc dữ liệu
Chuyển đổi kiểu dữ liệu của một trường, như chuyển chuỗi sang ngày hoặc số nguyên sang số thực
“Nếu bạn nỗ lực, bạn có thể làm được mọi thứ.” “Nếu con số bằng 8, tôi thắng trò chơi!” Câu điều kiện là một phần của đời sống hàng ngày. Chúng ta thường xuyên dùng chúng để quyết định hành động dựa trên đánh giá logic:
Trong Tableau, bạn có thể áp dụng logic điều kiện để mô phỏng cùng kiểu lý luận bạn dùng mỗi ngày. Tableau cung cấp một loạt hàm logic giúp bạn dễ dàng biến đổi dữ liệu có điều kiện dựa trên đánh giá logic, hoặc là một biểu thức boolean (ĐÚNG/SAI) hoặc là khớp giá trị chính xác. Trong bài viết này, chúng tôi sẽ khám phá một số câu lệnh điều kiện phổ biến trong Tableau và cách dùng chúng để phân tích và trực quan hóa dữ liệu.
Câu lệnh IF trong Tableau
IFlà câu lệnh điều kiện cơ bản trong Tableau, cho phép người dùng đánh giá một biểu thức boolean và trả về một giá trị nếu điều kiện đúng, và một giá trị khác nếu sai. Cú pháp cơ bản của câu lệnhIFlà:Nếu kết quả cuối cùng phụ thuộc vào việc đánh giá một biểu thức boolean thay thế, bạn có thể chèn mệnh đề
ELSEIFvào câu lệnh như sau:Ví dụ, để phân loại thể loại nhạc pop và không-pop dựa trên việc tên có chứa ‘pop’ hay không, ta có thể dùng câu lệnh
IFsau:IF lồng nhau
Các câu lệnh
IFcũng có thể được lồng nhau để tạo điều kiện phức tạp hơn và đánh giá nhiều điều kiện cho các nhóm con trong dữ liệu. Để xây dựngIFlồng nhau, hãy dùng cú pháp sau:Giả sử chúng ta muốn tìm tỷ lệ bài hát pop có thể nhảy được (theo thước đo danceability trong Bộ dữ liệu Spotify Music). Ta có thể dùng câu lệnh
IFlồng nhau sau để xác định:IFlồng nhau là các hàm mạnh mẽ, đặc biệt khi cần thỏa mãn nhiều điều kiện cho các nhóm con khác nhau của dữ liệu.IIF
Hàm
IIFlà một câu lệnh điều kiện khác trong Tableau, cho phép người dùng kiểm tra một điều kiện và trả về một trong hai giá trị. Cú pháp của hàmIIFlà:Ví dụ, để tạo một trường tính toán xác định các nhạc sĩ sáng tác bài hát đứng đầu bảng xếp hạng trong giai đoạn 2017–2019, ta có thể dùng hàm
IIFsau:Điều này sẽ trả về “2017-2019 Top Song” nếu bài hát đứng đầu trong giai đoạn 2017 đến 2019 (theo Billboard) và “Not Top Song in 2017-2019” nếu không.
Sử dụng hàm tổng hợp của Tableau với IF
Tableau cung cấp nhiều hàm dựng sẵn có thể dùng cùng với câu lệnh điều kiện để thực hiện các phép tính nâng cao. Một số hàm tổng hợp thường dùng gồm
COUNTD,SUM,AVG,MINvàMAX. Với các hàm tổng hợp, bạn có thể tóm lược thông tin hiệu quả bằng cách xây dựng chỉ số mới trong Tableau. Bạn cần dùng cú pháp sau:Ví dụ, hãy đếm số nghệ sĩ duy nhất có bài hát đứng đầu giữa năm 2017 và 2019 với hàm
COUNTD:Câu lệnh trên sẽ trả về số lượng nghệ sĩ phân biệt có bài hit trong giai đoạn 2017–2019. Nếu một nghệ sĩ có nhiều bài hit trong các năm đó, tên nghệ sĩ chỉ được đếm một lần.
Tương tự, ta có thể dùng các hàm
SUMvàAVGkết hợp với câu lệnh điều kiện để tính toán trên các tập con dữ liệu cụ thể.Lời khuyên: hãy chắc chắn bao bọc điều kiện bên trong phép tổng hợp. Nếu không, bạn sẽ gặp lỗi quen thuộc: “Cannot mix aggregate and non aggregate comparisons or results in '
IF' expressions.” Ví dụ, câu lệnh dưới đây báo lỗi vì ta đang cố gắng thực hiện phép tổng hợp trên một điểm dữ liệu đơn lẻ, bản thân nó không được tổng hợp.Câu lệnh CASE trong Tableau
Giới thiệu
Câu lệnh
CASElà một câu lệnh điều kiện khác trong Tableau, cho phép người dùng thực hiện nhiều phép kiểm tra trên một trường và trả về các giá trị khác nhau dựa trên kết quả. Khác vớiIFdựa vào đánh giá biểu thức boolean,CASEdựa vào khớp giá trị chính xác. Nếu mệnh đềWHENdùng logic boolean, bạn sẽ nhận lỗi sau trong Tableau:Cú pháp của câu lệnh
CASElà:Ví dụ, hãy viết lại logic để xác định các nhạc sĩ có bài hát đứng đầu trong giai đoạn 2017–2019:
Trong ví dụ trên, chúng ta dùng cấu trúc
WHEN INđể liệt kê các năm quan tâm (2017, 2018 và 2019). Tableau sau đó dùng tập giá trị này để tìm khớp chính xác trong dữ liệu. Nếu không tìm thấy dữ liệu khớp và không chỉ định giá trị mặc định, giá trị null sẽ được trả về.CASE lồng nhau
Tương tự
IFlồng nhau, bạn có thể dùngCASElồng nhau trong Tableau để biểu đạt logic phức tạp bằng một trường tính toán. Bạn có thể dùng cú pháp dưới đây để trả về logic lồng nhau vớiCASE:Mặc dù
CASEkhông thể đánh giá các biểu thức boolean và không phù hợp để nhận diện các mẫu phức tạp trong dữ liệu, chúng dễ đọc hơn và hiệu năng tốt hơn so vớiIF. Nếu dữ liệu đủ đơn giản để biến đổi và không cần đánh giá ĐÚNG/SAI phức tạp, bạn nên dùngCASE. Trong một số trường hợp, bạn có thể kết hợpIFvàCASEđể có phân tích mạnh mẽ hơn.Kết luận
Các câu lệnh điều kiện như
IFvàCASElà công cụ hiệu quả để nâng tầm kỹ năng Tableau của bạn với vai trò người làm dữ liệu. Để tiến bộ nhanh với Tableau, hãy xem các tài nguyên của chúng tôi như lộ trình nghề nghiệp Data Analyst in Tableau hoặc khóa học Analyzing Data in Tableau.Khi đã có nền tảng vững, hãy luyện tập trực quan hóa trong Tableau bằng các bộ dữ liệu có sẵn trên DataLab. Các câu lệnh
IF,IIFvàCASE WHENsẽ trở nên quen thuộc với bạn. Chúc may mắn!