DAX trong Power BI: Đơn giản nhưng không hề dễ dàng

DAX trong Power BI: Đơn giản nhưng không hề dễ dàng

Ngày đăng: 22/11/2023

DAX trong Power BI (Data Analysis Expressions) là một tập hợp các hàm, toán tử và hằng số, sử dụng trong công thức hoặc biểu thức tính để giải quyết những bài toán từ cơ bản tới phức tạp, kết quả trả về là một hoặc nhiều giá trị từ dữ liệu có sẵn. 

Hiểu theo cách đơn giản hơn, DAX giúp tạo thông tin mới từ dữ liệu đã có trong data model của bạn. Hàm DAX giúp bạn triển khai các chức năng như biến đổi dữ liệu và trực quan hóa dữ liệu. Nếu không biết cách sử dụng DAX, bạn sẽ không thể tận dụng được tối đa các chức năng trong Power BI.  

DAX không quá phức tạp, nhưng sẽ là một thách thức lớn đối với những người không kiên trì vì 7 lý do sau đây: 

Lý do #1: DAX tập trung vào việc sử dụng các hàm (Functional Language) 

Trên quan điểm toán học, các ngôn ngữ hàm cực kỳ thanh lịch. Tuy nhiên, chúng cũng không thật sự thân thiện với cách tư duy thông thường của con người. Khi mô tả một thuật toán, chúng ta thường không đi theo tư duy hàm tính toán kết quả mà sẽ đi theo các bước để đạt được kết quả đó. 

Hãy tưởng tượng khi bạn cần lắp ráp một món đồ nội thất, ở đây là một cái ghế. Với tư duy thông thường, bạn sẽ kỳ vọng một hướng dẫn như thế này: Thêm một chân vào ghế bằng vít, lặp lại 4 lần. Sau khi hoàn tất, hãy sử dụng một số vít khác để gắn lưng vào ghế. 

Với ngôn ngữ lập trình khác như Python, bạn sẽ nhận được hướng dẫn như sau:

For i in Range (4):   --Lặp lại 4 lần 
Add_Leg(Screw)  --Thêm chân bằng cách sử dụng tô vít 
Add_Back(Screw)  --Thêm mặt ghế bằng cách sử dụng tô vít

Với DAX, một ngôn ngữ hàm, bạn sẽ thấy nản hơn một chút: 

Với DAX, bạn cần học cách suy luận theo hàm, bạn cần hiểu cách thức DAX được thiết kế và cách nó tương tác với mô hình dữ liệu. 

Một thuật toán được thể hiện bằng ngôn ngữ hàm được tối ưu hoá dễ dàng hơn so với ngôn ngữ lặp (đi theo từng bước một như cách bạn lắp ráp ghế). Tuy nhiên, bạn phải đánh đổi thời gian và công sức để có thể làm chủ DAX – một ngôn ngữ nhanh. 

Để làm quen với DAX, cách duy nhất là phải luyện tập thật nhiều. Đến một thời điểm nào đó não bạn sẽ bắt đầu đọc các ngôn ngữ hàm theo phản xạ tự nhiên. Phải nhấn mạnh lại rằng tư duy hàm không đi theo cách con người tư duy thông thường nên luyện tập là cách duy nhất để làm quen với DAX. Điều này dẫn đến lý do số 2. 

Lý do #2: Luyện tập để trở nên thành thạo 

Khi làm việc với Power BI, DAX giúp chúng ta tạo báo cáo nhưng chúng ta thường có xu hướng tập trung vào các con số hơn là cách chúng được tạo ra. Có thể bạn vẫn sử dụng DAX khi chuẩn bị báo cáo nhưng các câu lệnh DAX phức tạp chỉ chiếm một phần nhỏ trong công việc hàng ngày. Vì vậy, bạn sẽ thường xuyên gặp phải tình trạng không được động đến DAX trong vài tuần, thậm chí vài tháng. Cho đến khi bạn cần giải quyết một yêu cầu phức tạp, bạn mới ngã ngửa khi nhận ra mình không biết nên bắt đầu từ đâu hay vận dụng kiến thức nào. Bạn bắt đầu làm quen lại với DAX và xử lý được công việc khi đó. Nhưng bạn lại tiếp tục chu kỳ như vậy. 

Hãy kết hợp việc học tập và tìm hiểu thêm về DAX trong công việc hàng ngày của bạn nếu không muốn gặp phải tình trạng trên. Nếu bạn không thể làm việc cả ngày trên DAX, ít nhất hãy cố gắng phân bổ thời gian mỗi tuần để làm việc theo cách của bạn. Đừng để hàng tháng trôi qua mà không viết được một công thức hay hiểu thêm một khái niệm mới nào. 

Lý do #3: DAX có ít khái niệm quan trọng nhưng trừu tượng với đa số mọi người 

Toàn bộ ngôn ngữ DAX chỉ dựa trên một số khái niệm quan trọng: 

  • Evaluation contexts 
  • Iterators 
  • Context transition 
  • Expanded tables 

