อ่านในภาษาอังกฤษ

แชร์ผ่าน


ภาพรวม DAX

นิพจน์การวิเคราะห์ข้อมูล (DAX) เป็นภาษาของนิพจน์สูตรที่ใช้ใน Analysis Services, Power BI, andPower Pivot ใน Excel สูตร DAX รวมถึงฟังก์ชัน ตัวดําเนินการ andvalues การคํานวณขั้นสูง and คิวรีข้อมูลในตาราง relatedand คอลัมน์ในแบบจําลองข้อมูลแบบตาราง

บทความนี้ให้คําแนะนําพื้นฐานเกี่ยวกับแนวคิดที่สําคัญที่สุดใน DAXเท่านั้น ซึ่งอธิบาย DAX เนื่องจากนําไปใช้กับ all ผลิตภัณฑ์ที่ใช้งาน ฟังก์ชันการทํางานบางอย่างอาจ not นําไปใช้กับผลิตภัณฑ์บางอย่าง or กรณีการใช้งาน โปรดดูเอกสารของ productของคุณที่อธิบายการใช้งาน DAXโดยเฉพาะ

คำนวณ

DAX สูตรจะใช้ในหน่วยวัด คอลัมน์จากการคํานวณ ตารางจากการคํานวณ and การรักษาความปลอดภัยระดับแถว

มาตรการ

หน่วยวัดเป็นสูตรการคํานวณแบบไดนามิกที่ผลลัพธ์จะเปลี่ยนแปลงตามบริบท หน่วยวัดจะใช้ในการรายงานที่สนับสนุนการรวม and กรองข้อมูลแบบจําลองโดยใช้แอตทริบิวต์หลายรายการ เช่น รายงาน Power BI or Excel PivotTable or PivotChart หน่วยวัดจะถูกสร้างขึ้นโดยใช้แถบสูตร DAX ในตัวออกแบบแบบจําลอง

สูตรใน measure สามารถใช้ฟังก์ชันการรวมมาตรฐานที่สร้างขึ้นโดยอัตโนมัติโดยใช้คุณลักษณะ Autosum เช่น COUNTorSUMor คุณสามารถ define สูตรของคุณเองได้โดยใช้แถบสูตร DAX หน่วยวัดที่มีชื่อสามารถส่งผ่านเป็นอาร์กิวเมนต์ไปยังหน่วยวัดอื่น ๆ ได้

เมื่อคุณ define สูตรสําหรับ measure ในแถบสูตร คุณลักษณะคําแนะนําเครื่องมือจะแสดงตัวอย่างของผลลัพธ์ที่จะใช้สําหรับผลรวมในบริบทปัจจุบัน แต่มิฉะนั้นผลลัพธ์จะถูก not ส่งผลลัพธ์ไปยังที่ใดก็ได้ เหตุผลที่คุณไม่สามารถดูผลลัพธ์ของการคํานวณ (ที่ถูกกรอง) ได้ทันทีเนื่องจากไม่สามารถกําหนดผลลัพธ์ของ measure ได้โดยไม่มีบริบท เมื่อต้องการ evaluatemeasure จําเป็นต้องใช้แอปพลิเคชันไคลเอ็นต์รายงานที่สามารถระบุบริบทที่จําเป็นในการดึงข้อมูลที่เกี่ยวข้องกับแต่ละเซลล์ and จากนั้น evaluate นิพจน์สําหรับแต่ละเซลล์ ไคลเอ็นต์อาจเป็น PivotTable ของ Excel or PivotChart รายงาน Power BI or นิพจน์ตารางในคิวรี DAX ใน SQL Server Management Studio (SSMS)

ระบบจะเรียกใช้คิวรีแยกต่างหากสําหรับแต่ละเซลล์ในผลลัพธ์ โดยไม่คํานึงถึงไคลเอ็นต์ กล่าวคือ ส่วนหัวของคอลัมน์ and แถวแต่ละชุดใน PivotTable or ตัวแบ่งส่วนข้อมูลแต่ละตัวที่เลือก andfilters ในรายงาน Power BI จะสร้างชุดย่อยของข้อมูลที่แตกต่างกันที่มีการคํานวณ measure ตัวอย่างเช่น การใช้สูตร measure อย่างง่ายนี้:

Total Sales = SUM([Sales Amount])

เมื่อผู้ใช้วาง measure TotalSales ในรายงาน and จะวางคอลัมน์ประเภท Product จากตาราง Product ลงใน Filterssum ของยอดขายจะถูกคํานวณ and แสดงสําหรับแต่ละประเภท product

ไวยากรณ์สําหรับ measure จะประกอบด้วยชื่อของ measureที่อยู่ก่อนหน้าสูตร ซึ่งแตกต่างจากคอลัมน์จากการคํานวณ ในตัวอย่างที่ให้มานี้ ชื่อ Total Sales จะปรากฏขึ้นก่อนหน้าสูตร หลังจากที่คุณได้สร้าง measureแล้ว ชื่อ and ข้อกําหนดจะปรากฏในรายการ เขตข้อมูลของแอปพลิเคชันไคลเอ็นต์รายงาน and ขึ้นอยู่กับมุมมอง and บทบาทจะพร้อมใช้งาน all ผู้ใช้ของแบบจําลอง

หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่:
หน่วยวัด ในPower BI Desktop
หน่วยวัด ใน Analysis Services
หน่วยวัด ใน Pivot Power

คอลัมน์จากการคํานวณ

คอลัมน์จากการคํานวณคือคอลัมน์ที่คุณเพิ่มลงในตารางที่มีอยู่ (ในตัวออกแบบแบบจําลอง) and สร้างสูตร DAX ที่กําหนด valuesของคอลัมน์ เมื่อคอลัมน์จากการคํานวณ contains สูตร DAX ที่ถูกต้อง values จะถูกคํานวณสําหรับแต่ละแถวทันทีที่มีการป้อนสูตร จากนั้น Values จะถูกจัดเก็บไว้ในแบบจําลองข้อมูลในหน่วยความจํา ตัวอย่างเช่น ในตาราง Date เมื่อสูตรถูกป้อนลงในแถบสูตร:

= [Calendar Year] & " Q" & [Calendar Quarter]

value สําหรับแต่ละแถวในตารางจะถูกคํานวณโดยการ values จากคอลัมน์ CalendarYear (ในตาราง Date เดียวกัน) การเพิ่มช่องว่าง and ตัวอักษรพิมพ์ใหญ่ Q and จากนั้นเพิ่ม values จากคอลัมน์ CalendarQuarter (ในตาราง Date เดียวกัน) ผลลัพธ์สําหรับแต่ละแถวในคอลัมน์จากการคํานวณจะถูกคํานวณทันที and จะปรากฏขึ้น ตัวอย่างเช่น 2017 Q1 values คอลัมน์จะถูกคํานวณใหม่เฉพาะ if ตาราง or ประมวลผลตาราง related ใด ๆ (รีเฟรช) or แบบจําลองจะถูกยกเลิกการโหลดจากหน่วยความจํา and จะโหลดใหม่ เช่น เมื่อปิด and เปิดไฟล์ Power BI Desktop ใหม่

หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่:
คอลัมน์จากการคํานวณในPower BI Desktop
คอลัมน์จากการคํานวณ ใน Analysis Services
คอลัมน์จากการคํานวณใน Power Pivot

ตารางที่มีการคํานวณ

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

ตารางจากการคํานวณจะเป็นประโยชน์ในมิติการเล่นบทบาท ตัวอย่างคือตาราง Date เป็น OrderDate, ShipDate, or DueDate โดยขึ้นอยู่กับความสัมพันธ์ของ Foreign Key ด้วยการสร้างตารางที่มีการคํานวณสําหรับ ShipDate อย่างชัดเจน คุณจะได้รับตารางแบบสแตนด์อโลนที่พร้อมใช้งานสําหรับคิวรี และสามารถทํางานอย่างเต็มรูปแบบเช่นเดียวกับตารางอื่น ๆ ตารางจากการคํานวณยังมีประโยชน์เมื่อกําหนดค่าชุดแถวที่กรอง or ชุดย่อย or เซตใหญ่ของคอลัมน์จากตารางที่มีอยู่อื่น ๆ ซึ่งช่วยให้คุณสามารถเก็บตารางเดิมไว้ได้ในขณะที่สร้างการเปลี่ยนแปลงของตารางนั้นเพื่อสนับสนุนสถานการณ์เฉพาะ

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

หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่:
ตารางจากการคํานวณในPower BI Desktop
ตารางจากการคํานวณใน Analysis Services

การรักษาความปลอดภัยระดับแถว

ด้วยการรักษาความปลอดภัยระดับแถว สูตร DAX จะต้อง evaluate กับเงื่อนไข TRUE/FALSE บูลีน ซึ่งจะกําหนดแถวที่สามารถแสดงผลลัพธ์ของคิวรีโดยสมาชิกที่มีบทบาทเฉพาะ ตัวอย่างเช่น สําหรับสมาชิกของบทบาทยอดขาย ตารางลูกค้าที่มีสูตร DAX ต่อไปนี้:

= Customers[Country] = "USA"

สมาชิกของบทบาทการขายจะสามารถดูข้อมูลสําหรับลูกค้าในสหรัฐอเมริกา and ผลรวมเท่านั้น เช่น SUM จะถูกส่งกลับสําหรับลูกค้าในสหรัฐอเมริกาเท่านั้น การรักษาความปลอดภัยระดับแถวจะพร้อมใช้งานใน Power Pivot ใน Excel not

เมื่อกําหนดความปลอดภัยระดับแถวโดยใช้สูตร DAX คุณกําลังสร้างชุดแถวที่ได้รับอนุญาต การดําเนินการนี้ not ปฏิเสธการเข้าถึงแถวอื่น แต่เพียงแค่ not ส่งกลับเป็นส่วนหนึ่งของชุดแถวที่อนุญาต บทบาทอื่น ๆ สามารถอนุญาตให้เข้าถึงแถวที่ถูกแยกออกโดยสูตร DAX ได้ If ผู้ใช้เป็นสมาชิกของบทบาทอื่น and การรักษาความปลอดภัยระดับแถวของบทบาทอนุญาตให้เข้าถึงชุดแถวนั้น ๆ ผู้ใช้สามารถดูข้อมูลสําหรับแถวนั้นได้

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

หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่:
การรักษาความปลอดภัยระดับแถว (RLS) พร้อมPower BI
บทบาท ใน Analysis Services

แบบ สอบ ถาม

DAX คิวรีสามารถสร้าง and เรียกใช้ใน SQL Server Management Studio (SSMS) and เครื่องมือโอเพนซอร์สเช่น DAX Studio (daxstudio.org) ซึ่งแตกต่างจากสูตรการคํานวณ DAX ซึ่งสามารถสร้างได้เฉพาะในแบบจําลองข้อมูลแบบตารางเท่านั้น DAX คิวรียังสามารถเรียกใช้กับแบบจําลองหลายมิติ Analysis Services ได้ คิวรี DAX มักง่ายกว่าในการเขียน and คิวรีที่มีประสิทธิภาพมากกว่าคิวรี Multidimensional Data Expressions (MDX)

คิวรี DAX เป็นคําสั่งที่คล้ายกับคําสั่ง SELECT ใน T-SQL คิวรี DAX ชนิดพื้นฐานที่สุดคือคําสั่ง evaluate เช่น

EVALUATE
 ( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC

แสดงใน ผลลัพธ์ ในตารางที่แสดงเฉพาะรายการผลิตภัณฑ์ที่มี SafetyStockLevel น้อยกว่า 200 โดยเรียงลําดับจากน้อยไปหามากตาม EnglishProductName

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

สูตร

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

ข้อมูลพื้นฐานเกี่ยวกับสูตร

สูตร DAX อาจง่ายมาก or ค่อนข้างซับซ้อน ตารางต่อไปนี้แสดงตัวอย่างของสูตรอย่างง่ายที่สามารถใช้ในคอลัมน์จากการคํานวณได้

สูตร นิยาม
= TODAY() แทรก date ของ todayในทุกแถวของคอลัมน์จากการคํานวณ
= 3 แทรก value 3 ในทุกแถวของคอลัมน์จากการคํานวณ
= [Column1] + [Column2] เพิ่ม values ในแถวเดียวกันของ [Column1] and [Column2] and ใส่ผลลัพธ์ในคอลัมน์จากการคํานวณของแถวเดียวกัน

ไม่ว่าสูตรที่คุณสร้างจะง่าย or ซับซ้อน คุณสามารถใช้ขั้นตอนต่อไปนี้เมื่อสร้างสูตร:

  1. แต่ละสูตรต้องเริ่มต้นด้วย sign เท่ากับ (=)

  2. คุณสามารถพิมพ์ or เลือกชื่อฟังก์ชัน or พิมพ์นิพจน์

  3. เริ่มพิมพ์ตัวอักษร first สองสามตัวของฟังก์ชัน or ชื่อที่คุณต้องการ and AutoComplete จะแสดงรายการของฟังก์ชัน ตาราง and คอลัมน์ที่พร้อมใช้งาน กด TAB เพื่อเพิ่มหน่วยข้อมูลจากรายการ AutoComplete ไปยังสูตร

    คุณยังสามารถคลิกปุ่ม Fx เพื่อแสดงรายการของฟังก์ชันที่พร้อมใช้งาน หากต้องการเลือกฟังก์ชันจากรายการแบบเลื่อนลง ให้ใช้ปุ่มลูกศรเพื่อเน้นรายการ and คลิก ตกลง เพื่อเพิ่มฟังก์ชันลงในสูตร

  4. ใส่อาร์กิวเมนต์ไปยังฟังก์ชันโดยการเลือกจากรายการแบบเลื่อนลงของตารางที่เป็นไปได้ and คอลัมน์ or โดยการพิมพ์ใน values

  5. ตรวจสอบข้อผิดพลาดทางไวยากรณ์: ตรวจสอบให้แน่ใจว่าวงเล็บ all ปิด and คอลัมน์ ตาราง andvalues ถูกอ้างอิงอย่างถูกต้อง

  6. กด ENTER เพื่อยอมรับสูตร

หมายเหตุ

ในคอลัมน์จากการคํานวณ ทันทีที่คุณป้อนสูตร and ตรวจสอบความถูกต้องของสูตรแล้ว คอลัมน์จะถูกเติมด้วย values ใน measureการกด ENTER จะบันทึกข้อกําหนด measure กับตาราง If สูตรไม่ถูกต้อง error จะแสดงขึ้นมา

ในตัวอย่างนี้ มาดูสูตรใน measure ที่ชื่อว่า Days ใน Quarterปัจจุบัน :

Days in Current Quarter = COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date])))

