Kiến thức
24 phút đọc

Tạo Các Cột Tính Bảng Tính Trong Power BI Desktop

1. Tạo các cột tính trong Power BI Desktop

Với các cột tính, bạn có thể thêm dữ liệu mới vào bảng đã có trong mô hình của mình. Nhưng thay vì truy vấn và tải các giá trị vào cột mới của bạn từ một nguồn dữ liệu, bạn tạo một công thức Data Analysis Expressions (DAX) để xác định các giá trị của cột. Trong Power BI Desktop, các cột được tính toán được tạo bằng cách sử dụng tính năng cột mới trong dạng xem Báo cáo , dạng xem Dữ liệu hoặc dạng xem Mô hình .

Không giống như các cột tùy chỉnh được tạo như một phần của truy vấn bằng cách sử dụng Add Custom Column trong Power Query Editor, các cột tính được tạo trong dạng xem Báo cáo , dạng xem Dữ liệu hoặc dạng xem Mô hình dựa trên dữ liệu bạn đã tải vào mô hình. Ví dụ: bạn có thể chọn nối các giá trị từ hai cột khác nhau trong hai bảng khác nhau nhưng có liên quan với nhau, thực hiện phép cộng hoặc trích xuất các chuỗi con.

Các cột tính mà bạn tạo xuất hiện trong danh sách Fields giống như bất kỳ trường nào khác, nhưng chúng sẽ có một biểu tượng đặc biệt cho biết các giá trị của cột là kết quả của một công thức. Bạn có thể đặt tên cho các cột của mình theo bất cứ điều gì bạn muốn và thêm chúng vào phần trực quan hóa báo cáo giống như các trường khác.

Các cột tính xuất hiện trong danh sách Fields trong Power BI Desktop

Các cột tính sẽ tính toán kết quả bằng cách sử dụng DAX, một ngôn ngữ công thức được thiết kế để hoạt động với dữ liệu quan hệ như trong Power BI Desktop. DAX bao gồm một thư viện gồm hơn 200 hàm, toán tử và cấu trúc. Nó cung cấp sự linh hoạt to lớn trong việc tạo các công thức để tính toán kết quả cho bất kỳ nhu cầu phân tích dữ liệu nào. 

Công thức DAX tương tự như công thức Excel. Trên thực tế, DAX có nhiều chức năng giống như Excel. Tuy nhiên, các hàm DAX có nghĩa là hoạt động trên dữ liệu được cắt hoặc lọc theo cách tương tác trong báo cáo, như trong Power BI Desktop. Trong Excel, bạn có thể có một công thức khác cho mỗi hàng trong bảng. Trong Power BI, khi bạn tạo công thức DAX cho cột mới, công thức này sẽ tính toán kết quả cho mọi hàng trong bảng. Các giá trị cột được tính toán lại khi cần thiết, chẳng hạn như khi dữ liệu cơ bản được làm mới và các giá trị đã thay đổi.

Hãy xem một ví dụ

Jeff là người quản lý vận chuyển tại Contoso và muốn tạo báo cáo hiển thị số lượng lô hàng đến các thành phố khác nhau. Jeff có một bảng Geography với các trường thành phố và tiểu bang riêng biệt. Tuy nhiên, Jeff muốn các báo cáo của họ hiển thị các giá trị thành phố và tiểu bang dưới dạng một giá trị trên cùng một hàng. Hiện tại, bảng Geography của Jeff không có trường mong muốn.

Ví dụ về các gái trị cột tính trong Power BI Desktop

Nhưng với một cột được tính toán, Jeff có thể kết hợp các thành phố từ cột City với các tiểu bang từ cột State.

Jeff nhấp chuột phải vào bảng Geography rồi chọn New Column. Jeff sau đó nhập công thức DAX sau vào thanh công thức:

Lấy giá trị cột tính trong Power BI Desktop bằng công thức DAX

Công thức này chỉ đơn giản là tạo một cột mới có tên CityState . Đối với mỗi hàng trong bảng Geography, nó lấy các giá trị từ cột City, thêm dấu phẩy và khoảng trắng, sau đó nối các giá trị từ cột State.

Bây giờ Jeff có trường mong muốn.

Hiển thị các gì trị cột tính được lấy trong Power BI Desktop bằng công thức DAX

