Excel DAX - Làm việc với Văn bản và Ngày tháng

DAX có thể được sử dụng trong các tình huống liên quan đến làm việc cùng với văn bản, trích xuất và soạn các giá trị ngày và giờ hoặc tạo giá trị dựa trên một điều kiện. Bạn có thể làm như sau với DAX -

  • Tạo một cột chính trong bảng bằng cách nối.
  • Soạn ngày dựa trên các phần ngày được trích xuất từ ​​ngày văn bản.
  • Xác định định dạng ngày tùy chỉnh.
  • Thay đổi kiểu dữ liệu bằng công thức.
    • Chuyển đổi số thực thành số nguyên.
    • Chuyển đổi số thực, số nguyên hoặc ngày tháng sang chuỗi.
    • Chuyển đổi chuỗi thành số thực hoặc ngày tháng.

Tạo một cột chính bằng cách ghép nối

Mô hình Dữ liệu trong PowerPivot chỉ cho phép một cột khóa duy nhất. Nó không hỗ trợ các khóa tổng hợp mà bạn có thể tìm thấy trong các nguồn dữ liệu bên ngoài. Do đó, nếu có bất kỳ khóa tổng hợp nào tồn tại trong một bảng trong nguồn dữ liệu, bạn cần kết hợp chúng thành một cột khóa duy nhất cho bảng trong Mô hình Dữ liệu.

Bạn có thể sử dụng hàm DAX CONCATENATE để kết hợp hai cột thành một cột duy nhất trong bảng trong Mô hình Dữ liệu. Hàm DAX CONCATENATE nối hai chuỗi văn bản thành một chuỗi văn bản. Các mục được kết hợp có thể là văn bản, số hoặc giá trị Boolean được biểu thị dưới dạng văn bản hoặc kết hợp của các mục đó. Bạn cũng có thể sử dụng tham chiếu cột nếu cột chứa các giá trị thích hợp.

= CONCATENATE ([Column1], [Column2])

Hàm DAX CONCATENATE chỉ chấp nhận hai đối số. Nếu bất kỳ đối số nào không thuộc kiểu dữ liệu văn bản, nó sẽ được chuyển đổi thành văn bản. Hàm DAX CONCATENATE trả về chuỗi được nối.

Ngày dựa trên phần ngày được trích ra từ ngày văn bản

Mô hình Dữ liệu trong Power Pivot hỗ trợ kiểu dữ liệu ngày giờ cho các giá trị ngày và giờ. Các hàm DAX hoạt động trên giá trị ngày và / hoặc thời gian yêu cầu kiểu dữ liệu ngày giờ cho các đối số.

Nếu nguồn dữ liệu của bạn chứa ngày có định dạng khác, trước tiên bạn cần trích xuất các phần ngày bằng công thức DAX và kết hợp các phần đó để tạo thành kiểu dữ liệu ngày giờ DAX hợp lệ.

Bạn có thể sử dụng các hàm DAX sau để trích xuất và soạn ngày tháng -

DATE - Trả về ngày đã chỉ định ở định dạng datetime.

DATEVALUE - Chuyển đổi ngày ở dạng văn bản thành ngày ở dạng datetime.

TIMEVALUE - Chuyển đổi thời gian ở định dạng văn bản thành thời gian ở định dạng ngày giờ.

Xác định định dạng ngày tùy chỉnh

Giả sử ngày tháng trong nguồn dữ liệu của bạn không được thể hiện bằng định dạng chuẩn. Bạn có thể xác định định dạng ngày tùy chỉnh để đảm bảo rằng các giá trị được xử lý chính xác. Chức năng DAX FORMAT cho phép bạn chuyển đổi giá trị thành văn bản theo định dạng được chỉ định.

FORMAT (<value>, <format_string>)

Hàm FORMAT trả về một chuỗi chứa giá trị được định dạng như được định nghĩa bởi format_string.

Bạn có thể sử dụng các định dạng Ngày và Giờ được xác định trước hoặc bạn có thể tạo các định dạng Ngày và Giờ do người dùng xác định cho chuỗi đối số format_string của hàm FORMAT.

Sau đây là các tên định dạng ngày và giờ được xác định trước. Nếu bạn sử dụng các chuỗi khác với các chuỗi được xác định trước này, chúng sẽ được hiểu là một định dạng ngày và giờ tùy chỉnh.

S. Không. Format_String & Description
1

"General Date"

Hiển thị ngày và / hoặc giờ. Ví dụ: 2/10/2015 10:10:32 AM

2

"Long Date" or "Medium Date"

Hiển thị ngày theo định dạng ngày dài. Ví dụ: Thứ 4, ngày 07 tháng 3 năm 2016

