Professional Documents
Culture Documents
8:00 – 8:30 Giới thiệu nội dung đào tạo 8:00 – 9:30 Thiết kế report trên Power BI
Measure và một số hàm DAX
8:30 – 9:15 Lý thuyết và thực hành kết nối dữ liệu
9:15 – 9:25 Nghỉ giải lao 9:30 – 9:40 Nghỉ giải lao
9:25 – 11:00 Hướng dẫn xử lý chuẩn hóa dữ liệu 9:40 – 11:00 Thiết kế report (tt)
NGHỈ TRƯA NGHỈ TRƯA
12:30 – 14:00 Hướng dẫn xử lý chuẩn hóa dữ liệu (tt) 12:30 – 14:00 Thiết kế report (tt)
14:00 – 14:10 Nghỉ giải lao 14:00 – 14:10 Nghỉ giải lao
14:10 – 16:00 Lý thuyết và thực hành Data Model 14:10 – 16:00 Hướng dẫn publish, share report
Nội dung
Mục đích khóa học
Kết nối và chuyển dữ liệu vào màn hình Power BI Query Editor
Bước 2
Xử lý, hoàn thiện dữ
liệu
(Power BI Query Editor)
Chuyển dữ liệu hoàn thiện vào Power BI
Report
Bước 3 • Dữ liệu
Xây dựng báo cáo • Mô hình quan hệ
(Power BI)
• Thiết kế báo cáo
Giao diện Power BI Query Editor
Kết nối dữ liệu Cập nhật dữ liệu khi có thay đổi ở nguồn
Data
Model
Thanh công cụ
Thanh công
thức Vùng đặt tên
bảng
Danh sách
bảng dữ liệu Lịch sử thao
Vùng thể hiện và xử lý
tác
dữ liệu
2. Giới thiệu các thanh công cụ
HOME: gồm các cài đặt chung và các công cụ chỉnh sửa bảng phổ biến
TRANSFORM: gồm các công cụ chỉnh sửa các bảng đang có (chia/gộp, chỉnh sửa, xử lý text….)
ADD COLUMN: gồm các công cụ hỗ trợ tạo bảng, tạo cột mới(dựa trên điều kiện: ngày, công thức …)
2.Thao tác chỉnh sửa bảng cơ bản
Sắp xếp dữ liệu Đổi loại dữ liệu
Note: với dữ liệu dạng Date, nên thao tác trên “Add Column” để thêm cột mới chứ
không nên xử lý trực tiếp trên dữ liệu “Transform”
PRO TIP:
Nên tạo một bảng Calendar lưu Ngày tháng năm trong trường hợp cần phân tích dữ liệu theo chiều
thời gian. Ví dụ: doanh thu bán hàng theo ngày, tháng, năm.
2. Thêm cột Index
Conditional Column cho phép tạo thêm 1 cột dữ liệu dựa trên mệnh đề điều
kiện IF…ELSE
2. Grouping Data (Tổng hợp số liệu theo nhóm)
Group by cho phép sắp xếp dữ liệu theo các nhóm và cấp độ (doanh thu theo
ngày, doanh thu theo sản phẩm…)
NOTES !
Không bởi vì có thể gộp bảng mà ta
luôn dùng Merge Queries để giảm
số lượng bảng.
Thực tế, trong Power BI, sẽ tốt hơn
nếu chia tập dữ liệu ra thành các
bảng riêng và tạo quan hệ cho
chúng.
2. Append Queries (gộp các bảng theo chiều dọc)
PRO TIP:
Bản chất của Kết nối dữ liệu “Folder” (Get Data > More > Folder) là Append Queries
2. Một số lưu ý khi xử lý dữ liệu đầu vào
Dữ liệu nên được hoàn thiện trước khi đưa vào màn hình thiết kế report của Power BI
• Dữ liệu không hoàn thiện thì khi xây dựng báo cáo sẽ dễ gặp sai sót và mất nhiều thời gian để khắc phục.
• Việc xử lý dữ liệu trên Power BI có thể mất nhiều thời gian. Do đó nếu có thể thì nên xử lý trên các nguồn
dữ liệu trước sao cho hoàn thiện nhất có thể.
• Nếu chưa xử lý dữ liệu xong mà cần lưu file đang làm việc lại, lưu ý click chọn Apply Later để chỉ lưu quá
trình làm việc mà không đẩy dữ liệu vào Power BI. Nếu chọn Apply, dữ liệu sẽ đẩy vào Power BI và báo lỗi.
Khi tắt màn hình làm việc, click Not now .
• Khi quay lại làm việc, vào Home > Transform Data để mở màn hình Query Editor.
2. Một số lưu ý (tt)
Dữ liệu nguồn nên được lưu ở 1 thư mục cố định
• Không nên thay đổi nơi lưu dữ liệu nguồn. Vì khi cập nhật lại dữ liệu, Power BI
sẽ báo lỗi.
• Nếu dữ liệu nguồn thay đổi giá trị, hoặc thêm bớt file, từ màn hình chính của
Power BI vào Home > Refresh để cập nhật lại dữ liệu.
• Việc Refresh này sẽ mất thời gian nên chỉ thực hiện khi dữ liệu nguồn thay đổi
giá trị.
Thực hành: Kết nối và xử lý dữ liệu đầu vào
Kết nối dữ liệu
• Excel: periods.xlsx
• Folders: sale_2021
Xử lý dữ liệu
- Thao tác trên màn hình Query Editor
• Đổi tên Table
• Xử lý các dòng, cột vô nghĩa - Click Close & Apply để load data vào Power BI
• Xử lý kiểu dữ liệu (data type)
Danh sách
bảng, field,
measure
3.1 Phân biệt các thành phần ở vùng Fields
Bảng dữ liệu
Cột kiểu số
Measure: chỉ số được tính toán từ việc tổng hợp dữ liệu trên bảng
Calculated Column: các cột được thêm mới sau này, giá trị tham chiếu theo từng dòng
trên bảng
Cột mới với dữ liệu được gom nhóm theo các tiêu chí do người dùng định nghĩa.
Cây phân cấp dữ liệu do người dùng tự định nghĩa, căn cứ trên các cột dữ liệu có sẳn
Lưu ý: Nếu dữ liệu nguồn thay đổi giá trị, click vào Home > Refresh để cập nhật lại dữ
liệu trên Power BI
3.1 Calculated Columns (cột tính toán)
Calculated columns là cột mở rộng của bảng. Mỗi giá trị trong cột này được tính
toán trong ngữ cảnh tham chiếu đến các giá trị có sẳn ở mỗi dòng dữ liệu trong
bảng.
• Dữ liệu của Calculated columns được tính toán trong quá trình tạo cột và được lưu trữ trong
mô hình.
• Calculated columns giống như tất cả các cột trong bảng, có thể sử dụng trên báo cáo, hoặc
dùng để tạo mối quan hệ với các bảng khác trong mô hình.
• Việc thêm Calculated columns ở màn hình chính Power BI khác với thêm cột ở màn hình
Query Editor. Nó linh động hơn, có thể áp dụng các biểu thức DAX, công thức tính toán phức
tạp. Việc thêm cột ở màn hình Query Editor mang tính chất xử lý dữ liệu dựa trên các công cụ
sẳn có, không dùng DAX.
3.1 Measures (Chỉ số)
Measure là chỉ số được tính toán trong ngữ cảnh tổng hợp giá trị của nhiều
dòng trong 1 bảng.
• Sử dụng Measure khi cần làm việc trên các giá trị tổng hợp. Ví dụ: Tổng doanh thu, tỷ
lệ % tăng trưởng doanh thu qua các năm.
• Measure không được lưu trữ trong mô hình. Các tính toán của Measure được thực
hiện khi người dùng tương tác với báo cáo.
• Mỗi measure cần được xác định trong một bảng. Tuy nhiên, thực tế, ta có thể di
chuyển measure ra khỏi bảng mà không làm mất chức năng của nó.
3.1 So sánh Calculated Column và Measure
• Giá trị được tính toán tham chiếu theo • Giá trị được tính toán dựa vào các kết
dòng quả lọc từ dữ liệu trong bảng.
• Được lưu trong mô hình dữ liệu. • Không lưu trong mô hình
• Giá trị được cập nhật khi nguồn dữ liệu
thay đổi • Cập nhật khi thay đổi điều kiện truy
vấn dữ liệu
• Thường được sử dụng trong các trục
của biểu đồ, để đặt kết quả tính toán • Thường sử dụng trong các vùng giá trị
vào biểu đồ slicers, để làm điều kiện của biểu đồ
lọc (filter) trong các biểu thức DAX
khác
3.1 Tạo mới Measure và Column
Option 1: Chọn “New Measure” hoặc “New Option 2: Vào màn hình Data, chọn bảng,
Column” trong tab Home, màn hình Data right click, hoặc chọn trên tab Fields
Ví dụ: bảng ITEM và bảng TRANSACTION phản ánh mối quan hệ: 1 item
có thể tham gia trong 1 hoặc nhiều giao dịch (transaction)
• * - * nhiều – nhiều (lặp dữ liệu, ít dùng): 1 giá trị dữ liệu có thể xuất
hiện nhiều lần trong cả bảng danh mục và bảng dữ liệu.
Hạn chế tạo các quan hệ nhiều nhiều, vì khó theo dõi và kiểm soát dữ
liệu.
• 1 – 1 một – một (lặp dữ liệu, ít dùng): 1 giá trị dữ liệu chỉ xuất hiện 1
lần trong cả 2 bảng quan hệ.
3.2 Tạo và chỉnh sửa thuộc tính của quan hệ
Option 1: Chọn 1 bảng cần tạo quan hệ với các bảng Option 2: Click vào Manage relationships để tạo và
khác. Click và kéo khóa chính hoặc khóa ngoại đến nhận dạng relationships.
bảng còn lại. Double click lên các mũi tên chỉ quan
hệ để chỉnh sửa thuộc tính
3.2 Một số lưu ý
Xây dựng 1 Mô hình dữ liệu quan hệ tiêu chuẩn ngay từ đầu
• Đảm bảo mỗi bảng là 1 bảng riêng biệt, có mục đích cụ thể.
• Sử dụng quan hệ thay cho Merge table vì bảng dài và hẹp luôn tốt hơn bảng ngắn và rộng. Thời gian truy
vấn dữ liệu sẽ nhanh hơn.
Tránh tạo những quan hệ phức tạp, không rõ ràng nếu không cần thiết.
Ví dụ: quan hệ nhiều nhiều. Khi tạo các Measure hay trình bày dữ liệu lên biểu đồ, quan hệ nhiều
nhiều sẽ không cho kết quả chính xác.
Thực hành mô hình quan hệ
Các table
• Sale_2021: Doanh thu bán hàng của các sản phẩm trong năm 2021
• Period: table danh mục tổng hợp Thời gian theo kỳ (Tháng-Năm)
Các trường
dữ liệu chọn
hiển thị trên
Vùng hiển thị báo cáo, biểu
điều kiện lọc đồ
dữ liệu
• Thường quy định kiểu dữ liệu đầu vào • Thường không quy định, nếu sai thì
• Chỉ tham chiếu theo Cột hoặc Bảng báo lỗi.
• Kết quả trả về có thể là giá trị, hoặc • Tham chiếu theo Ô-vùng, cột – bảng
bảng • Kết quả trả về là 1 giá trị
• DAX yêu cầu tạo ra các mối quan hệ • Có thể làm việc với các bảng độc lập
giữa các bảng để sử dụng
Các hàm DAX phổ biến (tham khảo)
Tài liệu tham khảo: https://docs.microsoft.com/en-us/dax/dax-function-reference
Cấu trúc của DAX
TÊN MEASURE
• Note: Measure luôn ở trong dấu []
khi tham chiếu đến công thức nên có Tên COLUMN tham chiếu
thể sử dụng khoảng trắng trong tên
Measure
HÀM (Function)
• Note: Measure luôn phải sử dụng
hàm để tính toán giá trị. Calculation Tên TABLE tham chiếu
column có thể sử dụng hàm hoặc
không.
Dấu trong DAX
Loại số học Ý nghĩa Ví dụ Loại so sánh Ý nghĩa Ví dụ
+ Cộng 5+2 = Bằng [ManufacturerID]=7
- Trừ 7–3 > Lớn hơn [Unit] > 1
* Nhân 3*4 < Nhỏ hơn [Revenue] < 89
/ Chia 9/3 >= Lớn hơn hoặc bằng [Unit] > =1
^ Mũ 2^5 <= Bé hơn hoặc bằng [Revenue] <= 89
<> Khác [Unit] <> 1
MAX() Trả về giá trị lớn nhất trong 1 cột =MAX(ColumnName) hoặc =MAX(Scalar1, [Scalar2])
MIN() Trả về giá trị nhỏ nhất trong 1 cột =MIN(ColumnName) hoặc =MIN(Scalar1, [Scalar2])
=SUMX(Table, Expression)
Tên hàm
Bảng mà trong đó công thức sẽ chạy Biểu thức
Ví dụ:
• SUMX
Ví dụ: Sales Ví dụ:
• COUNTX
• AVERAGEX [Revenue]
• RANKX
• MAXX/MINX DIVIDE([VanArsdel Sales],Sales[Sales])
TIP:
Tưởng tượng rằng hàm này sẽ thêm 1 cột tạm vào trong bảng, tính giá trị của dòng (dựa trên biểu
thức), sau đó tổng hợp giá trị theo hàmX
Hàm LOGICAL cơ bản
UPPER/LOWER/
Đổi chuỗi thành kiểu hoa, thường, trên =UPPER/LOWER/PROPER(Text)
PROPER()
=CALCULATE(Expression,[Filter1],[Filter2],…)
Tên của Measure đã tồn tại hoặc Các biểu thức lọc
một công thức DAX (Note: yêu cầu đơn giản, giá trị cố định; không thể tạo
filter trên một measure khác)
Ví dụ: SUM(Sales[Revenue])
Ví dụ: Manufacture[ManufacturerID]=7
TIP:
CALCULATE hoạt động tương tự SUMIF hoặc COUNTIF trong Excel, khác biệt là nó có thể tính toán
dựa trên mọi hàm đơn giản (không chỉ SUM, COUNT,…) có thể gọi dễ hiểu là “CALCULATEIF”
Nhóm hàm FILTER: ALL
ALL() Trả về tất cả các hàng trong một bảng hoặc tất cả các giá trị trong một cột, bỏ qua mọi bộ lọc
Bảng hoặc cột muốn bỏ đi các điều Danh sách cột chi tiết muốn bỏ đi điều kiện lọc
kiện lọc
Note:
Ví dụ: Sales • Nếu tham số đầu tiên là Table, ta có thể chỉ định các cột bổ
sung.
Sales[Zip]
• Tất cả các cột phải cùng 1 Table và có tên table kèm theo
=FILTER(Table, FilterExpression)
NOTE!
Tên bảng để lọc Biểu thức lọc, theo các hàng của bảng FILTER được sử dụng để thêm 1 filter
context mới, và có thể kiểm soát các điều
Ví dụ: Sales Ví dụ: Product[ProductID]=1086 kiện lọc phức tạp tốt hơn CALCULATE
Product[Category]=“MIX”
FILTER trả về kết quả là 1 bảng, nó hay
được sử dụng để tạo ra các input cho
hàm
TIP:
Vì FILTER đọc dữ liệu theo từng hàng trong bảng, tốc độ xử lý sẽ chậm hơn, do đó, không nên sử dụng
hàm này nếu CALCULATE có thể làm được chức năng tương tự
Nhóm hàm FILTER: RELATED
RELATED() Trả về các giá trị liên quan theo hàng của bảng dựa trên relationships với các bảng khác
=RELATED(ColumnName)
NOTE!
Cột chứa các giá trị ta muốn truy xuất
RELATED hoạt động gần giống hàm
VLOOKUP của Excel – nó sử dụng mối
Ví dụ: Product[Product]
quan hệ giữa các bảng để đẩy dữ liệu từ
Manufacturer[Manufacturer]
một bảng sang bảng khác như một cột
mới
TIP:
Chỉ nên dùng hàm RELATED trong measure để áp dụng hàm FILTER hoặc SUMX, hạn chế dùng
RELATED để tạo ra 1 calculated column sẽ làm tăng kích thước file.
Hàm DATE/TIME cơ bản
DAY/MONTH/ Trả về ngày trong tháng (1-31), tháng =DAY/MONTH/YEAR(Date)
YEAR() trong năm (1-12), năm của 1 ngày
Trả về chênh lệch giữa 2 ngày, dựa trên =DATEDIFF(Date1, Date2, Interval)
DATEDIFF() khoảng thời gian đã chọn
Hàm TIME INTELLIGENCE
Các hàm Time Intelligence cho phép thực hiện các tính toán so sánh thời gian phổ biến
trong phân tích dữ liệu.
Performance =CALCULATE(Measure, DATESYTD(Calendar[Date])
To-Date
Sử dụng DATESQTD cho Quý hoặc DATESMTD cho tháng