ใช้ตัวดำเนินการ 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 จะถือเป็นศูนย์เมื่อดำเนินการโดยตัวดำเนินการทางคณิตศาสตร์และเป็นสตริงว่างเมื่อเชื่อมสตริงเข้าด้วยกัน