Nếu bạn nắm vững 2 khái niệm đầu tiên, bạn là một chuyên gia giỏi. Nếu bạn nắm vững được thêm khái niệm thứ 3, bạn là một “ninja” DAX (xịn hơn chuyên gia). Nếu bạn làm chủ cả 4 khái niệm này, bạn là một bậc thầy về DAX. “Làm chủ” ở đây bao gồm việc hiểu sâu và vận dụng một cách linh hoạt, chứ không phải chỉ dừng ở mức đọc hiểu một số ví dụ sử dụng nó. 

Học DAX không có nghĩa là tìm hiểu và nhớ tất cả các hàm một cách máy móc. Bạn có thể là bậc thầy về DAX kể cả khi không biết ý nghĩa của đối số thứ ba của RANKX. Chúng ta nên tập trung vào việc tư duy thay vì ghi nhớ. 

Bạn cần nắm vững kiến thức nền tảng và biến chúng thành kiến thức của riêng bạn bằng cách thực hành thật nhiều. Đừng bao giờ ngừng nghiên cứu một công thức chỉ vì nó chạy được. Bạn cần có sự hiểu về cách thức một công thức được thực thi, các lưu ý khi sử dụng nó thay vì công thức như một thói quen. 

Hãy luôn tò mò và tìm hiểu đến cùng vấn đề. Đừng viết công thức với mục đích duy nhất là để tạo ra một con số. Hãy tò mò liệu đó có thực sự là cách tốt nhất để tính con số đó hay không. Khi code của bạn xảy ra lỗi, bạn cần dừng lại, đọc kỹ và hiểu chính xác nó sai ở đâu. Chỉ khi bạn biết vấn đề nằm ở đâu bạn mới có thể khắc phục được nó. 

Lý do #4: DAX trong Power BI cực kỳ logic 

DAX là một ngôn ngữ dựa trên toán học và nó dựa trên những khái niệm giống như lý thuyết toán học. Nếu bạn là kiểu người rất logic thì có thể bạn sẽ yêu thích DAX. Nếu không, bạn sẽ cần dành thời gian để làm quen với ngôn ngữ này. 

Hãy nhìn DAX như một trò chơi. Khi bắt đầu với DAX, hãy nghĩ về một nỗi đau mà bạn muốn giải quyết, chẳng hạn: “Tôi muốn viết một biểu thức tính độ tuổi trung bình của khách hàng tại thời điểm họ mua đôi giày đầu tiên từ cửa hàng của tôi”. Bạn có thể phải mất hàng giờ, thậm chí là hàng ngày để giải quyết vấn đề này. Tuy nhiên, đó sẽ là khoảng thời gian hiệu quả nhất mà bạn từng đầu tư trên con đường học DAX. Nếu bạn chỉ nghĩ: “Tôi cần con số này, không quan trọng công thức nhanh hay gọn, tôi chỉ cần một kết quả”, thì cuối cùng bạn có thể lãng phí rất nhiều thời gian. 

Đối với DAX, bạn cần nắm vững lý thuyết trước khi đi vào giải quyết các bài toán thực tế. Học lý thuyết từ thực hành là một con đường khó khăn hơn nhiều. Các bạn có thể tìm kiếm để có các công thức tham khảo, nhưng hãy đảm bảo rằng bạn hiểu rõ công thức đó hoạt động như thế nào chứ đừng mang về và chạy thử “cầu may”. Mỗi công thức sẽ cư xử theo cách khác nhau với từng mô hình dữ liệu khác nhau, bạn có thể cần viết lại, điều chỉnh để công thức chạy đúng theo cách các bạn cần. 

Cách thức DAX được xây dựng cũng đúng với cái tên của nó – Data Analytics Expressions. DAX được xây dựng dựa trên các nhu cầu trong phân tích dữ liệu, và bạn cần có tư duy bóc tách vấn đề ra thành từng phần nhỏ hơn để có thể giải quyết các công thức phức tạp. 

Lý do #5: Khi làm việc với DAX cần lưu ý đến từng chi tiết nhỏ nhất. 

Mình thường thấy các bạn mới làm Data Analyst dừng lại ngay khi viết được công thức DAX và nó có vẻ ra đúng dữ liệu. Nhưng khi làm việc với DAX, bạn không được phép bỏ quên một chi tiết dù rất nhỏ.  

Bạn không để ý rằng “=” và “==” sẽ hành xử khác nhau khi có dính đến dữ liệu BLANK(). Bạn quên rằng bối cảnh hàng (row context) không đồng bộ qua các mối quan hệ? Bạn có thể viết ra các chỉ số đúng trong trường hợp bạn nhìn trên biểu đồ nhưng không đúng khi sử dụng trong các biểu đồ khác hoặc khi dữ liệu được cập nhật.  