measure นี้ใช้ในการสร้างอัตราส่วนการเปรียบเทียบระหว่างช่วงเวลาที่ไม่สมบูรณ์ and รอบระยะเวลา previous สูตรต้องคํานึงถึงสัดส่วนของรอบระยะเวลาที่ผ่านไป and เปรียบเทียบกับสัดส่วนเดียวกันในรอบระยะเวลา previous ในกรณีนี้ [Days Current Quarter to Date]/[Days in Current Quarter] ให้สัดส่วนที่ผ่านไปในรอบระยะเวลาปัจจุบัน

สูตรนี้ contains องค์ประกอบต่อไปนี้:

องค์ประกอบสูตร คำอธิบาย
Days in Current Quarter ชื่อของ measure
= ค่าเท่ากับ sign (=) จะเริ่มต้นสูตร
COUNTROWS COUNTROWS นับจํานวนแถวในตาราง Date
() เปิด and วงเล็บปิดระบุอาร์กิวเมนต์
DATESBETWEEN ฟังก์ชัน DATESBETWEEN จะแสดงวันที่ระหว่าง lastdate สําหรับแต่ละ value ในคอลัมน์ Date ในตาราง Date
'Date' ระบุตาราง Date ตารางอยู่ในเครื่องหมายอัญประกาศเดี่ยว
[Date] ระบุคอลัมน์ Date ในตาราง Date คอลัมน์อยู่ในเครื่องหมายวงเล็บปีกกา
,
STARTOFQUARTER ฟังก์ชัน STARTOFQUARTER ส่งกลับ date ของจุดเริ่มต้นของ quarter
LASTDATE ฟังก์ชัน LASTDATE ส่งกลับ lastdate ของ quarter
'Date' ระบุตาราง Date
[Date] ระบุคอลัมน์ Date ในตาราง Date
,
ENDOFQUARTER ฟังก์ชัน ENDOFQUARTER
'Date' ระบุตาราง Date
[Date] ระบุคอลัมน์ Date ในตาราง Date

การใช้สูตร AutoComplete

AutoComplete ช่วยให้คุณใส่ไวยากรณ์สูตรที่ถูกต้องโดยให้คุณมีตัวเลือกสําหรับแต่ละองค์ประกอบในสูตร

  • คุณสามารถใช้สูตร AutoComplete ในช่วงกลางของสูตรที่มีอยู่กับฟังก์ชันที่ซ้อนกัน ข้อความที่ติดกับหน้าจุดแทรกจะถูกใช้เพื่อแสดง values ในรายการดรอปดาวน์ andall ของข้อความหลังจุดแทรกยังคงไม่เปลี่ยนแปลง

  • AutoComplete not เพิ่มวงเล็บปิดของฟังก์ชัน or จับคู่วงเล็บโดยอัตโนมัติ คุณต้องตรวจสอบให้แน่ใจว่าไวยากรณ์แต่ละฟังก์ชันถูกต้อง or คุณไม่สามารถบันทึก or ใช้สูตรได้

การใช้ฟังก์ชันหลายรายการในสูตร

คุณสามารถซ้อนฟังก์ชันได้ หมายความว่าคุณใช้ผลลัพธ์จากฟังก์ชันหนึ่งเป็นอาร์กิวเมนต์ของฟังก์ชันอื่น คุณสามารถซ้อนฟังก์ชันต่าง ๆ ได้สูงสุด 64 ระดับในคอลัมน์จากการคํานวณ อย่างไรก็ตาม การซ้อนอาจทําให้ยากต่อการสร้าง or แก้ไขปัญหาสูตร ฟังก์ชันจํานวนมากถูกออกแบบมาเพื่อใช้เป็นฟังก์ชันที่ซ้อนกันเท่านั้น ฟังก์ชันเหล่านี้จะแสดงตารางซึ่งไม่สามารถบันทึกได้โดยตรงเป็นผลลัพธ์ ซึ่งจะต้องได้รับการระบุเป็นข้อมูลป้อนเข้าไปยังฟังก์ชันตาราง ตัวอย่างเช่น ฟังก์ชัน SUMX, AVERAGEX, andMINXall จําเป็นต้องใช้ตารางเป็นอาร์กิวเมนต์ first

ฟังก์ชัน

ฟังก์ชันเป็นสูตรที่มีชื่ออยู่ภายในนิพจน์ ฟังก์ชันส่วนใหญ่จําเป็นต้องใช้ and อาร์กิวเมนต์ที่เป็นตัวเลือก หรือที่เรียกว่าพารามิเตอร์เป็นข้อมูลป้อนเข้า เมื่อฟังก์ชันถูกดําเนินการ value จะถูกส่งกลับ DAX มีฟังก์ชันที่คุณสามารถใช้เพื่อทําการคํานวณโดยใช้วันที่ and ครั้ง สร้าง valuesแบบมีเงื่อนไข ทํางานกับสตริง ต่าง ๆ ทําการค้นหาโดยยึดตามความสัมพันธ์ and ความสามารถในการทําซ้ําในตารางเพื่อทําการคํานวณแบบเรียกใช้ซ้ํา If คุณคุ้นเคยกับสูตร Excel ฟังก์ชันหลายอย่างเหล่านี้จะปรากฏคล้ายกันมาก อย่างไรก็ตาม สูตร DAX จะแตกต่างกันในลักษณะที่สําคัญดังต่อไปนี้:

  • ฟังก์ชัน DAX จะอ้างอิงคอลัมน์ที่สมบูรณ์ or ตารางเสมอ If คุณต้องการใช้เฉพาะ values จากตาราง or คอลัมน์เท่านั้น คุณสามารถเพิ่ม filters ลงในสูตรได้

  • If คุณจําเป็นต้องกําหนดการคํานวณเองแบบทีละแถว DAX มีฟังก์ชันที่ช่วยให้คุณใช้แถวปัจจุบัน valueorrelatedvalue เป็นพารามิเตอร์ชนิดหนึ่ง เพื่อทําการคํานวณที่แตกต่างกันไปตามบริบท หากต้องการทําความเข้าใจวิธีการทํางานของฟังก์ชันเหล่านี้ โปรดดู บริบทในบทความนี้

  • DAX มีฟังก์ชันจํานวนมากที่ส่งกลับตาราง แทนที่จะเป็น value ตารางจะถูก not แสดงในไคลเอ็นต์รายงาน แต่จะใช้เพื่อให้ข้อมูลป้อนเข้าไปยังฟังก์ชันอื่น ๆ ตัวอย่างเช่น คุณสามารถเรียกดูตาราง and จากนั้น countvalues ที่แตกต่างกัน orcalculate ผลรวมแบบไดนามิกผ่านตารางที่กรองแล้ว or คอลัมน์

  • ฟังก์ชัน มีฟังก์ชัน ข่าวกรอง หลากหลาย ฟังก์ชันเหล่านี้ช่วยให้คุณสามารถ defineor เลือกช่วง dateand ทําการคํานวณแบบไดนามิกตามวันที่เหล่านี้ orrange ตัวอย่างเช่น คุณสามารถเปรียบเทียบผลรวมตลอดระยะเวลาแบบขนาน