Bây giờ Jeff có thể thêm nó vào khung báo cáo cùng với số lượng lô hàng. Với nỗ lực tối thiểu, giờ đây Jeff đã có trường CityState có thể được thêm vào bất kỳ loại trực quan hóa nào. Khi Jeff tạo một bản đồ mới, Power BI Desktop đã biết cách đọc các giá trị thành phố và tiểu bang trong cột mới.

Bản đồ trường CityState được hiển thị khi lấy các giá trị cột tính trong Power BI Desktop bằng công thức DAX

1.1 Hướng dẫn: tạo các cột tính trong Power BI Desktop

Đôi khi dữ liệu bạn đang phân tích không chứa một trường cụ thể mà bạn cần để nhận được kết quả mà bạn đang mong muốn. Đây là lúc các cột tính xuất hiện. Các cột tính sử dụng công thức Data Analysis Expressions (DAX) để xác định giá trị của cột, mọi thứ từ việc kết hợp các giá trị văn bản từ một vài cột khác nhau để tính toán một giá trị số từ các giá trị khác. Ví dụ: giả sử dữ liệu của bạn có các trường City và State, nhưng bạn muốn một trường Location duy nhất có cả hai, chẳng hạn như “Miami, FL”. Đây chính xác là mục đích của các cột tính.

Các cột tính tương tự như các thước đo ở chỗ cả hai đều dựa trên công thức DAX, nhưng chúng khác nhau về cách chúng được sử dụng. Bạn thường sử dụng các thước đo trong khu vực Value của trực quan hóa để tính toán kết quả dựa trên các trường khác. Bạn sử dụng các cột tính làm Trường mới trong các hàng, trục, chú giải và nhóm khu vực trực quan hóa.

Hướng dẫn này sẽ hướng dẫn bạn hiểu và tạo một số cột được tính toán cũng như sử dụng chúng trong trực quan hóa báo cáo trong Power BI Desktop.

1.2. Điều kiện tiên quyết

  • Hướng dẫn này dành cho người dùng Power BI đã quen với việc sử dụng Power BI Desktop để tạo các mô hình nâng cao hơn. Bạn hẳn đã biết cách sử dụng Get data và Power Query Editor để nhập dữ liệu, làm việc với nhiều bảng có liên quan và thêm trường vào bảng Báo cáo. Nếu bạn chưa quen với Power BI Desktop, hãy nhớ xem phần Bắt đầu với Power BI Desktop.
  • Hướng dẫn sử dụng Mẫu bán hàng Contoso cho Power BI Desktop , cùng một mẫu được sử dụng cho hướng dẫn Tạo thước đo của riêng bạn trong Power BI Desktop . Dữ liệu bán hàng này từ công ty hư cấu Contoso, Inc. đã được nhập từ cơ sở dữ liệu, vì vậy bạn sẽ không thể kết nối với nguồn dữ liệu hoặc xem nó trong Power Query Editor. Tải xuống và giải nén tệp trên máy tính của riêng bạn, sau đó mở tệp trong Power BI Desktop.

1.3. Tạo một cột tính với các giá trị từ bảng có liên quan

Trong Báo cáo bán hàng của mình, bạn muốn hiển thị các danh mục sản phẩm và danh mục phụ dưới dạng các giá trị đơn lẻ, như “Điện thoại di động – Phụ kiện”, “Điện thoại di động – Điện thoại thông minh & PDA”, v.v. Không có trường nào trong danh sách Fields cung cấp cho bạn dữ liệu đó nhưng có trường ProductCategory và trường ProductSubcategory, mỗi trường nằm trong bảng riêng của nó. Bạn có thể tạo một cột tính kết hợp các giá trị từ hai cột này. Các công thức DAX có thể tận dụng toàn bộ sức mạnh của mô hình mà bạn đã có, bao gồm các mối quan hệ đã tồn tại giữa các bảng khác nhau.

Tạo một cột tính với các giá trị từ các bảng có liên quan
  1. Để tạo cột mới của bạn trong bảng ProductSubcategory, nhấp chuột phải hoặc chọn dấu chấm lửng … bên cạnh ProductSubcategory trong ngăn Fields và chọn New column từ menu.
Bước 1: Tạo một cột tính với các giá trị từ các bảng có liên quan

Khi bạn chọn New column, thanh Formula bar sẽ xuất hiện dọc theo đầu bảng tùy biến Báo cáo, sẵn sàng để bạn đặt tên cho cột của mình và nhập công thức DAX.