Nếu bạn nghiêm túc muốn trở thành chuyên gia về DAX, bạn không chỉ cần hiểu nó mà còn phải thành thạo các lưu ý nhỏ nhất về nó. Bạn sẽ nắm vững lý thuyết sau khi thực hành với hàng tấn công thức và hiểu chính xác cách các phần được liên kết với nhau trong một công thức. Một khi bạn đã tìm hiểu tất cả các chi tiết sau nhiều lần luyện tập, bạn có thể hình dung chi tiết được từng công thức của bạn nên được viết ra sao để tối ưu nhất, có những lưu ý hay điểm hạn chế nào cần kiểm tra với từng trường hợp, mô hình dữ liệu cụ thể. 

Lý do #6: Bạn cần một trình soạn thảo tốt 

Nếu bạn cho rằng việc viết DAX trong text box là một trải nghiệm chán nản. Đặc biệt khi bạn muốn kiểm tra kỹ hơn kết quả của các biến trung gian, các bảng tạm bạn sử dụng hay giá trị của từng biến khi thực thi. Bạn thắc mắc tại sao không có một trình soạn thảo mạnh mẽ và đầy đủ tính năng để viết DAX. 

Thanh công thức đáp ứng đủ cho hầu hết các nhu cầu cơ bản, nhưng với những mô hình lớn và phức tạp với hàng chục, hàng trăm DAX measures giống như viết một cuốn sách 800 trang trên điện thoại di động của bạn, nơi bạn có thể xem từng đoạn một. Dù lý do là gì thì việc soạn thảo DAX trong thanh công thức có lẽ là điều duy nhất không thay đổi kể từ phiên bản DAX đầu tiên, trong Power Pivot cho Excel. Việc thiếu một trình soạn thảo thân thiện là một trong những lý do chính khiến việc học DAX có vẻ khó khăn. 

Nếu muốn tìm hiểu DAX, hãy bắt đầu với DAX Studio và các công cụ hỗ trợ thay vì thao tác trực tiếp trên Power BI. Bằng cách viết các truy vấn đơn giản, xem ngay kết quả, định dạng mã bằng một lần nhấn phím, ràng buộc về trải nghiệm người dùng có thể được loại bỏ và bạn có thể sẽ nhận ra vấn đề một cách dễ dàng hơn.

Dax trong Power BI

Lý do #7: Bạn cần nghiên cứu DAX một cách nghiêm túc và có hệ thống 

Bạn có đang học một ngôn ngữ bằng cách tìm kiếm các ví dụ trên Google, thử chúng trên mô hình của bạn, sửa lỗi cho đến khi nó chạy được? Đây là cách tiếp cận phổ biến với hầu hết các ngôn ngữ lập trình. Đây cũng là cách chúng ta học nói, không có lý thuyết, chỉ có làm rồi sai rồi sửa! 

Không giống với các ngôn ngữ lập trình đó, DAX giống toán học, thống kê, vật lý hơn. Bạn không thể học DAX chỉ bằng cách thử và sai. Bạn cần tiếp cận DAX như cách bạn học một chủ đề toán học: Bạn cần nghiên cứu nó. Chỉ khi hiểu bước 1, bạn mới có thể làm bước 2. 

Trên thực tế, nhiều người dùng tìm đến DAX vì họ muốn giải quyết một vấn đề cụ thể: Họ muốn làm báo cáo một cách nhanh gọn. Tuy nhiên, cách tiếp cận này không hiệu quả với DAX vì DAX cần thời gian để tìm hiểu và nghiên cứu một cách sâu sắc. DAX được thực thi trên nền tảng các Data Model được xây dựng, việc hiểu các hàm chưa đủ mà các bạn cần phải hiểu rất rõ ràng về cách thức Data Model được thiết kế, mục tiêu phân tích và bài toán kinh doanh liên quan như thế nào. Cách thức các công thức DAX được quy hoạch, tổ chức và tái sử dụng lẫn nhau trong một mô hình cũng là việc các bạn sẽ mất thời gian để nghiên cứu và thành tạo. 

Đừng cố gắng giải quyết những vấn đề phức tạp trước khi bạn có đủ kiến thức cần thiết để hiểu chính xác những gì bạn đang làm. 

Kết luận 

DAX đơn giản vì các nguyên tắc của DAX không quá phức tạp. Nhưng DAX không hề dễ dàng để thành thạo vì bạn cần rèn luyện thật nhiều cho đến khi bạn thực sự thành thạo và hiểu chúng. Nếu như bạn đang đi quá nhanh để đạt được mục tiêu của mình trong việc tạo lập báo cáo Power BI thì việc lấp đầy những lỗ hổng kiến thức về DAX sẽ dần trở nên rất khó khăn. 

Vậy nên, đừng bỏ cuộc khi cảm thấy mọi thứ vẫn còn mơ hồ, hãy ôn lại những nguyên tắc cơ bản, nghiên cứu chúng một lần nữa. Bạn sẽ đạt được kết quả tốt hơn sau khi đã hiểu hơn về DAX. 

Chia sẻ bài viết này

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

This site uses Akismet to reduce spam. Learn how your comment data is processed.