ฟังก์ชันการรวม

ฟังก์ชันการรวม calculatevalue (สเกลา) เช่น count, sum, average, ต่ําสุด, or สูงสุดสําหรับแถว all ในตาราง or คอลัมน์ตามที่กําหนดโดยนิพจน์ หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชันการรวม

ฟังก์ชัน Dateandtime

ฟังก์ชัน dateandtime ใน DAX มีลักษณะคล้ายกับฟังก์ชัน dateandtime ใน Microsoft Excel อย่างไรก็ตาม ฟังก์ชัน จะขึ้นอยู่กับชนิดข้อมูล datetime โดยเริ่มต้นวันที่ 1 มีนาคม 1900 หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชัน Dateandtime

ฟังก์ชัน Filter

ฟังก์ชัน filter ใน DAX ส่งกลับชนิดข้อมูลที่เฉพาะเจาะจง โดยค้นหา values ใน related เรื่อง andfilter โดย relatedvalues ฟังก์ชัน lookup ทํางานโดยใช้ตาราง and ความสัมพันธ์ เช่น ฐานข้อมูล ฟังก์ชันการกรองช่วยให้คุณจัดการบริบทข้อมูลเพื่อสร้างการคํานวณแบบไดนามิก หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชัน Filter

ฟังก์ชันทางการเงิน

ฟังก์ชันทางการเงินใน DAX จะใช้ในสูตรที่ทําการคํานวณทางการเงิน เช่น สุทธิ valueandrate ของผลตอบแทน ฟังก์ชันเหล่านี้จะคล้ายกับฟังก์ชันทางการเงินที่ใช้ใน Microsoft Excel หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชันทางการเงิน

ฟังก์ชันข้อมูล

ฟังก์ชันข้อมูลจะดูที่เซลล์ or แถวที่ระบุให้เป็นอาร์กิวเมนต์ and บอกคุณว่า value ตรงกับชนิดที่คาดไว้หรือไม่ ตัวอย่างเช่น ฟังก์ชัน ISERROR จะแสดง TRUEifvalue ที่คุณอ้างอิง containserror หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชัน ข้อมูล

ฟังก์ชันตรรกะ

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

ฟังก์ชันทางคณิตศาสตร์ and ตรีโกณมิติ

ฟังก์ชันทางคณิตศาสตร์ใน DAX มีลักษณะคล้ายกับฟังก์ชันคณิตศาสตร์ and ตรีโกณมิติของ Excel มีความแตกต่างเล็กน้อยบางอย่างในชนิดข้อมูลตัวเลขที่ใช้โดยฟังก์ชัน DAX หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชันคณิตศาสตร์ and ตรีโกณ

ฟังก์ชันอื่น ๆ

ฟังก์ชันเหล่านี้ทําการดําเนินการที่ไม่ซ้ํากัน ซึ่งไม่สามารถกําหนดโดยฟังก์ชันอื่น ๆ ส่วนใหญ่ในหมวดหมู่ใด ๆ ได้ หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชันอื่น ๆ

ฟังก์ชันความสัมพันธ์

ฟังก์ชันความสัมพันธ์ใน DAX ช่วยให้คุณสามารถส่งกลับ values จากตาราง related อื่น ระบุความสัมพันธ์เฉพาะที่จะใช้ในนิพจน์ and ระบุทิศทางการกรองข้าม เมื่อต้องการเรียนรู้เพิ่มเติม ดูฟังก์ชันความสัมพันธ์

ฟังก์ชันทางสถิติ

ฟังก์ชันทางสถิติ calculatevaluesrelated การกระจายทางสถิติ and ความน่าจะเป็น เช่น ค่าเบี่ยงเบนมาตรฐาน and จํานวนการเรียงสับเปลี่ยน เมื่อต้องการเรียนรู้เพิ่มเติม ดูฟังก์ชันทางสถิติ

ฟังก์ชันข้อความ

ฟังก์ชันข้อความใน DAX จะคล้ายกับคู่ของฟังก์ชันใน Excel คุณสามารถส่งกลับส่วนของสตริง search สําหรับข้อความภายในสตริง orconcatenate สตริง values DAX ยังมีฟังก์ชันสําหรับการควบคุมรูปแบบสําหรับวันที่ เวลา and ตัวเลข เมื่อต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชัน Text

ฟังก์ชันตัวแสดง Time

ฟังก์ชันตัวแสดง time ที่ระบุใน DAX ช่วยให้คุณสร้างการคํานวณที่ใช้ความรู้ที่มีอยู่ภายในเกี่ยวกับปฏิทิน and วันที่ ด้วยการใช้ช่วง timeanddate ร่วมกับการรวม or การคํานวณ คุณสามารถสร้างการเปรียบเทียบที่มีความหมายในรอบระยะเวลา time ที่เปรียบเทียบสําหรับยอดขาย สินค้าคงคลัง and และอื่นๆ เมื่อต้องการเรียนรู้เพิ่มเติม ดู ฟังก์ชันข่าวกรอง Time (DAX)

ฟังก์ชันการจัดการตาราง

ฟังก์ชันเหล่านี้จะแสดงตาราง or จัดการกับตารางที่มีอยู่ ตัวอย่างเช่น คุณสามารถเพิ่มคอลัมน์จากการคํานวณไปยังตารางที่ระบุ or คุณสามารถส่งกลับตารางสรุปผ่านชุดของกลุ่มที่มีฟังก์ชัน SUMMARIZECOLUMNS ได้โดยใช้ ADDCOLUMNS หากต้องการเรียนรู้เพิ่มเติม โปรดดู ฟังก์ชันการจัดการตาราง

ตัว แปร

คุณสามารถสร้างตัวแปรต่าง ๆ ภายในนิพจน์โดยใช้ VAR VAR ในทางเทคนิค not ฟังก์ชัน เป็นคําสําคัญในการจัดเก็บผลลัพธ์ของนิพจน์เป็นตัวแปรที่มีชื่อ จากนั้น ตัวแปรดังกล่าวจะสามารถส่งผ่านเป็นอาร์กิวเมนต์ไปยังนิพจน์ measure อื่น ๆ ได้ เช่น:

VAR
    TotalQty = SUM ( Sales[Quantity] )

Return

    IF (
        TotalQty > 1000,
        TotalQty * 0.95,
        TotalQty * 1.25
        )

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

ชนิดข้อมูล

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

