กิจกรรม
เข้าร่วมกับเราที่ FabCon Vegas
31 มี.ค. 23 - 2 เม.ย. 23
เหตุการณ์ที่นําโดยชุมชนของ Microsoft Fabric, Power BI, SQL และ AI 31 มีนาคมถึงวันที่ 2 เมษายน 2025
ลงทะเบียนวันนี้เบราว์เซอร์นี้ไม่ได้รับการสนับสนุนอีกต่อไป
อัปเกรดเป็น Microsoft Edge เพื่อใช้ประโยชน์จากคุณลักษณะล่าสุด เช่น การอัปเดตความปลอดภัยและการสนับสนุนด้านเทคนิค
ภาษานิพจน์การวิเคราะห์ข้อมูล (DAX) ใช้ตัวดําเนินการเพื่อสร้างนิพจน์ที่เปรียบเทียบ valuesทําการคํานวณทางคณิตศาสตร์ or ทํางานกับสตริง
ตัวดําเนินการคํานวณมีสี่ประเภท: คณิตศาสตร์ การเปรียบเทียบ การเรียงต่อข้อความ and ตรรกะ
เมื่อต้องการดําเนินการทางคณิตศาสตร์ขั้นพื้นฐาน เช่น การบวก การลบ การคูณ or รวมตัวเลข; การดู and สร้างผลลัพธ์ที่เป็นตัวเลข ให้ใช้ตัวดําเนินการทางคณิตศาสตร์ต่อไปนี้
ตัวดําเนินการทางคณิตศาสตร์ | ความหมาย | ตัวอย่าง |
---|---|---|
+ (บวก sign) |
การบวก | 3+3 |
- (ลบ sign) |
or sign การลบ | 3-1-1 |
* (เครื่องหมายดอกจัน) |
การคูณ | 3*3 |
/ (เครื่องหมายทับ) |
แผนก | 3/3 |
^ (อักขระแคร์ท) |
การยกกําลัง | 16^4 |
หมายเหตุ
sign บวกสามารถทํางานทั้งในฐานะตัวดําเนินการไบนารี and เป็นตัวดําเนินการเอกภาค ตัวดําเนินการแบบไบนารีต้องการตัวเลขทั้งสองด้านของตัวดําเนินการ and ดําเนินการบวก เมื่อคุณใช้ values ในสูตร DAX ทั้งสองด้านของตัวดําเนินการไบนารี DAX พยายามแปลง values เป็นชนิดข้อมูลตัวเลข ifnot จํานวนแล้ว ในทางตรงกันข้าม ตัวดําเนินการเอกภาคสามารถนําไปใช้กับอาร์กิวเมนต์ชนิดใดก็ได้ สัญลักษณ์เครื่องหมายบวกจะ not มีผลต่อชนิด orvalueand จะถูกละเว้นเพียงอย่างเดียว ในขณะที่ตัวดําเนินการลบจะสร้าง valueลบ if ที่นําไปใช้กับ valueตัวเลข
คุณสามารถเปรียบเทียบสอง values กับตัวดําเนินการต่อไปนี้ เมื่อมีการเปรียบเทียบ values สองรายการโดยใช้ตัวดําเนินการเหล่านี้ ผลลัพธ์จะเป็น valueตรรกะ TRUE
orFALSE
อย่างใดอย่างหนึ่ง
ตัวดําเนินการเปรียบเทียบ | ความหมาย | ตัวอย่าง |
---|---|---|
= |
เท่ากับ | [Region] = "USA" |
== |
เทียบเท่ากับ | [Region] == "USA" |
> |
มากกว่า | [Sales Date] > "ม.ค. 2009" |
< |
น้อยกว่า | [Sales Date] < "1 ม.ค. 2009" |
>= |
มากกว่า or เท่ากับ | [Amount] >= 20000 |
<= |
น้อยกว่า or เท่ากับ | [Amount] <= 100 |
<> |
Not เท่ากับ | [Region] <> "USA" |
All ตัวดําเนินการเปรียบเทียบ except == ถือว่า BLANK เท่ากับตัวเลข 0, สตริงว่าง "", DATE(1899, 12, 30), orFALSE
ด้วยเหตุนี้ [Column] = 0 จะถูก true เมื่อ value ของ [Column] เป็น 0 orBLANKอย่างใดอย่างหนึ่ง ในทางตรงกันข้าม [Column] == 0 จะถูก true เฉพาะเมื่อ value ของ [Column] เป็น 0
ใช้เครื่องหมายและ (&
) เพื่อรวม orconcatenateสอง or สตริงข้อความเพิ่มเติมเพื่อสร้างข้อความส่วนเดียว
ตัวดําเนินการข้อความ | ความหมาย | ตัวอย่าง |
---|---|---|
& (แอมเปอร์แซนด์) |
เชื่อมต่อ or เชื่อมสอง values เพื่อสร้างข้อความแบบต่อเนื่องหนึ่ง value | [Region] & ", " & [City] |
ใช้ตัวดําเนินการเชิงตรรกะ (&&
) and (||
) เพื่อรวมนิพจน์เพื่อสร้างผลลัพธ์เดียว
ตัวดําเนินการข้อความ | ความหมาย | ตัว อย่าง เช่น |
---|---|---|
&& (ดับเบิลแอมเปอร์แซนด์) |
สร้างเงื่อนไข AND ระหว่างนิพจน์สองรายการที่แต่ละรายการมีผลลัพธ์บูลีน
If ทั้งสองนิพจน์ส่งกลับ TRUE การรวมกันของนิพจน์จะส่งกลับ TRUE ด้วย เช่นกัน มิฉะนั้นการรวมจะส่งกลับ FALSE |
([Region] = "France") && ([BikeBuyer] = "yes")) |
|| (สัญลักษณ์ท่อคู่) |
สร้างเงื่อนไข OR ระหว่างนิพจน์เชิงตรรกะสองนิพจน์
If นิพจน์ใดนิพจน์หนึ่งส่งกลับ TRUE ผลลัพธ์จะเป็น TRUE เฉพาะเมื่อนิพจน์ทั้งสอง FALSE เป็นผลลัพธ์ FALSE |
(([Region] = "France") || ([BikeBuyer] = "yes")) |
IN |
สร้างเงื่อนไข OR เชิงตรรกะระหว่างแต่ละแถวที่กําลังเปรียบเทียบกับตาราง หมายเหตุ: ไวยากรณ์ของคอนสตรักเตอร์ตารางใช้วงเล็บปีกกา | 'Product'[Color] IN { "Red", "Blue", "Black" } |
ในบางกรณี ลําดับในการคํานวณอาจส่งผลต่อ valueส่งคืน ดังนั้นจึงเป็นสิ่งสําคัญที่ต้องทําความเข้าใจวิธีการกําหนดลําดับ and วิธีการเปลี่ยนลําดับเพื่อให้ได้ผลลัพธ์ที่ต้องการ
นิพจน์ประเมิน andvalues ตัวดําเนินการตามลําดับที่ระบุ นิพจน์ All เริ่มต้นด้วย sign เท่ากันเสมอ (=) sign เท่ากันแสดงให้เห็นว่าอักขระความสําเร็จเป็นนิพจน์
ตามหลัง sign เท่ากันคือองค์ประกอบที่จะคํานวณ (ตัวถูกดําเนินการ) ซึ่งคั่นด้วยตัวดําเนินการคํานวณ นิพจน์จะถูกอ่านจาก left ถึง rightเสมอ แต่ลําดับที่มีการจัดกลุ่มองค์ประกอบสามารถควบคุมได้ในระดับหนึ่งโดยใช้วงเล็บ
If คุณได้รวมตัวดําเนินการหลายตัวในสูตรเดียว การดําเนินการจะถูกเรียงลําดับตามตารางต่อไปนี้ If ตัวดําเนินการจะมีลําดับความสําคัญเท่ากัน valueตัวดําเนินการเหล่านี้จะถูกเรียงลําดับจาก left เป็น right ตัวอย่างเช่น if นิพจน์ contains ทั้งตัวดําเนินการคูณ and หาร จะมีการประเมินตามลําดับที่ปรากฏในนิพจน์ จาก left ไปยัง right
ผู้ปฏิบัติการ | คำอธิบาย |
---|---|
^ |
การยกกําลัง |
– |
Sign (เช่น –1) |
* and / |
การคูณ and หาร |
+ and – |
การลบ and เพิ่มเติม |
& |
เชื่อมต่อสองสตริงของข้อความ (การเรียงต่อข้อความ) |
=,==,<,>,<=,>=,<>,IN |
การเปรียบเทียบ |
NOT |
NOT (ตัวดําเนินการเอกภาค) |
เมื่อต้องการเปลี่ยนลําดับการประเมิน คุณควรใส่เครื่องหมายวงเล็บในส่วนนั้นของสูตรที่ต้องคํานวณ first ตัวอย่างเช่น สูตรต่อไปนี้สร้าง 11 เนื่องจากการคูณจะถูกคํานวณก่อนการบวก สูตรคูณ 2 ด้วย 3 and จากนั้นเพิ่ม 5 ลงในผลลัพธ์
=5+2*3
ในทางตรงกันข้าม if คุณใช้วงเล็บเพื่อเปลี่ยนไวยากรณ์ ลําดับจะเปลี่ยนเพื่อให้เพิ่ม 5 and 2 เข้าด้วยกัน and ผลลัพธ์ที่คูณด้วย 3 เพื่อสร้าง 21
=(5+2)*3
ในตัวอย่างต่อไปนี้ วงเล็บที่อยู่รอบส่วน first ของสูตรจะบังคับการคํานวณเพื่อ evaluate นิพจน์ (3 + 0.25)
firstand จากนั้น divide ผลลัพธ์ตามผลลัพธ์ของนิพจน์ (3 - 0.25)
=(3 + 0.25)/(3 - 0.25)
ในตัวอย่างต่อไปนี้ ตัวดําเนินการยกกําลังจะถูกนําไปใช้ firstตามกฎลําดับความสําคัญสําหรับตัวดําเนินการ and จากนั้นใช้ตัวดําเนินการ sign ผลลัพธ์สําหรับนิพจน์นี้คือ -4
=-2^2
เพื่อให้แน่ใจว่าตัวดําเนินการ sign ถูกนําไปใช้กับ valuefirstตัวเลข คุณสามารถใช้วงเล็บเพื่อควบคุมตัวดําเนินการ ดังที่แสดงในตัวอย่างต่อไปนี้ ผลลัพธ์สําหรับนิพจน์นี้คือ 4
= (-2)^2
DAX จัดการ and เปรียบเทียบชนิดข้อมูลต่าง ๆ ได้อย่างง่ายดาย เช่นเดียวกับ Microsoft Excel อย่างไรก็ตาม กลไกการคํานวณพื้นฐานขึ้นอยู่กับ SQL Server Analysis Services and มอบคุณลักษณะขั้นสูงเพิ่มเติมของที่เก็บข้อมูลเชิงสัมพันธ์ รวมถึงการสนับสนุนที่หลากหลายสําหรับประเภท dateandtime ดังนั้น ในบางกรณีผลลัพธ์ของการคํานวณ or ลักษณะการทํางานของฟังก์ชันอาจ not เหมือนกับใน Excel นอกจากนี้ DAX ยังรองรับชนิดข้อมูลได้มากกว่า Excel อีกด้วย ในส่วนนี้จะอธิบายความแตกต่างที่สําคัญ
โดยทั่วไป ตัวถูกดําเนินการทั้งสองทางด้าน leftandright ของตัวดําเนินการใดก็ตามควรเป็นชนิดข้อมูลเดียวกัน อย่างไรก็ตาม if ชนิดข้อมูลนั้นแตกต่างกัน DAX จะ convert ชนิดข้อมูลทั่วไปเพื่อใช้ตัวดําเนินการในบางกรณี:
ตัวอย่างเช่น สมมติว่าคุณมีตัวเลขสองค่าที่คุณต้องการรวม ตัวเลขหนึ่งเป็นผลลัพธ์จากสูตร เช่น =[Price] * .20
and ผลลัพธ์อาจมีทศนิยมหลายตําแหน่ง ตัวเลขอื่นเป็นจํานวนเต็มที่มีการระบุเป็นสตริง value
ในกรณีนี้ DAX จะ convert ตัวเลขทั้งสองเป็นจํานวนจริงใน formatตัวเลข โดยใช้ format ตัวเลขที่ใหญ่ที่สุดที่สามารถเก็บตัวเลขทั้งสองชนิด จากนั้น DAX จะใช้การคูณ
การแปลงชนิดข้อมูลอาจ not ใช้สําหรับการดําเนินการเปรียบเทียบทั้งนี้ขึ้นอยู่กับชุดชนิดข้อมูล สําหรับรายการทั้งหมดของชนิดข้อมูลที่ได้รับการสนับสนุนโดย DAXโปรดดู ชนิดข้อมูล ที่ได้รับการสนับสนุนในแบบจําลองตารางandชนิดข้อมูลใน Power BI Desktop
จํานวนเต็ม จํานวนจริง CurrencyDate/timeandBlank ถือเป็นตัวเลขเพื่อวัตถุประสงค์ในการเปรียบเทียบ Blank ประเมินเป็นศูนย์เมื่อดําเนินการเปรียบเทียบ ชุดชนิดข้อมูลต่อไปนี้ได้รับการสนับสนุนสําหรับการดําเนินการเปรียบเทียบ
ชนิดข้อมูลด้าน Left | ชนิดข้อมูลด้าน Right |
---|---|
ตัวเลข | ตัวเลข |
บูลีน | บูลีน |
เชือก | เชือก |
การเปรียบเทียบชนิดข้อมูลผสมอื่นๆ จะส่งกลับ error ตัวอย่างเช่น สูตร เช่น ="1" > 0 จะแสดง error ที่ระบุว่าการดําเนินการเปรียบเทียบ DAXnot สนับสนุนการเปรียบเทียบชนิด values ชนิดข้อความกับชนิดจํานวนเต็ม values
ชนิดข้อมูลที่ใช้ใน DAX | ชนิดข้อมูลที่ใช้ใน Excel |
---|---|
Numbers (I8, R8) | Numbers (R8) |
เชือก | เชือก |
บูลีน | บูลีน |
วันที่เวลา | ตัว แปร |
Currency | Currency |
ลําดับความสําคัญของการดําเนินการในสูตร DAX โดยทั่วไปเหมือนกับที่ใช้โดย Microsoft Excel แต่ตัวดําเนินการ Excel บางตัวได้รับการรองรับ not เช่น เปอร์เซ็นต์ นอกจากนี้ รองรับช่วง not
ดังนั้น เมื่อใดก็ตามที่คุณคัดลอก and วางสูตรจาก Excel คุณต้องแน่ใจว่าได้ตรวจทานสูตรอย่างรอบคอบแล้ว เนื่องจากตัวดําเนินการบางอย่าง or องค์ประกอบในสูตรอาจ not ถูกต้อง เมื่อมีข้อสงสัยเกี่ยวกับลําดับของการดําเนินการ เราขอแนะนําให้คุณใช้วงเล็บเพื่อควบคุมลําดับของการดําเนินการ and กําจัดความคลุมเครือเกี่ยวกับผลลัพธ์
ไวยากรณ์
กิจกรรม
เข้าร่วมกับเราที่ FabCon Vegas
31 มี.ค. 23 - 2 เม.ย. 23
เหตุการณ์ที่นําโดยชุมชนของ Microsoft Fabric, Power BI, SQL และ AI 31 มีนาคมถึงวันที่ 2 เมษายน 2025
ลงทะเบียนวันนี้