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

แชร์ผ่าน


ทั้งหมด

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

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

วากยสัมพันธ์

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

พารามิเตอร์

เทอม นิยาม
table ตารางที่คุณต้องการล้างตัวกรอง
column คอลัมน์ที่คุณต้องการล้างตัวกรอง

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

ค่าผลลัพธ์

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

หมาย เหตุ

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

  • ลักษณะการทํางานปกติสําหรับนิพจน์ DAX ที่มีฟังก์ชัน ALL() คือตัวกรองใดก็ตามที่ใช้จะถูกละเว้น อย่างไรก็ตาม มีบางสถานการณ์ที่นี่ไม่ใช่กรณีเนื่องจาก auto-existเทคโนโลยี DAX ที่ปรับการกรองให้เหมาะสมเพื่อลดจํานวนการประมวลผลที่จําเป็นสําหรับคิวรี DAX บางรายการ ตัวอย่างที่ซึ่ง auto-exist และ ALL() ให้ผลลัพธ์ที่ไม่คาดคิดคือเมื่อกรองในคอลัมน์สองคอลัมน์ขึ้นไปในตารางเดียวกัน (เช่นเมื่อใช้ตัวแบ่งส่วนข้อมูล) และมีหน่วยวัดบนตารางเดียวกันนั้นที่ใช้ ALL() ในกรณีนี้ auto-exist จะผสาน ผสาน ตัวกรองหลายตัวเป็นหนึ่งรายการและจะกรองเฉพาะชุดค่าที่มีอยู่เท่านั้น เนื่องจากการผสานนี้ หน่วยวัดจะถูกคํานวณในชุดของค่าที่มีอยู่และผลลัพธ์จะขึ้นอยู่กับค่าที่ถูกกรองแทนค่าทั้งหมดตามที่คาดไว้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ auto-exist และผลกระทบต่อการคํานวณ โปรดดูที่บทความ การทําความเข้าใจ ทําความเข้าใจ ของ 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 ไปยังพื้นที่ ป้ายชื่อคอลัมน์ จากนั้นเพิ่มหน่วยวัดใหม่ไปยังพื้นที่ Values ของ 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