DAX สนับสนุนชนิดข้อมูลต่อไปนี้:

ชนิดข้อมูลในแบบจําลอง ชนิดข้อมูลใน DAX คำอธิบาย
Whole Number จํานวนเต็ม 64 บิต (แปดไบต์) value1, 2 ตัวเลขที่ไม่มีตําแหน่งทศนิยม จํานวนเต็มสามารถเป็นค่าบวก or จํานวนลบ แต่ต้องเป็นจํานวนเต็มระหว่าง -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1)
Decimal Number จํานวนจริง 64 บิต (แปดไบต์) 1, 2 จํานวนจริงคือตัวเลขที่สามารถมีตําแหน่งทศนิยมได้ จํานวนจริงจะครอบคลุม rangevaluesกว้าง :

values ลบตั้งแต่ -1.79E +308 ถึง -2.23E -308

ศูนย์

values เชิงบวกตั้งแต่ 2.23E -308 ถึง 1.79E + 308

อย่างไรก็ตาม จํานวนหลักที่มีนัยสําคัญจะถูกจํากัดไว้ที่ 17 หลักทศนิยม
Boolean บูลีน อย่างใดอย่างหนึ่ง TrueorFalsevalue
Text เชือก สตริงข้อมูลอักขระ Unicode อาจเป็นสตริง ตัวเลข or วันที่ที่แสดงใน formatข้อความ
Date Date/time วันที่ and เวลาในรูปแบบ dateที่ยอมรับได้ -time เป็นตัวแทน

วันที่ใช้งานได้ all วันที่หลังจากวันที่ 1 มีนาคม 1900
Currency Currency ชนิดข้อมูล Currency อนุญาตให้ values ระหว่าง -922,337,203,685,477.5808 ถึง 922,337,203,685,477.5807 ที่มีเลขทศนิยมสี่หลักของความแม่นยํา fixed
N/A Blank blank คือชนิดข้อมูลใน DAX ที่แสดง and แทนที่ SQL null คุณสามารถสร้าง blank โดยใช้ฟังก์ชัน BLANKand ทดสอบช่องว่างโดยใช้ฟังก์ชันตรรกะ ISBLANK

รูปแบบข้อมูลแบบตารางยังรวมถึงชนิดข้อมูล Table เป็นข้อมูลป้อนเข้า or ผลลัพธ์ไปยังฟังก์ชัน DAX จํานวนมาก ตัวอย่างเช่น ฟังก์ชัน FILTER จะใช้ตารางหนึ่งเป็นข้อมูลป้อนเข้า and แสดงผลเป็นตารางอื่นที่ contains เฉพาะแถวที่ตรงตามเงื่อนไข filter เท่านั้น เมื่อรวมฟังก์ชันตารางกับฟังก์ชันการรวม คุณจะสามารถทําการคํานวณที่ซับซ้อนกว่าชุดข้อมูลที่กําหนดไว้แบบไดนามิก

โดยทั่วไป ในขณะที่ชนิดข้อมูลถูกตั้งค่าโดยอัตโนมัติ สิ่งสําคัญคือต้องทําความเข้าใจชนิดข้อมูล and วิธีการใช้งาน โดยเฉพาะกับสูตร DAX ข้อผิดพลาดในสูตร or ผลลัพธ์ที่ไม่คาดคิดมักจะเกิดขึ้นจากการใช้ตัวดําเนินการเฉพาะที่ไม่สามารถใช้กับชนิดข้อมูลที่ระบุในอาร์กิวเมนต์ได้ ตัวอย่างเช่น สูตร = 1 & 2ส่งกลับผลลัพธ์สตริงของ 12 อย่างไรก็ตาม สูตร = "1" + "2"จะแสดงผลลัพธ์จํานวนเต็มของ 3

บริบท

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

สูตรในแบบจําลองตารางสามารถประเมินได้ในบริบทที่แตกต่างกัน โดยขึ้นอยู่กับองค์ประกอบการออกแบบอื่น ๆ:

  • Filters ที่ใช้ในรายงาน or PivotTable
  • Filters ที่กําหนดไว้ภายในสูตร
  • ความสัมพันธ์ที่ระบุโดยใช้ฟังก์ชันพิเศษภายในสูตร

มีบริบทอยู่หลายชนิด: บริบทแถว บริบทคิวรี บริบท andfilter

บริบทแถว

บริบทแถว จะคิดว่าเป็น "แถวปัจจุบัน" If คุณสร้างสูตรในคอลัมน์จากการคํานวณ บริบทแถวสําหรับสูตรนั้นจะรวมถึง values จากคอลัมน์ all ในแถวปัจจุบัน If ตารางถูก related ไปยังตารางอื่น เนื้อหายังรวมถึง allvalues จากตารางอื่น related ไปยังแถวปัจจุบัน

ตัวอย่างเช่น สมมติว่าคุณสร้างคอลัมน์จากการคํานวณ = [Freight] + [Tax]ที่รวม values เข้าด้วยกันจากสองคอลัมน์ Freight and Tax จากตารางเดียวกัน สูตรนี้จะดึงข้อมูลเฉพาะ values จากแถวปัจจุบันในคอลัมน์ที่ระบุเท่านั้น

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

ตัวอย่างเช่น สูตรต่อไปนี้ใช้ฟังก์ชัน RELATED เพื่อดึงข้อมูล value ภาษีจากตาราง related ตามภูมิภาคที่มีการจัดส่งสินค้าที่สั่งซื้อ value ภาษีจะถูกกําหนดโดยใช้ value สําหรับภูมิภาคในตารางปัจจุบัน โดยค้นหาภูมิภาคในตาราง relatedand ได้รับ rate ภาษีสําหรับภูมิภาคนั้นจากตาราง related

= [Freight] + RELATED('Region'[TaxRate])  

สูตรนี้จะดึงข้อมูล rate ภาษีสําหรับภูมิภาคปัจจุบันจากตารางภูมิภาค and เพิ่มลงใน value ของคอลัมน์การขนส่ง ในสูตร DAX คุณต้อง not จําเป็นต้องทราบ or ระบุความสัมพันธ์เฉพาะที่เชื่อมต่อตาราง

บริบทหลายแถว

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

ตัวอย่างเช่น สมมติว่าแบบจําลองของคุณ ตาราง ผลิตภัณฑ์ ตาราง Sales ผู้ใช้อาจต้องการดูตารางยอดขายทั้งหมด ซึ่งเต็มไปด้วยธุรกรรมที่เกี่ยวข้องกับหลายผลิตภัณฑ์ andfind จํานวนมากที่สุดที่สั่งซื้อสําหรับแต่ละ product ในหนึ่งธุรกรรม

ด้วย DAX คุณสามารถสร้างสูตรเดียวที่ส่งกลับ valueที่ถูกต้อง and ผลลัพธ์จะได้รับการอัปเดตโดยอัตโนมัติ time ผู้ใช้เพิ่มข้อมูลลงในตาราง

= MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty])  

สําหรับตัวอย่างโดยละเอียดของสูตรนี้ ให้ดู EARLIER