Đặt tên cho một cột tính với các giá trị từ các bảng
  1. Theo mặc định, một cột được tính toán mới có tên là Column. Nếu bạn không đổi tên nó, các cột mới bổ sung sẽ được đặt tên là Column 2, Column 3, v.v. Bạn muốn cột của mình dễ nhận dạng hơn, vì vậy, trong khi tên Column đã được tô sáng trong thanh công thức, hãy đổi tên cột bằng cách nhập ProductFullCategory, sau đó nhập dấu bằng ( = ).
  2. Bạn muốn các giá trị trong cột mới của mình bắt đầu bằng tên trong trường ProductCategory. Vì cột này nằm trong một bảng khác nhưng có liên quan với nhau nên bạn có thể sử dụng hàm RELATED để giúp bạn lấy cột đó.

Sau dấu bằng, gõ r. Danh sách đề xuất thả xuống hiển thị tất cả các hàm DAX bắt đầu bằng chữ R. Việc chọn từng hàm sẽ hiển thị mô tả về tác dụng của nó. Khi bạn nhập, danh sách gợi ý sẽ mở rộng gần hơn với chức năng bạn cần. Chọn RELATED, rồi nhấn Enter.

Bước 3: Tạo một cột tính với các giá trị từ các bảng có liên quan

Một dấu ngoặc đơn mở xuất hiện, cùng với một danh sách gợi ý khác về các cột liên quan mà bạn có thể chuyển đến hàm RELATED, cùng với mô tả và chi tiết về các tham số dự kiến.

