ทั้ง หมด

นําไปใช้กับ:การคํานวณคอลัมน์จากการคํานวณ ตารางจากการคํานวณ หน่วยวัดการคํานวณวิชวล

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

ไวยากรณ์

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )  

พารามิเตอร์

เงื่อนไข คำนิยาม
ตาราง ตารางที่คุณต้องการล้างตัวกรอง
คอลัมน์ คอลัมน์ที่คุณต้องการล้างตัวกรอง

อาร์กิวเมนต์ของฟังก์ชัน ALL ต้องเป็นการอ้างอิงไปยังตารางฐานหรือการอ้างอิงไปยังคอลัมน์ฐาน คุณไม่สามารถใช้นิพจน์ตารางหรือนิพจน์คอลัมน์กับฟังก์ชัน ALL ได้

ค่าที่ส่งกลับ

ตารางหรือคอลัมน์ที่มีตัวกรองถูกลบออก

หมายเหตุ

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

  • ลักษณะการทํางานปกติสําหรับนิพจน์ DAX ที่มีฟังก์ชัน ALL() คือตัวกรองใดก็ตามที่ใช้จะถูกละเว้น อย่างไรก็ตาม มีบางสถานการณ์ที่นี่ไม่ใช่กรณีเนื่องจาก auto-exist ซึ่งเป็นเทคโนโลยี DAX ที่ปรับการกรองให้เหมาะสมเพื่อลดจํานวนการประมวลผลที่จําเป็นสําหรับคิวรี DAX บางรายการ ตัวอย่างที่ซึ่ง auto-exist และ ALL() ให้ผลลัพธ์ที่ไม่คาดคิดคือเมื่อกรองในคอลัมน์สองคอลัมน์ขึ้นไปในตารางเดียวกัน (เช่นเมื่อใช้ตัวแบ่งส่วนข้อมูล) และมีหน่วยวัดบนตารางเดียวกันนั้นที่ใช้ ALL() ในกรณีนี้ auto-exist จะ ผสาน ตัวกรองหลายตัวเป็นหนึ่งตัวและจะกรองเฉพาะชุดของค่าที่มีอยู่เท่านั้น เนื่องจากการผสานนี้ หน่วยวัดจะถูกคํานวณในชุดของค่าที่มีอยู่และผลลัพธ์จะขึ้นอยู่กับค่าที่ถูกกรองแทนค่าทั้งหมดตามที่คาดไว้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ auto-exist และผลกระทบต่อการคํานวณ โปรดดูที่บทความ sql.bi.comทําความเข้าใจ Auto-Exist ของ DAX ใน ของ Alberto Ferrari ของ Alberto Ferrari

  • ตารางต่อไปนี้อธิบายวิธีที่คุณสามารถใช้ฟังก์ชัน ALL และ ALLEXCEPT ในสถานการณ์ที่แตกต่างกัน

    ฟังก์ชันและการใช้งาน คำอธิบาย
    ALL() ลบตัวกรองทั้งหมดออกจากทุกที่ ALL() สามารถใช้เพื่อล้างตัวกรองเท่านั้น แต่จะไม่ส่งกลับตาราง
    ALL(Table) ลบตัวกรองทั้งหมดออกจากตารางที่ระบุ ดังนั้น ALL(Table) จะแสดงค่าทั้งหมดในตาราง โดยลบตัวกรองใดก็ตามออกจากบริบทที่อาจเคยมีการนําไปใช้ ฟังก์ชันนี้มีประโยชน์เมื่อคุณทํางานกับการจัดกลุ่มหลายระดับ และต้องการสร้างการคํานวณที่สร้างอัตราส่วนของค่ารวมต่อค่าทั้งหมด ตัวอย่างแรกแสดงให้เห็นถึงสถานการณ์นี้
    ALL (Column[, Column[, ...]]) ลบตัวกรองทั้งหมดออกจากคอลัมน์ที่ระบุในตาราง ตัวกรองอื่น ๆ ทั้งหมดบนคอลัมน์อื่น ๆ ในตารางยังคงใช้งานอยู่ อาร์กิวเมนต์ของคอลัมน์ทั้งหมดต้องมาจากตารางเดียวกัน ตัวแปร ALL(Column) มีประโยชน์เมื่อคุณต้องการลบตัวกรองบริบทสําหรับคอลัมน์ที่ระบุอย่างน้อยหนึ่งคอลัมน์และเก็บตัวกรองบริบทอื่น ๆ ทั้งหมด ตัวอย่างที่สองและสามแสดงให้เห็นถึงสถานการณ์นี้
    ALLEXCEPT(Table, Column1 [,Column2]...) ลบตัวกรองบริบททั้งหมดในตาราง ยกเว้นตัวกรองที่ถูกนําไปใช้กับคอลัมน์ที่ระบุ นี่คือทางลัดที่สะดวกสําหรับสถานการณ์ที่คุณต้องการลบตัวกรองในคอลัมน์จํานวนมาก แต่ไม่ใช่คอลัมน์ทั้งหมดในตาราง
  • ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)