เมื่อต้องการ summarizeฟังก์ชัน EARLIER จะจัดเก็บบริบทแถวจากการดําเนินการที่มีก่อนหน้าการดําเนินการปัจจุบัน ในช่วงเวลา all ฟังก์ชันจะจัดเก็บบริบทสองชุดในหน่วยความจํา: บริบทหนึ่งชุดแสดงแถวปัจจุบันสําหรับลูปภายในของสูตร and ชุดบริบทอื่นแสดงแถวปัจจุบันสําหรับลูปภายนอกของสูตร DAX ดึง values ระหว่างสองรอบโดยอัตโนมัติเพื่อให้คุณสามารถสร้างผลรวมที่ซับซ้อนได้

บริบทคิวรี

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

เนื่องจากการเปลี่ยนแปลงบริบทโดยขึ้นอยู่กับตําแหน่งที่คุณวางสูตร ผลลัพธ์ของสูตรยังสามารถเปลี่ยนแปลงได้ ตัวอย่างเช่น สมมติว่าคุณสร้างสูตรที่หาผลรวม values ในคอลัมน์ Profit ของตาราง Sales: = SUM('Sales'[Profit]) If คุณใช้สูตรนี้ในคอลัมน์จากการคํานวณภายในตาราง Sales ผลลัพธ์สําหรับสูตรจะเหมือนกันทั้งตาราง เนื่องจากบริบทคิวรีสําหรับสูตรจะเป็นชุดข้อมูลทั้งหมดของตาราง Sales เสมอ ผลลัพธ์จะมีกําไรสําหรับภูมิภาค all ผลิตภัณฑ์ all ปี alland ปีเป็นต้น

อย่างไรก็ตาม ผู้ใช้โดยทั่วไปแล้วไม่ต้องการดูผลลัพธ์เดียวกันหลายร้อยครั้ง แต่ต้องการดูกําไรสําหรับ yearเฉพาะ ประเทศ เฉพาะ productor ชุดข้อมูลเหล่านี้บางส่วน and ได้รับผลรวมทั้งหมด

ในรายงาน จะเปลี่ยนแปลงบริบทโดยการกรอง เพิ่ม or ลบเขตข้อมูล ออก and โดยใช้ตัวแบ่งส่วนข้อมูล สําหรับแต่ละการเปลี่ยนแปลง บริบทคิวรีที่มีการประเมิน measure ดังนั้น สูตรเดียวกันที่ใช้ใน measureจะถูกประเมินในบริบทคิวรี ที่แตกต่างกัน สําหรับแต่ละเซลล์

บริบท Filter

Filter บริบท คือชุดของ values ที่ได้รับอนุญาตในแต่ละคอลัมน์ or ใน values ที่ดึงมาจากตาราง related Filters สามารถนําไปใช้กับคอลัมน์ในตัวออกแบบ or ในเลเยอร์งานนําเสนอ (รายงาน and PivotTables) นอกจากนี้ Filters ยังสามารถกําหนดได้อย่างชัดเจนโดย filter นิพจน์ภายในสูตร

Filter บริบทจะถูกเพิ่มเมื่อคุณระบุข้อจํากัด filter บนชุดของ values ที่ได้รับอนุญาตในตาราง or คอลัมน์ โดยใช้อาร์กิวเมนต์ในสูตร บริบท Filter ใช้กับบริบทอื่น ๆ เช่น บริบทแถว or บริบทคิวรี

ในแบบจําลองตาราง มีหลายวิธีในการสร้างบริบท filter ภายในบริบทของไคลเอ็นต์ที่สามารถใช้แบบจําลอง เช่น รายงาน Power BI ผู้ใช้สามารถสร้าง filters ได้ทันทีโดยการเพิ่มตัวแบ่งส่วนข้อมูล or รายงาน filters ส่วนหัวของแถว and คอลัมน์ คุณยังสามารถระบุนิพจน์ filter ได้โดยตรงภายในสูตร เพื่อระบุ relatedvaluesเพื่อ filter ตารางที่ใช้เป็นข้อมูลป้อนเข้า or เพื่อรับบริบทสําหรับ values ที่ใช้ในการคํานวณแบบไดนามิก คุณยังสามารถล้าง or ล้าง filters บนคอลัมน์เฉพาะแบบเลือกรายการได้อย่างสมบูรณ์ ซึ่งจะมีประโยชน์มากในการสร้างสูตรที่ calculate ผลรวมทั้งหมด

เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการสร้าง filters ภายในสูตร ให้ดู FILTER Function (DAX)
สําหรับตัวอย่างของวิธีการล้าง filters เพื่อสร้างผลรวมทั้งหมด ดู ฟังก์ชัน ALL (DAX)

สําหรับตัวอย่างของวิธีการล้าง and เลือกใช้ filters ภายในสูตร ให้ดู ALLEXCEPT

การกําหนดบริบทในสูตร

เมื่อคุณสร้างสูตร DAX สูตรจะถูก first ทดสอบสําหรับไวยากรณ์ที่ถูกต้อง and ทดสอบเพื่อให้แน่ใจว่าชื่อของคอลัมน์ and ตารางที่รวมอยู่ในสูตรสามารถพบได้ในบริบทปัจจุบัน If หาตาราง or คอลัมน์ใด ๆ ที่ระบุโดยสูตรไม่พบ error จะถูกส่งกลับ

บริบทระหว่างการตรวจสอบความถูกต้อง (and การดําเนินการคํานวณใหม่) จะถูกกําหนดตามที่อธิบายไว้ในส่วนก่อนหน้าโดยใช้ตารางที่มีอยู่ในแบบจําลอง ความสัมพันธ์ใด ๆ ระหว่างตาราง andfilters ใด ๆ ที่มีการนําไปใช้

ตัวอย่างเช่น if คุณเพิ่งนําเข้าข้อมูลบางอย่างลงในตารางใหม่ and ตาราง notrelated ไปยังตารางอื่น (andnot นําไปใช้ filters) บริบทปัจจุบัน เป็นชุดของคอลัมน์ทั้งหมดในตาราง If ตารางเชื่อมโยงโดยความสัมพันธ์กับตารางอื่น บริบทปัจจุบันรวมถึงตาราง related If คุณเพิ่มคอลัมน์จากตารางไปยังรายงานที่มีตัวแบ่งส่วนข้อมูล and อาจ filtersบริบทสําหรับสูตรคือชุดย่อยของข้อมูลในแต่ละเซลล์ของรายงาน

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

ผู้ ประกอบการ

ภาษา DAX ใช้ตัวดําเนินการคํานวณที่แตกต่างกันสี่ชนิดในสูตร:

  • ตัวดําเนินการเปรียบเทียบเพื่อเปรียบเทียบ valuesand แสดง TRUEเชิงตรรกะ 'FALSE' value
  • ตัวดําเนินการทางคณิตศาสตร์เพื่อดําเนินการคํานวณทางคณิตศาสตร์ที่ส่งกลับ valuesตัวเลข
  • ตัวดําเนินการเรียงต่อข้อความเพื่อรวมสอง or สตริงข้อความเพิ่มเติม
  • ตัวดําเนินการเชิงตรรกะที่รวมสอง or นิพจน์เพิ่มเติมเพื่อแสดงผลลัพธ์เดียว