3

"Short Date"

Hiển thị ngày bằng định dạng ngày ngắn. Ví dụ: 02/03/2016

4

"Long Time"

Hiển thị thời gian sử dụng định dạng thời gian dài.

Thường bao gồm giờ, phút và giây.

Ví dụ: 10:10:32 AM

5

"Medium Time"

Hiển thị thời gian ở định dạng 12 giờ.

Ví dụ: 09:30 PM

6

"Short Time"

Hiển thị thời gian ở định dạng 24 giờ.

Ví dụ: 14:15

Ngoài ra, bạn có thể sử dụng các ký tự trong bảng sau để tạo định dạng ngày / giờ do người dùng xác định.

S. Không. Nhân vật & Mô tả
1

:

Dấu phân cách thời gian.

Dấu phân cách thời gian. Phân tách giờ, phút và giây khi các giá trị thời gian được định dạng.

2

/

Dấu phân cách ngày.

Phân tách ngày, tháng và năm khi các giá trị ngày được định dạng.

3

%

Được sử dụng để chỉ ra rằng ký tự sau đây phải được đọc dưới dạng định dạng một chữ cái mà không liên quan đến bất kỳ chữ cái nào ở cuối. Cũng được sử dụng để chỉ ra rằng một định dạng một chữ cái được đọc như một định dạng do người dùng xác định.

Sau đây là chi tiết của các nhân vật khác nhau.

  • %d - Hiển thị ngày dưới dạng số không có số 0 đứng đầu (ví dụ: 5).

  • %dd - Hiển thị ngày dưới dạng số có số 0 đứng đầu (ví dụ: 05).

  • %ddd - Hiển thị ngày dưới dạng viết tắt (ví dụ: Mặt trời).

  • %dddd - Hiển thị ngày dưới dạng tên đầy đủ (ví dụ: Chủ nhật).

  • %M - Hiển thị tháng dưới dạng số không có số 0 đứng đầu (ví dụ: tháng 1 được biểu thị bằng 1).

  • %MM - Hiển thị tháng dưới dạng số có số 0 đứng đầu (ví dụ: tháng 1 được biểu thị bằng 01).

  • %MMM - Hiển thị tháng dưới dạng viết tắt (ví dụ: tháng 1 được biểu thị là tháng 1).

  • %MMMM - Hiển thị tháng dưới dạng tên tháng đầy đủ (ví dụ: tháng 1).

  • %gg - Hiển thị chuỗi chu kỳ / kỷ nguyên (ví dụ: AD).

  • %h- Hiển thị giờ dưới dạng số không có số 0 ở đầu bằng cách sử dụng đồng hồ 12 giờ (ví dụ: 1:15:15 PM). Sử dụng%h nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %hh - Hiển thị giờ dưới dạng số với các số 0 ở đầu bằng cách sử dụng đồng hồ 12 giờ (ví dụ: 01:15:15 PM).

  • %H- Hiển thị giờ dưới dạng một số không có số 0 ở đầu bằng cách sử dụng đồng hồ 24 giờ (ví dụ: 13:15:15, 1:15:15). Sử dụng% H nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %HH - Hiển thị giờ dưới dạng một số với các số không ở đầu sử dụng đồng hồ 24 giờ (ví dụ: 13:15:15, 1:15:15).

  • %m- Hiển thị phút dưới dạng số không có số 0 ở đầu (ví dụ: 2: 1: 15). Sử dụng% m nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %mm - Hiển thị phút dưới dạng một số với các số 0 ở đầu (ví dụ: 2:01:15).

  • %s- Hiển thị số thứ hai dưới dạng một số không có số 0 ở đầu (ví dụ: 2: 15: 5). Sử dụng% s nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %ss - Hiển thị số thứ hai dưới dạng một số với các số 0 ở đầu (ví dụ: 2:15:05).

  • %f- Hiển thị phân số của giây. Ví dụff hiển thị phần trăm giây, trong khi ffffhiển thị phần mười nghìn giây. Bạn có thể sử dụng tối đa bảyfký hiệu ở định dạng do người dùng xác định. Sử dụng%f nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %t- Sử dụng đồng hồ 12 giờ và hiển thị chữ hoa A cho bất kỳ giờ nào trước buổi trưa; hiển thị chữ hoa P cho bất kỳ giờ nào từ giữa trưa đến 11:59 CH Sử dụng% t nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %tt- Đối với các ngôn ngữ sử dụng đồng hồ 12 giờ, hiển thị AM viết hoa với bất kỳ giờ nào trước buổi trưa; hiển thị PM viết hoa với bất kỳ giờ nào từ giữa trưa đến 11:59 PM Đối với các ngôn ngữ sử dụng đồng hồ 24 giờ, không hiển thị gì.

  • %y- Hiển thị số năm (0-9) không có số 0 ở đầu. Sử dụng%y nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %yy - Hiển thị năm ở định dạng số có hai chữ số với số 0 ở đầu, nếu có.

  • %yyy - Hiển thị năm ở định dạng số có bốn chữ số.

  • %yyyy - Hiển thị năm ở định dạng số có bốn chữ số.

  • %z- Hiển thị độ lệch múi giờ không có số 0 phía trước (ví dụ -8). Sử dụng%z nếu đây là ký tự duy nhất ở định dạng số do người dùng xác định.

  • %zz- Hiển thị. Độ lệch múi giờ với số 0 ở đầu (ví dụ -08)

  • %zzz - Hiển thị độ lệch múi giờ đầy đủ (ví dụ -08: 00).

