ALLNOBLANKROW
นําไปใช้กับ: การคํานวณคอลัมน์จากการคํานวณ ตารางจากการคํานวณ หน่วยวัดภาพการคํานวณ
จากตารางหลักของความสัมพันธ์ แสดงแถวทั้งหมดแต่แถวที่ว่างเปล่า หรือค่าที่แตกต่างกันทั้งหมดของคอลัมน์แต่แถวที่ว่างเปล่า และละเว้นตัวกรองบริบทใดก็ตามที่อาจมีอยู่
ไวยากรณ์
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
พารามิเตอร์
เงื่อนไข | คำนิยาม |
---|---|
ตาราง | ตารางที่มีการเอาตัวกรองบริบททั้งหมดออก |
คอลัมน์ | คอลัมน์ที่มีการเอาตัวกรองบริบททั้งหมดออก |
ต้องส่งผ่านพารามิเตอร์เดียวเท่านั้น พารามิเตอร์ เป็นตารางหรือคอลัมน์
ค่าที่ส่งกลับ
ตารางเมื่อพารามิเตอร์ที่ส่งผ่านเป็นตารางหรือคอลัมน์ของค่าเมื่อพารามิเตอร์ที่ส่งผ่านเป็นคอลัมน์
หมายเหตุ
ฟังก์ชัน ALLNOBLANKROW จะกรองเฉพาะแถวที่ว่างเปล่าที่ตารางหลักในความสัมพันธ์จะแสดงขึ้นเมื่อมีอย่างน้อยหนึ่งแถวในตารางย่อยที่มีค่าที่ไม่ตรงกันกับคอลัมน์หลัก ดูตัวอย่างด้านล่างสําหรับคําอธิบายโดยละเอียด
ตารางต่อไปนี้สรุปการเปลี่ยนแปลงทั้งหมดที่มีให้ใน DAX และความแตกต่าง:
ฟังก์ชันและการใช้งาน คำอธิบาย ALL(Column) ลบตัวกรองทั้งหมดออกจากคอลัมน์ที่ระบุในตาราง ตัวกรองอื่น ๆ ทั้งหมดในตารางเหนือคอลัมน์อื่น ๆ ยังคงใช้งานได้ ALL(Table) ลบตัวกรองทั้งหมดออกจากตารางที่ระบุ ALLEXCEPT(Table,Col1,Col2...) แทนที่ตัวกรองบริบททั้งหมดในตารางยกเว้นคอลัมน์ที่ระบุ ALLNOBLANK(table|column) จากตารางหลักของความสัมพันธ์ แสดงแถวทั้งหมดแต่แถวที่ว่างเปล่า หรือค่าที่แตกต่างกันทั้งหมดของคอลัมน์แต่แถวที่ว่างเปล่า และละเว้นตัวกรองบริบทใดก็ตามที่อาจมีอยู่ สําหรับคําอธิบายทั่วไปเกี่ยวกับลักษณะการทํางานของฟังก์ชัน ALL พร้อมกับตัวอย่างแบบทีละขั้นตอนที่ใช ้ ALL(Table) และ ALL(Column) ดู ฟังก์ชัน ALL
ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)
ตัวอย่าง
ในข้อมูลตัวอย่าง ตาราง ResellerSales_USD มีหนึ่งแถวที่ไม่มีค่า ดังนั้นจึงไม่สามารถเกี่ยวข้องกับตารางหลักใด ๆ ในความสัมพันธ์ภายในเวิร์กบุ๊กได้ คุณจะใช้ตารางนี้ใน PivotTable เพื่อให้คุณสามารถดูลักษณะการทํางานของแถวที่ว่างเปล่าและวิธีการจัดการการนับจํานวนในข้อมูลที่ไม่เกี่ยวข้อง
ขั้นตอนที่ 1: ตรวจสอบข้อมูลที่ไม่เกี่ยวข้อง
เปิด หน้าต่าง Power Pivot จากนั้นเลือกตาราง ResellerSales_USD ในคอลัมน์ ProductKey กรองสําหรับค่าว่าง หนึ่งแถวจะยังคงอยู่ ในแถวนั้น ค่าคอลัมน์ทั้งหมดควรเป็นค่าว่าง ยกเว้นสําหรับ SalesOrderLineNumber
ขั้นตอนที่ 2: สร้าง PivotTable
สร้าง PivotTable ใหม่ จากนั้นลากคอลัมน์ วันที่เวลา [ปีปฏิทิน] ไปยังบานหน้าต่างป้ายชื่อแถว ตารางต่อไปนี้แสดงผลลัพธ์ที่คาดไว้:
ป้ายชื่อแถว |
---|
2005 |
2006 |
2007 |
2008 |
ผลรวมทั้งหมด |
สังเกตป้ายชื่อว่างระหว่าง 2008 และ ผลรวมทั้งหมด ป้ายชื่อที่ว่างเปล่านี้แสดงถึงสมาชิกที่ไม่รู้จัก ซึ่งเป็นกลุ่มพิเศษที่สร้างขึ้นในบัญชีสําหรับค่าใด ๆ ในตารางย่อยที่ไม่มีค่าที่ตรงกันในตารางหลัก ตัวอย่างเช่น วันที่เวลา [ปีปฏิทิน] คอลัมน์
เมื่อคุณเห็นป้ายชื่อที่ว่างเปล่านี้ใน PivotTable คุณจะทราบว่าในบางตารางที่เกี่ยวข้องกับคอลัมน์ วันที่เวลา [ปีปฏิทิน] มีค่าว่างหรือค่าที่ไม่ตรงกัน ตารางหลักคือตารางที่แสดงป้ายชื่อที่ว่างเปล่า แต่มีแถวที่ไม่ตรงกันอยู่ในตารางย่อยอย่างน้อยหนึ่งรายการ
แถวที่เพิ่มไปยังกลุ่มป้ายชื่อที่ว่างเปล่านี้เป็นค่าที่ไม่ตรงกับค่าใด ๆ ในตารางหลัก-- ตัวอย่างเช่น วันที่ที่ไม่มีอยู่ในตาราง datetime-- หรือค่า null หมายความว่าไม่มีค่าสําหรับวันที่เลย ในตัวอย่างนี้ เราได้ใส่ค่าว่างไว้ในคอลัมน์ทั้งหมดของตารางยอดขายย่อย การมีค่าในตารางหลักมากกว่าค่าในตารางย่อยไม่เป็นสาเหตุให้เกิดปัญหา
ขั้นตอนที่ 3: นับจํานวนแถวโดยใช้ ALL และ ALLNOBLANK
เพิ่มสองหน่วยวัดต่อไปนี้ลงในตาราง datetime เพื่อนับจํานวนแถวของตาราง: Countrows ALLNOBLANK ของวันที่เวลา Countrows ALL ของวันที่เวลา สูตรที่คุณสามารถใช้เพื่อกําหนดหน่วยวัดเหล่านี้ได้คือ:
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))
// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime'))
// Countrows ALLNOBLANKROW of ResellerSales_USD
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))
// Countrows ALL of ResellerSales_USD
= COUNTROWS(ALL('ResellerSales_USD'))
ใน PivotTable ที่ว่างเปล่า ให้เพิ่มวันที่เวลา [Calendar Year] คอลัมน์ไปยังป้ายชื่อแถว จากนั้นเพิ่มหน่วยวัดที่สร้างขึ้นใหม่ ผลลัพธ์ควรมีลักษณะเหมือนกับตารางต่อไปนี้:
ป้ายชื่อแถว | Countrows ALLNOBLANK ของวันที่เวลา | Countrows ALL ของวันที่เวลา |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
ผลรวมทั้งหมด | 1280 | 1281 |
ผลลัพธ์แสดงความแตกต่างของแถวที่ 1 ในการนับจํานวนแถวของตาราง อย่างไรก็ตาม ถ้าคุณเปิด หน้าต่าง Power Pivot และเลือกตาราง datetime คุณจะไม่สามารถค้นหาแถวที่ว่างเปล่าใด ๆ ในตารางเนื่องจากแถวที่ว่างเปล่าแบบพิเศษที่ระบุไว้ที่นี่คือสมาชิกที่ไม่รู้จัก
ขั้นตอนที่ 4: ตรวจสอบว่าจํานวนที่ถูกต้อง
เพื่อพิสูจน์ว่า ALLNOBLANKROW จะไม่นับจํานวนแถวที่ว่างเปล่าอย่างแท้จริง และจัดการเฉพาะแถวที่ว่างเปล่าแบบพิเศษในตารางหลักเท่านั้น ให้เพิ่มสองหน่วยวัดต่อไปนี้ลงในตาราง ResellerSales_USD: Countrows ALLNOBLANKROW ของ ResellerSales_USD, Countrows ALL ของ ResellerSales_USD
สร้าง PivotTable ใหม่ และลากคอลัมน์ วันที่เวลา [ปีปฏิทิน] ไปยังบานหน้าต่างป้ายชื่อแถว ในตอนนี้ ให้เพิ่มหน่วยวัดที่คุณเพิ่งสร้างขึ้น ผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
ป้ายชื่อแถว | Countrows ALLNOBLANKROW ของ ResellerSales_USD | Countrows ALL ของ ResellerSales_USD |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
ผลรวมทั้งหมด | 60856 | 60856 |
ในตอนนี้สองหน่วยวัดมีผลลัพธ์เดียวกัน นั่นเป็นเพราะฟังก์ชัน ALLNOBLANKROW จะไม่นับแถวที่ว่างเปล่าในตารางอย่างแท้จริง แต่จะจัดการกับแถวว่างที่เป็นกรณีพิเศษที่สร้างขึ้นในตารางหลักเมื่อตารางย่อยอย่างน้อยหนึ่งตารางในความสัมพันธ์มีค่าที่ไม่ตรงกันหรือค่าว่าง