ตัวอย่าง 1

คํานวณอัตราส่วนของ Category Sales (ยอดขายตามหมวดหมู่) ต่อ Total Sales (ยอดขายทั้งหมด)

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

ตารางต่อไปนี้แสดงผลลัพธ์เมื่อมีการสร้างหน่วยวัด ใหม่ อัตราส่วนการขายของผู้จําหน่ายทั้งหมด โดยใช้สูตรที่แสดงในส่วนโค้ด เมื่อต้องการดูวิธีการทํางาน ให้เพิ่มเขตข้อมูล CalendarYear ลงใน พื้นที่ Row Labels (ป้ายชื่อ แถว) ของ PivotTable และเพิ่มเขตข้อมูล ProductCategoryName ไปยัง พื้นที่ Column Labels (ป้ายชื่อ คอลัมน์) จากนั้นลากหน่วยวัด อัตราส่วนการขายของผู้จําหน่ายทั้งหมด ไปยัง พื้นที่ ค่า ของ Pivot Table หากต้องการดูผลลัพธ์เป็นเปอร์เซ็นต์ ให้ใช้คุณลักษณะการจัดรูปแบบของ Excel เพื่อใช้การจัดรูปแบบตัวเลขเปอร์เซ็นต์กับเซลล์ที่มีหน่วยวัด

ป้ายชื่อแถว อุปกรณ์ จักรยาน เสื้อผ้า คอมโพเนนต์ ผลรวมทั้งหมด
2005 0.02% 9.10% 0.04% 0.75% 9.91%
2006 0.11% 24.71% 0.60% 4.48% 29.90%
2007 0.36% 31.71% 1.07% 6.79% 39.93%
2008 0.20% 16.95% 0.48% 2.63% 20.26%
ผลรวมทั้งหมด 0.70% 82.47% 2.18% 14.65% 100.00%

สูตร

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  

สูตรจะถูกสร้างขึ้นดังนี้:

  1. ตัว SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])เศษ คือผลรวมของค่าใน ResellerSales_USD[SalesAmount_USD] สําหรับเซลล์ปัจจุบันใน PivotTable โดยใช้ตัวกรองบริบทที่ใช้กับ CalendarYear และ ProductCategoryName

  2. สําหรับตัวหาร คุณเริ่มต้นด้วยการระบุตาราง ResellerSales_USD และใช้ฟังก์ชัน ALL เพื่อลบตัวกรองบริบททั้งหมดบนตาราง

  3. จากนั้นคุณใช้ฟังก์ชัน SUMX เพื่อรวมค่าในคอลัมน์ ResellerSales_USD[SalesAmount_USD] กล่าวอีกนัยหนึ่งคุณจะได้รับผลรวมของ ResellerSales_USD[SalesAmount_USD] สําหรับยอดขายของผู้จําหน่ายทั้งหมด

ตัวอย่าง 2

คํานวณอัตราส่วนของยอดขายผลิตภัณฑ์ (Ratio of Product Sales) ต่อยอดขายทั้งหมดตลอดปีปัจจุบัน (Total Sales Through Current Year)

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

ตารางต่อไปนี้แสดงผลลัพธ์เมื่อมีการสร้างหน่วยวัด ใหม่ ยอดขายของผู้จําหน่ายตามปี โดยใช้สูตรที่แสดงในส่วนโค้ด เมื่อต้องการดูวิธีการทํางาน ให้เพิ่มเขตข้อมูล CalendarYear ลงในพื้นที่ Row Labels ( ป้ายชื่อ แถว) ของ PivotTable และเพิ่มเขตข้อมูล ProductCategoryName ไปยัง พื้นที่ Column Labels (ป้ายชื่อ คอลัมน์) หากต้องการดูผลลัพธ์เป็นเปอร์เซ็นต์ ให้ใช้คุณลักษณะการจัดรูปแบบของ Excel เพื่อนํารูปแบบตัวเลขเปอร์เซ็นต์ไปใช้กับเซลล์ที่มีหน่วยวัด ยอดขายของผู้จําหน่ายตามปี