Như bạn có thể quan sát, chuỗi định dạng có phân biệt chữ hoa chữ thường. Có thể có được các định dạng khác nhau bằng cách sử dụng một trường hợp khác.

Thay đổi kiểu dữ liệu của đầu ra công thức DAX

Trong công thức DAX, kiểu dữ liệu của đầu ra được xác định bởi các cột nguồn và bạn không thể chỉ định rõ ràng kiểu dữ liệu của kết quả. Điều này là do kiểu dữ liệu tối ưu được xác định bởi Power Pivot. Tuy nhiên, bạn có thể sử dụng các chuyển đổi kiểu dữ liệu ngầm định do Power Pivot thực hiện để thao tác với kiểu dữ liệu đầu ra. Nếu không, bạn có thể sử dụng các hàm DAX nhất định để chuyển đổi kiểu dữ liệu đầu ra.

Using the Implicit Data Type Conversions

  • Để chuyển đổi một ngày hoặc một chuỗi số thành một số, hãy nhân với 1,0. Ví dụ: = (TODAY () + 5) * 1,0. Công thức này tính toán ngày hiện tại cộng với 5 ngày và chuyển kết quả thành giá trị số nguyên.

    • Để chuyển đổi giá trị ngày, số hoặc đơn vị tiền tệ thành một chuỗi, hãy nối giá trị với một chuỗi trống. Ví dụ: = Hôm nay () & “”

Using the DAX Functions for Data Type Conversions

Bạn có thể sử dụng các hàm DAX cho những việc sau:

  • Chuyển đổi số thực thành số nguyên.
  • Chuyển đổi số thực, số nguyên hoặc ngày thành chuỗi.
  • Chuyển đổi Chuỗi thành Số hoặc Ngày thực.

Bạn sẽ tìm hiểu điều này trong các phần sau.

Chuyển đổi số thực thành số nguyên

Bạn có thể sử dụng các hàm DAX sau để chuyển đổi số thực thành số nguyên:

ROUND (<number>, <num_digits>) - Làm tròn một số đến số chữ số được chỉ định và trả về một số thập phân.

CEILING (<number>, <significance>) - Làm tròn một số lên đến số nguyên gần nhất hoặc đến bội số có nghĩa gần nhất và trả về một số thập phân.

FLOOR (<number>, <significance>) - Làm tròn một số xuống dưới, về 0, đến bội số có nghĩa gần nhất và trả về một số thập phân.

Chuyển đổi số thực, số nguyên hoặc ngày thành chuỗi

Bạn có thể sử dụng các hàm DAX sau để chuyển đổi số thực, số nguyên hoặc ngày tháng thành chuỗi:

FIXED (<number>, [<decimals>], [<no_comma>])- Làm tròn một số và trả về kết quả dưới dạng văn bản. Số chữ số ở bên phải dấu thập phân là 2 hoặc số số thập phân được chỉ định. Kết quả là có dấu phẩy hoặc tùy chọn không có dấu phẩy.

FORMAT (<value>, <format_string>) - Chuyển đổi một giá trị thành văn bản theo định dạng được chỉ định.

Bạn đã học về cách sử dụng hàm Định dạng để chuyển đổi ngày tháng thành chuỗi.

Chuyển đổi chuỗi thành số hoặc ngày thực

Bạn có thể sử dụng các hàm DAX sau để chuyển đổi chuỗi thành số thực hoặc ngày -

VALUE (<text>) - Chuyển đổi một chuỗi văn bản biểu thị một số thành một số.

DATEVALUE (date_text) - Chuyển đổi ngày ở dạng văn bản thành ngày ở dạng datetime.

TIMEVALUE (time_text) - Chuyển đổi thời gian ở định dạng văn bản thành thời gian ở định dạng ngày giờ.