Danh sách gợi ý về các cột tính liên quan trong Power BI Desktop
  1. Bạn muốn cột ProductCategory từ bảng ProductCategory. Chọn ProductCategory[ProductCategory], nhấn Enter rồi nhập dấu ngoặc đơn đóng.
  1. Bạn muốn dấu gạch ngang và dấu cách để phân tách ProductCategories và ProductSubcategories trong các giá trị mới, do đó, sau dấu ngoặc đơn đóng của biểu thức đầu tiên, hãy nhập dấu cách, dấu và ( & ), dấu ngoặc kép ( ” ), dấu cách, dấu gạch ngang ( – ), dấu khác dấu cách, dấu nháy kép khác và dấu và khác. Công thức của bạn bây giờ sẽ giống như sau:

ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & ” – ” &

  1. Nhập dấu ngoặc mở ( [ ), sau đó chọn cột [ProductSubcategory] để hoàn tất công thức.
Bước 6: Tạo một cột tính với các giá trị từ các bảng có liên quan

Bạn không cần sử dụng một hàm RELATED khác để gọi bảng ProductSubcategory trong biểu thức thứ hai, bởi vì bạn đang tạo cột tính trong bảng này. Bạn có thể nhập [ProductSubcategory] với tiền tố tên bảng (đủ điều kiện) hoặc không có (không đủ điều kiện).

  1. Hoàn thành công thức bằng cách nhấn Enter hoặc chọn dấu kiểm trong thanh công thức. Công thức xác thực và tên cột ProductFullCategory xuất hiện trong bảng ProductSubcategory trong ngăn Fields.
Bước 7: Tạo một cột tính với các giá trị từ các bảng có liên quan

1.4. Sử dụng cột mới của bạn trong báo cáo

Giờ đây, bạn có thể sử dụng cột ProductFullCategory mới của mình để xem SalesAmount theo ProductFullCategory .

  1. Chọn hoặc kéo cột ProductFullCategory từ bảng ProductSubcategory vào bảng Báo cáo để tạo một bảng hiển thị tất cả các tên ProductFullCategory.
Bước 1: Sử dụng cột tính mới trong Power BI Desktop
  1. Chọn hoặc kéo trường SalesAmount từ bảng Sales vào bảng để hiển thị SalesAmount cho từng ProductFullCategory.
Bước 2: Sử dụng cột tính mới trong Power BI Desktop

1.5. Tạo 1 cột tính sử dụng hàm IF:

Mẫu bán hàng Contoso chứa dữ liệu bán hàng cho cả cửa hàng đang hoạt động và không hoạt động. Bạn muốn đảm bảo rằng doanh số bán hàng tại cửa hàng đang hoạt động được tách biệt rõ ràng với doanh số bán hàng tại cửa hàng không hoạt động trong báo cáo của mình bằng cách tạo trường Active StoreName. Trong cột Active StoreName mới được tính toán, mỗi cửa hàng đang hoạt động sẽ xuất hiện với tên đầy đủ của cửa hàng, trong khi doanh số bán hàng cho các cửa hàng không hoạt động sẽ được nhóm lại với nhau trong một mục hàng có tên là Inactive.

May mắn thay, bảng Stores có một cột có tên là Status, với các giá trị “On” cho các cửa hàng đang hoạt động và “Off” cho các cửa hàng không hoạt động, chúng ta có thể sử dụng cột này để tạo giá trị cho cột Active StoreName mới của mình. Công thức DAX của bạn sẽ sử dụng hàm IF logic để kiểm tra Status của từng cửa hàng và trả về một giá trị cụ thể tùy thuộc vào kết quả. Nếu Status của cửa hàng là “On”, công thức sẽ trả về tên của cửa hàng. Nếu là “Off”, công thức sẽ chỉ định Active StoreName là “Inactive”.

  1. Tạo một cột được tính toán mới trong bảng Stores và đặt tên là Active StoreName trong thanh công thức.
  1. Sau dấu = , bắt đầu nhập IF . Danh sách gợi ý sẽ hiển thị những gì bạn có thể thêm. Chọn IF.
Bước 2: Tạo 1 cột tính sử dụng hàm IF trong Power BI Desktop
  1. Đối số đầu tiên cho IF là kiểm tra logic xem Status của cửa hàng có phải là “On” hay không. Nhập dấu ngoặc mở [, liệt kê các cột từ bảng Store và chọn [Status].
Bước 3: Tạo 1 cột tính sử dụng hàm IF trong Power BI Desktop
  1. Ngay sau [Status] , hãy nhập =”On” , sau đó nhập dấu phẩy ( , ) để kết thúc đối số. Chú giải công cụ gợi ý rằng bây giờ bạn cần thêm một giá trị để trả về khi kết quả là TRUE.
Bước 4: Tạo 1 cột tính sử dụng hàm IF trong Power BI Desktop
  1. Nếu trạng thái của cửa hàng là “On”, bạn muốn hiển thị tên của cửa hàng. Nhập dấu ngoặc mở ( [ ) và chọn cột [StoreName], sau đó nhập dấu phẩy khác. Giờ đây, chú giải công cụ cho biết bạn cần thêm một giá trị để trả về khi kết quả là FALSE.
Bước 5: Tạo 1 cột tính sử dụng hàm IF trong Power BI Desktop
  1. Bạn muốn giá trị là “Inactive”, vì vậy hãy nhập “Inactive” rồi hoàn thành công thức bằng cách nhấn Enter hoặc chọn dấu kiểm trong thanh công thức. Công thức xác thực và tên của cột mới xuất hiện trong bảng Stores trong ngăn Fields.
Bước 6: Tạo 1 cột tính sử dụng hàm IF trong Power BI Desktop
  1. Bạn có thể sử dụng cột Active StoreName mới của mình trong trực quan hóa giống như bất kỳ trường nào khác. Để hiển thị SalesAmounts theo Active StoreName, hãy chọn trường Active StoreName hoặc kéo nó vào canvas Báo cáo, sau đó chọn trường Số tiền bán hàng hoặc kéo nó vào bảng. Trong bảng này, các cửa hàng đang hoạt động xuất hiện riêng lẻ theo tên nhưng các cửa hàng không hoạt động được nhóm lại với nhau ở cuối dưới dạng Inactive.
Bước 7: Tạo 1 cột tính sử dụng hàm IF trong Power BI Desktop

1.6. Những gì bạn đã học được

Các cột tính có thể làm phong phú dữ liệu của bạn và cung cấp thông tin chuyên sâu dễ dàng hơn. Bạn đã học cách tạo các cột tính trong ngăn Fields và thanh công thức, sử dụng danh sách đề xuất và chú giải công cụ để giúp xây dựng công thức của bạn, gọi các hàm DAX như RELATED và IF với các đối số thích hợp và sử dụng các cột được tính toán của bạn trong trực quan hóa báo cáo.

2. Tạo các bảng tính trong Power BI Desktop

Hầu hết thời gian, bạn tạo bảng bằng cách nhập dữ liệu vào mô hình của mình từ nguồn dữ liệu ngoài. Nhưng các bảng được tính toán cho phép bạn thêm các bảng mới dựa trên dữ liệu bạn đã tải vào mô hình. Thay vì truy vấn và tải các giá trị vào các cột của bảng mới từ nguồn dữ liệu, bạn tạo công thức Data Analysis Expressions (DAX) để xác định các giá trị của bảng.

DAX là ngôn ngữ công thức để làm việc với dữ liệu quan hệ, như trong Power BI Desktop. DAX bao gồm một thư viện gồm hơn 200 hàm, toán tử và cấu trúc, cung cấp tính linh hoạt cao trong việc tạo công thức để tính toán kết quả cho bất kỳ nhu cầu phân tích dữ liệu nào. Các bảng tính phù hợp nhất cho các phép tính trung gian và dữ liệu bạn muốn lưu trữ như một phần của mô hình, thay vì tính toán nhanh chóng hoặc dưới dạng kết quả truy vấn. Ví dụ: bạn có thể chọn hợp nhất hoặc kết hợp chéo hai bảng hiện có.

Cũng giống như các bảng Power BI Desktop khác, các bảng tính có thể có mối quan hệ với các bảng khác. Các cột trong bảng tính có kiểu dữ liệu, định dạng và thuộc về một loại dữ liệu. Bạn đặt tên cho các cột của mình theo bất cứ điều gì bạn muốn và thêm chúng để báo cáo trực quan hóa giống như các trường khác. Các bảng đã tính toán được tính toán lại nếu bất kỳ bảng nào mà chúng lấy dữ liệu từ đó được làm mới hoặc cập nhật, trừ khi bảng đó sử dụng dữ liệu từ một bảng DirectQuery; trong trường hợp với DirectQuery, bảng sẽ chỉ phản ánh các thay đổi sau khi tập dữ liệu đã được làm mới. Nếu một bảng cần sử dụng DirectQuery, thì tốt nhất bạn cũng nên sử dụng bảng tính trong DirectQuery.

2.1. Tạo một bảng tính toán

Bạn tạo các bảng tính bằng cách sử dụng tính năng New table trong Chế độ xem báo cáo, Chế độ xem dữ liệu hoặc Chế độ xem mô hình của Power BI Desktop.

Ví dụ: hãy tưởng tượng bạn là người quản lý nhân sự có một bảng Nhân viên Tây Bắc và một bảng Nhân viên Tây Nam khác . Bạn muốn kết hợp hai bảng thành một bảng duy nhất có tên là Nhân viên khu vực phía Tây.

Nhân viên Tây Bắc

Bangg tính toán nhân viên Tây Bắc

Nhân viên Tây Nam

Bảng tính toán nhân viên Tây Nam

Trong Chế độ xem báo cáo, Chế độ xem dữ liệu hoặc Chế độ xem mô hình của Power BI Desktop, trong nhóm Calculations , hãy chọn New table. Thao tác này dễ dàng hơn một chút trong Table Tools trong Chế độ xem Dữ liệu, bởi vì sau đó bạn có thể thấy ngay bảng tính mới của mình.

Hiển thị bảng tính mới trong chế độ xem báo cáo

Nhập công thức sau vào thanh công thức:

Western Region Employees = UNION(‘Northwest Employees’, ‘Southwest Employees’)

Một bảng mới có tên là Western Region Employees được tạo và xuất hiện giống như bất kỳ bảng nào khác trong ngăn Fields. Bạn có thể tạo mối quan hệ với các bảng khác, thêm thang đo và cột tính cũng như thêm trường vào báo cáo giống như với bất kỳ bảng nào khác.

Ví dụ về bảng tính mới trong Power BI Desktop
Hiển thị trường của bảng tính mới trong Power BI Desktop

2.2. Hàm cho các bảng được tính toán

Bạn có thể xác định một bảng được tính toán bằng bất kỳ biểu thức DAX nào trả về một bảng, bao gồm một tham chiếu đơn giản đến một bảng khác. Ví dụ:

New Western Region Employees = ‘Western Region Employees’

Bài viết này chỉ giới thiệu nhanh về các bảng tính. Bạn có thể sử dụng các bảng tính với DAX để giải quyết nhiều vấn đề phân tích. Dưới đây là một số hàm bảng DAX phổ biến hơn mà bạn có thể sử dụng:

  • DISTINCT
  • VALUES
  • CROSSJOIN
  • UNION
  • NATURALINNERJOIN
  • NATURALLEFTOUTERJOIN
  • INTERSECT
  • CALENDAR
  • CALENDARAUTO

Xem thông tin khai giảng Khóa học Business Intelligence mới nhất tại Mastering Data Analytics. Liên hệ 0961 48 48 66 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!