Forum breadcrumbs – You are here:ForumGiải pháp BSD cung cấp: Power BITài liệu hướng dẫn xây dựng và sử …
Tài liệu hướng dẫn xây dựng và sử dụng các hàm DAX trong Power BI
bsdinsight@bsdinsight-com
837 Posts
#1 · 30 March 2025, 08:07
Quote from bsdinsight on 30 March 2025, 08:07Tài liệu hướng dẫn hoặc bài giảng về DAX (Data Analysis Expressions) trong Microsoft Power BI, được trình bày bởi Svetlana Gubin, một Nhà phân tích Kinh doanh tại Sở Cảnh sát Oakland (Oakland PD), vào ngày 20 tháng 12 năm 2023, trong khuôn khổ Hiệp hội Quốc tế các Nhà phân tích Tội phạm (International Association of Crime Analysts – IACA). Tài liệu này tập trung vào việc giới thiệu DAX, cách sử dụng nó để phân tích dữ liệu, đặc biệt là dữ liệu tội phạm từ bộ dữ liệu CrimeWatch của Oakland, và cách áp dụng các tính năng nâng cao như Time Intelligence trong Power BI.
1. Giới thiệu về DAX
DAX là gì? DAX là ngôn ngữ công thức được sử dụng trong Power BI để thực hiện các phép tính, tạo các cột tính toán (calculated columns), thước đo (measures), và bảng tùy chỉnh nhằm phân tích dữ liệu và tạo báo cáo chi tiết. Mục tiêu: Giúp người dùng thao tác dữ liệu trong Power BI để tạo ra những hiểu biết giá trị (insights) và trực quan hóa dữ liệu hiệu quả.
2. Các khái niệm cơ bản
Measures (Thước đo): Là các phép tính tổng hợp dữ liệu (ví dụ: đếm, tổng, trung bình) được thực hiện trên bảng dữ liệu ảo. Ví dụ:Count of Incidents = COUNT(Crimes[RN Number])
đếm số lượng sự cố từ cột “RN Number” trong bảng “Crimes”. Calculated Columns (Cột tính toán): Tạo cột mới trong mô hình dữ liệu dựa trên công thức DAX. Ví dụ: phân loại thời gian sự cố là “Ngày” hay “Đêm” dựa trên giờ. Time Intelligence: Chức năng mạnh mẽ trong DAX để phân tích dữ liệu theo thời gian (ví dụ: tính tổng năm nay, so sánh với năm trước).
3. So sánh DAX và Excel
Excel: Công thức hoạt động trên từng ô (cells). Ví dụ:=(A1 * A2) – B2
. DAX: Công thức hoạt động trên bảng (tables) và cột (columns). Ví dụ:Evening Incidents = IF(Crimes[Event Time] > 19, “Night”, “Day”)
phân loại sự cố xảy ra sau 19h là “Đêm”. Điểm tương đồng: Cả hai đều có cú pháp logic tương tự như hàmIF
.
4. Dữ liệu mẫu: CrimeWatch
Nguồn dữ liệu: Bộ dữ liệu CrimeWatch từ Sở Cảnh sát Oakland, được công bố công khai tạihttps://data.oaklandca.gov/PublicSafety/CrimeWatch-Data/ppgh7dqv
, cập nhật lần cuối ngày 7 tháng 2 năm 2023. Ứng dụng: Tài liệu sử dụng dữ liệu này để minh họa cách áp dụng DAX trong Power BI để phân tích tội phạm.
5. Quy trình làm việc trong Power BI
Tải dữ liệu: Hướng dẫn cách nhập dữ liệu từ tệp CSV hoặc nguồn trực tuyến vào Power BI. Tạo bảng lịch (Calendar Table): Sử dụngCalendar = CALENDAR(“01-01-2018”, “12-31-2023″)
để tạo bảng thời gian phục vụ cho phân tích theo thời gian. Quản lý quan hệ (Relationships): Kết nối bảng “CrimeWatch” với bảng “Calendar” qua cột “Date” với mối quan hệ “nhiều-một” (many-to-one). Thay đổi kiểu dữ liệu: Đảm bảo cột “Date” được định dạng đúng để phân tích thời gian.
6. Công thức DAX thực tế
Cột tính toán:
Year = YEAR(‘Calendar'[Date])
: Trích xuất năm.MonthPrefix = FORMAT(‘Calendar'[Date], “MMM”)
: Trích xuất tên tháng (ví dụ: “Jan”). Thước đo:
Count = COUNT(‘CrimeWatch'[CaseNumber])
: Đếm số vụ án.YTDCount = TOTALYTD([Count], ‘Calendar'[Date])
: Tổng số vụ án từ đầu năm đến hiện tại (Year-To-Date).PYTDCount
: Tính tổng số vụ án từ đầu năm trước, dùng hàmDATEADD
để dịch chuyển thời gian.YOYTD%
: Tính phần trăm thay đổi so với năm trước (Year-Over-Year).
7. Quick Measures
Chức năng: Power BI cung cấp công cụ “Quick Measure” để tự động tạo các công thức DAX. Ví dụ: Tính tổng tích lũy (running total) của số vụ án theo ngày:Count of CaseNumber running total in Date = CALCULATE( COUNTA(‘CrimeWatch_2023′[CaseNumber]), FILTER( ALLSELECTED(‘CrimeWatch_2023′[Date]), ISONORAFTER(‘CrimeWatch_2023′[Date], MAX(‘CrimeWatch_2023′[Date]), DESC) ) ) Tính năng gợi ý: Sử dụng Copilot để đề xuất công thức DAX dựa trên nhu cầu.
8. Tính năng Time Intelligence
Ví dụ:
Tính tổng tháng (Month-To-Date):MTDCount = TOTALMTD([Count], ‘Calendar'[Date])
. So sánh tháng này với tháng trước (Month-Over-Month):MOMTDCount = [MTDCount] – [PMTDCount]
. Tính phần trăm thay đổi:MOMTD% = IF([PMTDCount] = 0, “NC”, DIVIDE([MOMTDCount], [PMTDCount]))
.
9. Các tính năng nâng cao trong Power BI
DAX Query View: Giao diện để viết và kiểm tra các truy vấn DAX. Preview Features: Các tính năng thử nghiệm như “Quick Measure Suggestions”, “Sparklines”, “Dynamic Format Strings”. Slicer: Bộ lọc trực quan, ví dụ: lọc dữ liệu theo năm (2022, 2023).
10. Tài liệu tham khảo
Sách:
Cấp cơ bản: Beginning DAX with Power BI (2018), The Definitive Guide to DAX (2019). Cấp nâng cao: DAX Cookbook (2020), Extreme DAX (2022). Time Intelligence: DAX Patterns (2020). Liên kết:
Tài liệu chính thức: Power BI, Power Query. Blog/YouTube: SQLBI, Guy in a Cube, Curbal.
11. Kết luận
Tài liệu hướng dẫn cách sử dụng DAX để phân tích dữ liệu tội phạm, từ cơ bản (đếm số vụ) đến nâng cao (so sánh theo thời gian). Svetlana Gubin cung cấp email liên hệ (Sguin@OaklandCA.gov
) để trả lời câu hỏi.
Ý nghĩa thực tế
Tài liệu này là một hướng dẫn thực hành dành cho những người mới bắt đầu hoặc muốn nâng cao kỹ năng sử dụng Power BI và DAX, đặc biệt trong lĩnh vực phân tích tội phạm. Nó kết hợp lý thuyết (cú pháp DAX) với ví dụ thực tế (dữ liệu CrimeWatch), giúp người học áp dụng ngay vào công việc.Nếu bạn cần giải thích chi tiết hơn về bất kỳ phần nào (ví dụ: cách viết một công thức DAX cụ thể), hãy cho tôi biết nhé!
Tài liệu hướng dẫn hoặc bài giảng về DAX (Data Analysis Expressions) trong Microsoft Power BI, được trình bày bởi Svetlana Gubin, một Nhà phân tích Kinh doanh tại Sở Cảnh sát Oakland (Oakland PD), vào ngày 20 tháng 12 năm 2023, trong khuôn khổ Hiệp hội Quốc tế các Nhà phân tích Tội phạm (International Association of Crime Analysts – IACA). Tài liệu này tập trung vào việc giới thiệu DAX, cách sử dụng nó để phân tích dữ liệu, đặc biệt là dữ liệu tội phạm từ bộ dữ liệu CrimeWatch của Oakland, và cách áp dụng các tính năng nâng cao như Time Intelligence trong Power BI.

1. Giới thiệu về DAX
-
DAX là gì? DAX là ngôn ngữ công thức được sử dụng trong Power BI để thực hiện các phép tính, tạo các cột tính toán (calculated columns), thước đo (measures), và bảng tùy chỉnh nhằm phân tích dữ liệu và tạo báo cáo chi tiết.
-
Mục tiêu: Giúp người dùng thao tác dữ liệu trong Power BI để tạo ra những hiểu biết giá trị (insights) và trực quan hóa dữ liệu hiệu quả.
2. Các khái niệm cơ bản
-
Measures (Thước đo): Là các phép tính tổng hợp dữ liệu (ví dụ: đếm, tổng, trung bình) được thực hiện trên bảng dữ liệu ảo. Ví dụ:
Count of Incidents = COUNT(Crimes[RN Number])
đếm số lượng sự cố từ cột “RN Number” trong bảng “Crimes”. -
Calculated Columns (Cột tính toán): Tạo cột mới trong mô hình dữ liệu dựa trên công thức DAX. Ví dụ: phân loại thời gian sự cố là “Ngày” hay “Đêm” dựa trên giờ.
-
Time Intelligence: Chức năng mạnh mẽ trong DAX để phân tích dữ liệu theo thời gian (ví dụ: tính tổng năm nay, so sánh với năm trước).
3. So sánh DAX và Excel
-
Excel: Công thức hoạt động trên từng ô (cells). Ví dụ:
=(A1 * A2) – B2
. -
DAX: Công thức hoạt động trên bảng (tables) và cột (columns). Ví dụ:
Evening Incidents = IF(Crimes[Event Time] > 19, “Night”, “Day”)
phân loại sự cố xảy ra sau 19h là “Đêm”. -
Điểm tương đồng: Cả hai đều có cú pháp logic tương tự như hàm
IF
.
4. Dữ liệu mẫu: CrimeWatch
-
Nguồn dữ liệu: Bộ dữ liệu CrimeWatch từ Sở Cảnh sát Oakland, được công bố công khai tại
https://data.oaklandca.gov/PublicSafety/CrimeWatch-Data/ppgh7dqv
, cập nhật lần cuối ngày 7 tháng 2 năm 2023. -
Ứng dụng: Tài liệu sử dụng dữ liệu này để minh họa cách áp dụng DAX trong Power BI để phân tích tội phạm.
5. Quy trình làm việc trong Power BI
-
Tải dữ liệu: Hướng dẫn cách nhập dữ liệu từ tệp CSV hoặc nguồn trực tuyến vào Power BI.
-
Tạo bảng lịch (Calendar Table): Sử dụng
Calendar = CALENDAR(“01-01-2018”, “12-31-2023″)
để tạo bảng thời gian phục vụ cho phân tích theo thời gian. -
Quản lý quan hệ (Relationships): Kết nối bảng “CrimeWatch” với bảng “Calendar” qua cột “Date” với mối quan hệ “nhiều-một” (many-to-one).
-
Thay đổi kiểu dữ liệu: Đảm bảo cột “Date” được định dạng đúng để phân tích thời gian.
6. Công thức DAX thực tế
-
Cột tính toán:
-
Year = YEAR(‘Calendar'[Date])
: Trích xuất năm. -
MonthPrefix = FORMAT(‘Calendar'[Date], “MMM”)
: Trích xuất tên tháng (ví dụ: “Jan”).
-
-
Thước đo:
-
Count = COUNT(‘CrimeWatch'[CaseNumber])
: Đếm số vụ án. -
YTDCount = TOTALYTD([Count], ‘Calendar'[Date])
: Tổng số vụ án từ đầu năm đến hiện tại (Year-To-Date). -
PYTDCount
: Tính tổng số vụ án từ đầu năm trước, dùng hàmDATEADD
để dịch chuyển thời gian. -
YOYTD%
: Tính phần trăm thay đổi so với năm trước (Year-Over-Year).
-
7. Quick Measures
-
Chức năng: Power BI cung cấp công cụ “Quick Measure” để tự động tạo các công thức DAX. Ví dụ: Tính tổng tích lũy (running total) của số vụ án theo ngày:Count of CaseNumber running total in Date = CALCULATE( COUNTA(‘CrimeWatch_2023′[CaseNumber]), FILTER( ALLSELECTED(‘CrimeWatch_2023′[Date]), ISONORAFTER(‘CrimeWatch_2023′[Date], MAX(‘CrimeWatch_2023′[Date]), DESC) ) )
-
Tính năng gợi ý: Sử dụng Copilot để đề xuất công thức DAX dựa trên nhu cầu.
8. Tính năng Time Intelligence
-
Ví dụ:
-
Tính tổng tháng (Month-To-Date):
MTDCount = TOTALMTD([Count], ‘Calendar'[Date])
. -
So sánh tháng này với tháng trước (Month-Over-Month):
MOMTDCount = [MTDCount] – [PMTDCount]
. -
Tính phần trăm thay đổi:
MOMTD% = IF([PMTDCount] = 0, “NC”, DIVIDE([MOMTDCount], [PMTDCount]))
.
-
9. Các tính năng nâng cao trong Power BI
-
DAX Query View: Giao diện để viết và kiểm tra các truy vấn DAX.
-
Preview Features: Các tính năng thử nghiệm như “Quick Measure Suggestions”, “Sparklines”, “Dynamic Format Strings”.
-
Slicer: Bộ lọc trực quan, ví dụ: lọc dữ liệu theo năm (2022, 2023).
10. Tài liệu tham khảo
-
Sách:
-
Cấp cơ bản: Beginning DAX with Power BI (2018), The Definitive Guide to DAX (2019).
-
Cấp nâng cao: DAX Cookbook (2020), Extreme DAX (2022).
-
Time Intelligence: DAX Patterns (2020).
-
-
Liên kết:
-
Tài liệu chính thức: Power BI, Power Query.
-
Blog/YouTube: SQLBI, Guy in a Cube, Curbal.
-
11. Kết luận
-
Tài liệu hướng dẫn cách sử dụng DAX để phân tích dữ liệu tội phạm, từ cơ bản (đếm số vụ) đến nâng cao (so sánh theo thời gian).
-
Svetlana Gubin cung cấp email liên hệ (
Sguin@OaklandCA.gov
) để trả lời câu hỏi.
Ý nghĩa thực tế
Tài liệu này là một hướng dẫn thực hành dành cho những người mới bắt đầu hoặc muốn nâng cao kỹ năng sử dụng Power BI và DAX, đặc biệt trong lĩnh vực phân tích tội phạm. Nó kết hợp lý thuyết (cú pháp DAX) với ví dụ thực tế (dữ liệu CrimeWatch), giúp người học áp dụng ngay vào công việc.
Nếu bạn cần giải thích chi tiết hơn về bất kỳ phần nào (ví dụ: cách viết một công thức DAX cụ thể), hãy cho tôi biết nhé!
- You need to login to have access to uploads.
Click for thumbs down.0Click for thumbs up.0
Last edited on 30 March 2025, 08:08 by bsdinsight