ป้ายชื่อแถว อุปกรณ์ จักรยาน เสื้อผ้า คอมโพเนนต์ ผลรวมทั้งหมด
2005 3.48% 11.03% 1.91% 5.12% 9.91%
2006 16.21% 29.96% 27.29% 30.59% 29.90%
2007 51.62% 38.45% 48.86% 46.36% 39.93%
2008 28.69% 20.56% 21.95% 17.92% 20.26%
ผลรวมทั้งหมด 100.00% 100.00% 100.00% 100.00% 100.00%

สูตร

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))  

สูตรจะถูกสร้างขึ้นดังนี้:

  1. ตัว SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])เศษ คือผลรวมของค่าใน ResellerSales_USD[SalesAmount_USD] สําหรับเซลล์ปัจจุบันใน Pivot Table โดยใช้ตัวกรองบริบทที่ใช้กับคอลัมน์ CalendarYear และ ProductCategoryName

  2. สําหรับตัวหาร คุณลบตัวกรองที่มีอยู่บน CalendarYear โดยใช้ฟังก์ชัน ALL(Column) การดําเนินการนี้จะคํานวณผลรวมของแถวที่เหลือในตาราง ResellerSales_USD หลังจากใช้ตัวกรองบริบทที่มีอยู่จากป้ายชื่อคอลัมน์ ผลกระทบสุทธิคือ สําหรับตัวหาร ผลรวมจะถูกคํานวณผ่าน ProductCategoryName ที่เลือก (ตัวกรองบริบทโดยนัย) และสําหรับค่าทั้งหมดใน Year

ตัวอย่างที่ 3

คํานวณผลกระทบของหมวดหมู่ผลิตภัณฑ์ (Product Categories) ต่อยอดขายทั้งหมดต่อปี (Total Sales Per Year)

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

ตารางต่อไปนี้แสดงผลลัพธ์เมื่อมีการสร้างหน่วยวัด ใหม่ ยอดขายของผู้จําหน่ายตาม CategoryName โดยใช้สูตรที่แสดงในส่วนโค้ด เมื่อต้องการดูวิธีการทํางาน ให้เพิ่มเขตข้อมูล CalendarYear ลงใน พื้นที่ Row Labels (ป้ายชื่อ แถว) ของ PivotTable และเพิ่มเขตข้อมูล ProductCategoryName ไปยัง พื้นที่ Column Labels (ป้ายชื่อ คอลัมน์) จากนั้นเพิ่มหน่วยวัดใหม่ไปยัง พื้นที่ ค่า ของ PivotTable หากต้องการดูผลลัพธ์เป็นเปอร์เซ็นต์ ให้ใช้คุณลักษณะการจัดรูปแบบของ Excel เพื่อนํารูปแบบตัวเลขเปอร์เซ็นต์ไปใช้กับเซลล์ที่มีหน่วยวัด ยอดขายของผู้จําหน่ายตาม CategoryName

ป้ายชื่อแถว อุปกรณ์ จักรยาน เสื้อผ้า คอมโพเนนต์ ผลรวมทั้งหมด
2005 0.25% 91.76% 0.42% 7.57% 100.00%
2006 0.38% 82.64% 1.99% 14.99% 100.00%
2007 0.90% 79.42% 2.67% 17.01% 100.00%
2008 0.99% 83.69% 2.37% 12.96% 100.00%
ผลรวมทั้งหมด 0.70% 82.47% 2.18% 14.65% 100.00%

สูตร

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))  

สูตรจะถูกสร้างขึ้นดังนี้:

  1. ตัว SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])เศษ คือผลรวมของค่าใน ResellerSales_USD[SalesAmount_USD] สําหรับเซลล์ปัจจุบันใน PivotTable โดยใช้ตัวกรองบริบทที่ใช้กับเขตข้อมูล CalendarYear และ ProductCategoryName

  2. สําหรับตัวหาร คุณใช้ฟังก์ชัน ALL(Column) เพื่อลบตัวกรองบน ProductCategoryName และคํานวณผลรวมของแถวที่เหลือบนตาราง ResellerSales_USD หลังจากใช้ตัวกรองบริบทที่มีอยู่จากป้ายชื่อแถว ผลกระทบสุทธิคือ สําหรับตัวหาร ผลรวมจะถูกคํานวณผ่าน Year ที่เลือก (ตัวกรองบริบทโดยนัย) และสําหรับค่าทั้งหมดของ ProductCategoryName

ฟังก์ชันตัวกรอง
ฟังก์ชัน ALL
ฟังก์ชัน ALLEXCEPT
ฟังก์ชัน FILTER