ใช้ตัวดำเนินการ DAX

เสร็จสมบูรณ์เมื่อ

สูตร DAX ของคุณสามารถใช้ตัวดําเนินการเพื่อสร้างนิพจน์ที่ทําการคํานวณทางคณิตศาสตร์ เปรียบเทียบค่า ทํางานกับสตริง หรือทดสอบเงื่อนไขได้

เคล็ดลับ

ตัวดำเนินการ DAX จำนวนมากและลำดับความสำคัญจะเหมือนกับที่พบใน Excel

ตัวดำเนินการทางคณิตศาสตร์

ตารางต่อไปนี้จะแสดงรายการตัวดำเนินการทางคณิตศาสตร์

ตัวดำเนินการ คำอธิบาย
+ การบวก
- การลบ
* การคูณ
/ การหาร
^ เลขยกกำลัง

โปรดจําไว้ว่า เมื่อคุณกําลังหารสองนิพจน์ และเมื่อตัวหารสามารถส่งคืนค่าศูนย์หรือ BLANK ได้ หากใช้ DIVIDE ฟังก์ชัน DAX จะมีประสิทธิภาพมากกว่าและปลอดภัยกว่า

ตัวดำเนินการเปรียบเทียบ

ตารางต่อไปนี้จะแสดงรายการตัวดำเนินการเปรียบเทียบ ซึ่งใช้ในการเปรียบเทียบสองค่า ผลลัพธ์จะเป็น TRUE หรือ FALSE

ตัวดำเนินการ คำอธิบาย
= เท่ากับสองตัว
== เท่ากับสามตัว
> มากกว่า
< น้อยกว่า
>= มากกว่าหรือเท่ากับ
<= น้อยกว่าหรือเท่ากับ
<> ไม่เท่ากับ

ตัวดำเนินการเปรียบเทียบทั้งหมด ยกเว้นเท่ากับสามตัว (==) ถือว่า BLANK เท่ากับจำนวนศูนย์ สตริงว่าง ("") วันที่ 30 ธันวาคม 1899 หรือ FALSE ซึ่งหมายความว่านิพจน์ [Revenue] = 0 จะเป็น TRUE เมื่อค่าของ [Revenue] เป็นศูนย์หรือ BLANK ใน [Revenue] == 0 ทางตรงกันข้าม เป็น TRUE เมื่อค่าเป็น [Revenue] ศูนย์เท่านั้น

ตัวดำเนินการการเรียงต่อกันของข้อความ

ใช้อักขระเครื่องหมายและ (&) เพื่อเชื่อมต่อหรือเชื่อมค่าข้อความสองค่าเข้าด้วยกันเพื่อสร้างค่าข้อความแบบต่อเนื่องหนึ่งค่า ตัวอย่าง พิจารณาข้อกำหนดคอลัมน์จากการคำนวณต่อไปนี้

Model Color = 'Product'[Model] & "-" & 'Product'[Color]

ตัวดำเนินการตรรกะ

ใช้ตัวดำเนินการตรรกะเพื่อรวมนิพจน์ที่สร้างผลลัพธ์เดียว ตารางต่อไปนี้จะแสดงรายการตัวดำเนินการตรรกะทั้งหมด

ตัวดำเนินการ คำอธิบาย
&& สร้างเงื่อนไข AND ระหว่างสองนิพจน์โดยที่แต่ละนิพจน์มีผลลัพธ์บูลีน หากนิพจน์ทั้งสองส่งคืน TRUE การรวมกันของนิพจน์จะส่งคืน TRUE ด้วยเช่นกัน มิฉะนั้นการรวมจะส่งคืน FALSE
|| (ไปป์คู่) สร้างเงื่อนไข OR ระหว่างนิพจน์เชิงตรรกะสองรายการ หากนิพจน์ใดนิพจน์หนึ่งส่งกลับ TRUE ผลลัพธ์จะเป็น TRUE เฉพาะเมื่อนิพจน์ทั้งสองเป็น FALSE ผลลัพธ์จึงเป็น FALSE
IN สร้างเงื่อนไข OR เชิงตรรกะระหว่างแต่ละแถวที่กำลังเปรียบเทียบกับตาราง หมายเหตุ: ไวยากรณ์ของคอนสตรักเตอร์ตารางจะใช้เครื่องหมายปีกกา
NOT สลับสถานะของนิพจน์บูลีน (FALSE เป็น TRUE และกลับกัน)

ตัวอย่างที่ใช้ตัว IN ดําเนินการเชิงตรรกะคือข้อกําหนดหน่วยวัด รายได้ ANZ ซึ่งใช้ CALCULATE ฟังก์ชัน DAX เพื่อบังคับใช้ตัวกรองเฉพาะของสองประเทศ: ออสเตรเลียและนิวซีแลนด์

หมายเหตุ

คุณจะได้รับการแนะนําให้รู้จักกับฟังก์ชันที่มีประสิทธิภาพ CALCULATE เมื่อคุณเรียนรู้วิธีการปรับเปลี่ยนบริบทตัวกรอง