สําหรับข้อมูลโดยละเอียดเกี่ยวกับตัวดําเนินการที่ใช้ในสูตร DAX ให้ดูที่ ตัวดําเนินการ DAX

การทํางานกับตาราง and คอลัมน์

ตารางในรูปแบบข้อมูลแบบตารางมีลักษณะเหมือนกับตาราง Excel แต่จะแตกต่างกันในลักษณะที่ทํางานกับข้อมูล and ด้วยสูตร:

  • สูตรจะทํางานกับตาราง and คอลัมน์ not เซลล์เดียว การอ้างอิง range อาร์เรย์ or เท่านั้น
  • สูตรสามารถใช้ความสัมพันธ์เพื่อรับ values จากตาราง related values ที่จะถูกเรียกใช้จะถูก related ไปยังแถวปัจจุบัน valueเสมอ
  • คุณไม่สามารถมีข้อมูล "ไม่สม่ําเสมอ" or เหมือนกับที่คุณสามารถทําได้ในเวิร์กชีต Excel แต่ละแถวในตารางต้องมีจํานวนคอลัมน์เท่ากัน อย่างไรก็ตาม คุณสามารถมี values ที่ว่างเปล่าได้ในบางคอลัมน์ ตารางข้อมูล Excel and ตารางข้อมูลแบบจําลองตาราง not สลับกันได้
  • เนื่องจากมีการตั้งค่าชนิดข้อมูลสําหรับแต่ละคอลัมน์ แต่ละ value ในคอลัมน์นั้นต้องเป็นชนิดเดียวกัน

การอ้างอิงถึงตาราง and คอลัมน์ในสูตร

คุณสามารถอ้างอิงไปยังตารางใดก็ได้ and คอลัมน์โดยใช้ชื่อ ตัวอย่างเช่น สูตรต่อไปนี้แสดงวิธีการอ้างอิงถึงคอลัมน์จากสองตารางโดยใช้ ชื่อ ที่มีคุณสมบัติครบถ้วน:


= SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])  

เมื่อมีการประเมินสูตร ตัวออกแบบแบบจําลอง first ตรวจสอบไวยากรณ์ทั่วไปแล้ว and ตรวจสอบชื่อของคอลัมน์ and ตารางที่คุณให้กับคอลัมน์ที่เป็นไปได้ and ตารางในบริบทปัจจุบัน If หาชื่อที่ไม่ชัดเจน orif ไม่พบคอลัมน์ or ตาราง คุณจะได้รับ error ในสูตรของคุณ (สตริง #ERROR แทนที่จะเป็น value ข้อมูลในเซลล์ที่มี error เกิดขึ้น) หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับข้อกําหนดในการตั้งชื่อสําหรับตาราง คอลัมน์ and วัตถุอื่น ๆ ให้ดู ข้อกําหนดการตั้งชื่อในไวยากรณ์ DAX

ความสัมพันธ์ของตาราง

เมื่อสร้างความสัมพันธ์ระหว่างตาราง คุณจะได้รับความสามารถสําหรับ relatedvalues ในตารางอื่นที่จะใช้ในการคํานวณ ตัวอย่างเช่น คุณสามารถใช้คอลัมน์จากการคํานวณเพื่อกําหนด all ระเบียนการจัดส่ง related ไปยังผู้จําหน่ายปัจจุบัน andsum ต้นทุนการจัดส่งสําหรับแต่ละรายการ อย่างไรก็ตาม ในหลายกรณี อาจจําเป็นต้องมีความสัมพันธ์ not คุณสามารถใช้ฟังก์ชัน LOOKUPVALUE ในสูตรเพื่อแสดง value ใน result_columnName สําหรับแถวที่มีคุณสมบัติตรงกับเกณฑ์ที่ระบุไว้ในอาร์กิวเมนต์ search_columnandsearch_value ได้

ฟังก์ชัน DAX หลายฟังก์ชันต้องการให้มีความสัมพันธ์ระหว่างตาราง or ระหว่างหลายตาราง เพื่อระบุคอลัมน์ที่คุณได้อ้างอิง and ส่งกลับผลลัพธ์ที่สมเหตุสมผล ฟังก์ชันอื่น ๆ จะพยายามระบุความสัมพันธ์ อย่างไรก็ตาม เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด คุณควรสร้างความสัมพันธ์ที่เป็นไปได้เสมอ แบบจําลองข้อมูลแบบตารางสนับสนุนความสัมพันธ์หลายรายการในตาราง เพื่อหลีกเลี่ยงความสับสน or ผลลัพธ์ที่ไม่ถูกต้อง มีเพียงความสัมพันธ์เดียวเท่านั้นที่มี time ถูกกําหนดเป็นความสัมพันธ์ที่ใช้งานอยู่ แต่คุณสามารถเปลี่ยนความสัมพันธ์ที่ใช้งานอยู่ได้ตามความจําเป็นในการตรวจสอบการเชื่อมต่อที่แตกต่างกันในข้อมูลในการคํานวณ ฟังก์ชัน USERELATIONSHIP สามารถใช้เพื่อระบุความสัมพันธ์อีกหนึ่ง or ที่จะใช้ในการคํานวณเฉพาะ

สิ่งสําคัญคือต้องสังเกตกฎการออกแบบสูตรเหล่านี้เมื่อใช้ความสัมพันธ์:

  • เมื่อตารางมีการเชื่อมโยงโดยความสัมพันธ์ คุณต้องแน่ใจว่าสองคอลัมน์ที่ใช้เป็นคีย์ values ตรงกัน referential integrity ถูกบังคับใช้ not ดังนั้นจึงเป็นไปได้ที่จะมี values ที่ไม่ตรงกันในคอลัมน์คีย์ and ยังคงสร้างความสัมพันธ์ If สิ่งนี้เกิดขึ้น คุณควรทราบว่า blankvaluesorvalues ที่ไม่ตรงกันอาจส่งผลกระทบต่อผลลัพธ์ของสูตร

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

ประมวลผล and รีเฟรช

Processandการคํานวณใหม่ แยกจากกันแต่ related การดําเนินงาน คุณควรทําความเข้าใจแนวคิดเหล่านี้อย่างละเอียดเมื่อออกแบบแบบจําลอง contains สูตรที่ซับซ้อน ข้อมูลจํานวนมาก or ข้อมูลที่ได้รับจากแหล่งข้อมูลภายนอก

กระบวนการ (รีเฟรช) กําลังอัปเดตข้อมูลในแบบจําลองด้วยข้อมูลใหม่จากแหล่งข้อมูลภายนอก

การคํานวณใหม่ คือกระบวนการในการอัปเดตผลลัพธ์ของสูตรเพื่อแสดงการเปลี่ยนแปลงใด ๆ กับสูตรด้วยตนเอง and เพื่อแสดงการเปลี่ยนแปลงในข้อมูลเบื้องต้น การคํานวณใหม่อาจส่งผลกระทบต่อประสิทธิภาพการทํางานในลักษณะต่อไปนี้:

  • values ในคอลัมน์จากการคํานวณจะถูกคํานวณ and จัดเก็บไว้ในแบบจําลอง หากต้องการอัปเดต values ในคอลัมน์จากการคํานวณ คุณต้องประมวลผลแบบจําลองโดยใช้หนึ่งในสามคําสั่งประมวลผล ได้แก่ Process Full, Process Data or Process Recalc ผลลัพธ์ของสูตรจะต้องได้รับการคํานวณใหม่สําหรับคอลัมน์ทั้งหมดเมื่อใดก็ตามที่คุณเปลี่ยนสูตร

  • values ที่คํานวณตามหน่วยวัดจะได้รับการประเมินแบบไดนามิกเมื่อใดก็ตามที่ผู้ใช้เพิ่ม measure ไปยัง PivotTable or เปิดรายงาน เมื่อผู้ใช้ปรับเปลี่ยนบริบท values ส่งกลับโดยการเปลี่ยนแปลง measure ผลลัพธ์ของ measure จะแสดงข้อมูลล่าสุดในแคชในหน่วยความจําเสมอ

การประมวลผล and การคํานวณใหม่ไม่มี effect ในสูตรการรักษาความปลอดภัยระดับแถว เว้นแต่ว่าผลลัพธ์ของการคํานวณใหม่จะแสดง valueที่แตกต่างกัน ทําให้แถวสามารถคิวรีได้ ornot สมาชิกบทบาท

ปรับ ปรุง

DAX ได้รับการปรับปรุงอย่างต่อเนื่อง ฟังก์ชันใหม่ที่อัปเดต and จะถูกเผยแพร่ด้วย next อัปเดตที่พร้อมใช้งาน ซึ่งมักจะเป็นรายเดือน บริการได้รับการอัปเดต firstตามด้วยแอปพลิเคชันที่ติดตั้ง เช่น Power BI Desktop, Excel, SQL Server Management Studio (SSMS), ส่วนขยายโครงการ and Analysis Services สําหรับ Visual Studio (SSDT) มีการอัปเดต SQL Server Analysis Services ด้วยการอัปเดตสะสมของ next ฟังก์ชันใหม่ first ประกาศ and อธิบายไว้ในการอ้างอิงฟังก์ชัน DAX ที่ตรงกับการอัปเดต Power BI Desktop

ฟังก์ชัน Notall ได้รับการสนับสนุนใน SQL Server Analysis Services รุ่น earlierand Excel

แก้ไข ปัญหา

คุณจะได้รับ เมื่อกําหนดสูตร สูตรอาจมี ไวยากรณ์ เชิงความหมาย การคํานวณ

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

error ชนิดอื่น ๆ จะเกิดขึ้นเมื่อไวยากรณ์ถูกต้อง แต่ valueor คอลัมน์ที่อ้างอิง not เข้าใจได้ในบริบทของสูตร ความหมาย and ข้อผิดพลาดในการคํานวณดังกล่าวอาจเกิดจากปัญหาต่อไปนี้:

  • สูตรอ้างอิงไปยังคอลัมน์ ตาราง or ฟังก์ชันที่ไม่มีอยู่
  • สูตรปรากฏถูกต้อง แต่เมื่อกลไกข้อมูลรับข้อมูล จะพบชนิดที่ไม่ตรงกัน and ทําให้เกิด error
  • สูตรจะส่งผ่านตัวเลขที่ไม่ถูกต้อง or ชนิดอาร์กิวเมนต์ไปยังฟังก์ชัน
  • สูตรอ้างอิงไปยังคอลัมน์อื่นที่มี errorand ดังนั้น values จึงไม่ถูกต้อง
  • สูตรอ้างอิงไปยังคอลัมน์ที่มีการประมวลผล not แล้ว ซึ่งหมายความว่ามีเมตาดาต้า แต่ไม่มีข้อมูลจริงที่จะใช้สําหรับการคํานวณ

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

เครื่องมือ and ของแอป

Power BI Desktop

BI Desktop

Power BI Desktop เป็นแอปพลิเคชันการสร้างแบบจําลองข้อมูล and การรายงานฟรี ตัวออกแบบแบบจําลองมีตัวแก้ไข DAX สําหรับการสร้างสูตรการคํานวณ DAX

Power Pivot ใน Excel

Power Pivot ใน excel

ตัวออกแบบแบบจําลอง Power Pivot ใน Excel มีตัวแก้ไข DAX สําหรับการสร้างสูตรการคํานวณ DAX

Visual Studio

Visual Studio

Visual Studio ที่มีโครงการ Analysis Services ส่วนขยาย (VSIX) ถูกใช้เพื่อสร้างโครงการแบบจําลอง Analysis Services ตัวออกแบบแบบจําลองตารางที่ติดตั้งพร้อมส่วนขยายโครงการรวมถึงตัวแก้ไข DAX

SQL Server Management Studio

SQL Server Management Studio

SQL Server Management Studio (SSMS) เป็นเครื่องมือที่จําเป็นสําหรับการทํางานกับ Analysis Services SSMS มีตัวแก้ไขคิวรี DAX สําหรับการคิวรีแบบจําลองหลายมิติ and แบบตาราง

DAX Studio

ไอคอน DAX Studio

DAX Studio เป็นเครื่องมือไคลเอ็นต์แบบโอเพนซอร์สสําหรับการสร้าง and เรียกใช้คิวรี DAX กับ Analysis Services Power BI Desktop andPower Pivot ในแบบจําลอง Excel

ตัวแก้ไขตาราง

ไอคอนตัวแก้ไขตาราง

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

แหล่งการเรียนรู้

เมื่อเรียนรู้ DAXจะเป็นการดีที่สุดที่จะใช้แอปพลิเคชันที่คุณจะใช้เพื่อสร้างแบบจําลองข้อมูลของคุณ Analysis Services Power BI Desktop andPower Pivot ใน Excel all มีบทความบทช่วยสอน and ที่มีบทเรียนเกี่ยวกับการสร้างหน่วยวัด คอลัมน์จากการคํานวณ andfilters แถวโดยใช้ DAX ต่อไปนี้คือแหล่งข้อมูลเพิ่มเติมบางอย่าง:

Videos

ใช้ DAX ใน Power BI Desktop การเรียนรู้ path

คู่มือ ฉบับเฉพาะสําหรับ DAX โดย Alberto Ferrari and Marco Russo (Microsoft Press) Now ในรุ่น second คู่มือที่ครอบคลุมนี้ให้ข้อมูลพื้นฐานเกี่ยวกับเทคนิคประสิทธิภาพสูงที่เป็นนวัตกรรมใหม่สําหรับผู้สร้างแบบจําลองข้อมูลเริ่มต้น and ผู้เชี่ยวชาญ BI

รูปหนังสือคู่มือแนะนําขั้นเฉพาะสําหรับ DAX

ชุมชน

DAX มีชุมชนที่มีชีวิตชีวายินดีที่จะแบ่งปันความเชี่ยวชาญของพวกเขาเสมอ ชุมชน Microsoft Power BI มีฟอรัมการสนทนาพิเศษสําหรับ DAXDAX คําสั่ง and เคล็ดลับ