ANZ Revenue =
CALCULATE(
    [Revenue],
    Customer[Country-Region] IN {
        "Australia",
        "New Zealand"
    }
)

ลำดับความสำคัญของตัวดำเนินการ

เมื่อสูตร DAX ของคุณมีตัวดำเนินการหลายรายการ, DAX จะใช้กฎเพื่อกำหนดลำดับการประเมิน ซึ่งเรียกว่าลำดับความสำคัญของตัวดำเนินการ การดำเนินงานจะเรียงลำดับตามตารางต่อไปนี้

ตัวดำเนินการ คำอธิบาย
^ การยกกำลัง
- เครื่องหมาย (เป็น -1)
* และ / การคูณและการหาร
NOT NOT
+ และ - การบวกและการลบ
& การเรียงต่อกันของสองสตริงข้อความ
=,==,<,><=,=,><> การเปรียบเทียบ

เมื่อตัวดําเนินการมีค่าลําดับความสําคัญเท่ากัน พวกเขาจะเรียงจากซ้ายไปขวา

โดยทั่วไปแล้ว ลำดับความสำคัญของตัวดำเนินการจะเหมือนกับที่พบได้ใน Excel หากคุณต้องการแทนที่ลำดับการประเมิน ให้จัดกลุ่มการดำเนินงานภายในวงเล็บ

ตัวอย่าง พิจารณาข้อกำหนดคอลัมน์จากการคำนวณต่อไปนี้

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * 1 - [Unit Price Discount Pct]

ข้อกำหนดคอลัมน์จากการคำนวณตัวอย่างนี้สร้างผลลัพธ์ที่ไม่ถูกต้อง เนื่องจากการคูณเกิดขึ้นก่อนการลบ ข้อกำหนดคอลัมน์จากการคำนวณที่ถูกต้องต่อไปนี้ใช้วงเล็บเพื่อให้แน่ใจว่าการลบจะเกิดขึ้นก่อนการคูณ

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * (1 - [Unit Price Discount Pct])

เคล็ดลับ

การจดจำกฎของลำดับความสำคัญของตัวดำเนินการอาจเป็นเรื่องยาก โดยเฉพาะกับผู้เริ่มต้น DAX ดังนั้น เราขอแนะนำให้คุณทดสอบสูตรของคุณอย่างละเอียด เมื่อสูตรไม่ได้สร้างผลลัพธ์ที่ถูกต้องเนื่องจากลำดับการประเมินที่ไม่ถูกต้อง คุณสามารถทดลองโดยการเพิ่มวงเล็บเพื่อปรับลำดับการประเมินได้ คุณยังสามารถเพิ่มวงเล็บเพื่อปรับปรุงความยากง่ายในการอ่านสูตรของคุณได้

โปรดดูตัวดำเนินการ DAX สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวดำเนินการ DAX และลำดับความสำคัญ

การแปลงค่าโดยนัย

เมื่อเขียนสูตร DAX ที่ใช้ตัวดำเนินการเพื่อรวมชนิดข้อมูลที่แตกต่างกัน คุณไม่จำเป็นต้องแปลงชนิดอย่างชัดเจน โดยทั่วไปแล้ว DAX จะระบุชนิดข้อมูลของออบเจ็กต์แบบจำลองที่อ้างอิงโดยอัตโนมัติ และทำการแปลงค่าโดยนัยตามที่จำเป็นเพื่อให้การดำเนินงานที่ระบุเสร็จสมบูรณ์

อย่างไรก็ตาม อาจมีข้อจำกัดบางประการเกี่ยวกับค่าที่สามารถแปลงได้สำเร็จ หากค่าหรือคอลัมน์มีชนิดข้อมูลที่เข้ากันไม่ได้กับการดำเนินงานปัจจุบัน DAX จะส่งคืนข้อผิดพลาด ตัวอย่าง ความพยายามในการคูณค่าวันที่จะสร้างข้อผิดพลาดเนื่องจากไม่ใช่ตรรกะ

มีการจัดการ BLANK แตกต่างกัน ขึ้นอยู่กับตัวดําเนินการที่ใช้ ซึ่งมีการจัดการคล้ายกับวิธีการที่ Excel ถือเป็น BLANK แต่แตกต่างกับวิธีที่ฐานข้อมูล (SQL) ถือเป็น NULL BLANK จะถือเป็นศูนย์เมื่อดำเนินการโดยตัวดำเนินการทางคณิตศาสตร์และเป็นสตริงว่างเมื่อเชื่อมสตริงเข้าด้วยกัน

เคล็ดลับ

การจดจำวิธีการจัดการ BLANK อาจเป็นเรื่องยาก โดยเฉพาะกับผู้เริ่มต้น DAX ดังนั้น เราขอแนะนำให้คุณทดสอบสูตรของคุณอย่างละเอียด เมื่อ BLANK สร้างผลลัพธ์ที่ไม่คาดคิด ให้พิจารณาใช้ IF ฟังก์ชัน และ ISBLANK DAX เพื่อทดสอบ BLANK จากนั้นจึงตอบสนองในลักษณะที่เหมาะสม