ALLEXCEPT
นําไปใช้กับ: การคํานวณคอลัมน์จากการคํานวณ ตารางจากการคํานวณ หน่วยวัดภาพการคํานวณ
ลบตัวกรองบริบททั้งหมดในตาราง ยกเว้นตัวกรองที่ถูกนําไปใช้กับคอลัมน์ที่ระบุ
ไวยากรณ์
ALLEXCEPT(<table>,<column>[,<column>[,…]])
พารามิเตอร์
เงื่อนไข | คำนิยาม |
---|---|
ตาราง | ตารางที่มีการเอาตัวกรองบริบททั้งหมดออก ยกเว้นตัวกรองบนคอลัมน์เหล่านั้นที่ระบุไว้ในอาร์กิวเมนต์ที่ตามมา |
คอลัมน์ | คอลัมน์สําหรับตัวกรองบริบทที่ต้องได้รับการรักษาไว้ |
อาร์กิวเมนต์แรกของฟังก์ชัน ALLEXCEPT ต้องเป็นการอ้างอิงไปยังตารางฐาน อาร์กิวเมนต์ที่ตามมาทั้งหมดต้องเป็นการอ้างอิงไปยังคอลัมน์ฐาน คุณไม่สามารถใช้นิพจน์ตารางหรือนิพจน์คอลัมน์กับฟังก์ชัน ALLEXCEPT ได้
ค่าที่ส่งกลับ
ตารางที่มีตัวกรองทั้งหมดจะถูกลบออก ยกเว้นตัวกรองบนคอลัมน์ที่ระบุ
หมายเหตุ
ฟังก์ชันนี้ไม่ได้ถูกใช้ด้วยตัวเอง แต่ทําหน้าที่เป็นฟังก์ชันขั้นกลางที่สามารถใช้ในการเปลี่ยนชุดผลลัพธ์ที่ดําเนินการคํานวณอื่น ๆ
ALL และ ALLEXCEPT สามารถใช้ได้ในสถานการณ์ที่แตกต่างกัน:
ฟังก์ชันและการใช้งาน คำอธิบาย ALL(Table) ลบตัวกรองทั้งหมดออกจากตารางที่ระบุ ดังนั้น ALL(Table) จะแสดงค่าทั้งหมดในตาราง โดยลบตัวกรองใดก็ตามออกจากบริบทที่อาจเคยมีการนําไปใช้ ฟังก์ชันนี้มีประโยชน์เมื่อคุณทํางานกับการจัดกลุ่มหลายระดับ และต้องการสร้างการคํานวณที่สร้างอัตราส่วนของค่ารวมต่อค่าทั้งหมด ALL (Column[, Column[, ...]]) ลบตัวกรองทั้งหมดออกจากคอลัมน์ที่ระบุในตาราง ตัวกรองอื่น ๆ ทั้งหมดบนคอลัมน์อื่น ๆ ในตารางยังคงใช้งานอยู่ อาร์กิวเมนต์ของคอลัมน์ทั้งหมดต้องมาจากตารางเดียวกัน ตัวแปร ALL(Column) มีประโยชน์เมื่อคุณต้องการลบตัวกรองบริบทสําหรับคอลัมน์ที่ระบุอย่างน้อยหนึ่งคอลัมน์และเก็บตัวกรองบริบทอื่น ๆ ทั้งหมด ALLEXCEPT(Table, Column1 [,Column2]...) ลบตัวกรองบริบททั้งหมดในตาราง ยกเว้นตัวกรองที่ถูกนําไปใช้กับคอลัมน์ที่ระบุ นี่คือทางลัดที่สะดวกสําหรับสถานการณ์ที่คุณต้องการลบตัวกรองในคอลัมน์จํานวนมาก แต่ไม่ใช่คอลัมน์ทั้งหมดในตาราง ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)
ตัวอย่าง
สูตรหน่วยวัดต่อไปนี้จะรวม SalesAmount_USD และใช้ฟังก์ชัน ALLEXCEPT เพื่อลบตัวกรองบริบทใด ๆ ในตาราง DateTime ยกเว้นถ้ามีการนําตัวกรองไปใช้กับคอลัมน์ CalendarYear
= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear]))
เนื่องจากสูตรใช้ ALLEXCEPT เมื่อใดก็ตามที่คอลัมน์ใด ๆ แต่ CalendarYear จากตาราง DateTime ถูกใช้เพื่อแบ่งส่วนการแสดงภาพ สูตรจะลบตัวกรองตัวแบ่งส่วนข้อมูลใด ๆ ที่ให้ค่าเท่ากับผลรวมของ SalesAmount_USD อย่างไรก็ตาม ถ้าคอลัมน์ CalendarYear ถูกใช้เพื่อแบ่งส่วนการแสดงภาพ ผลลัพธ์จะแตกต่างกัน เนื่องจาก CalendarYear ถูกระบุเป็นอาร์กิวเมนต์ของ ALLEXCEPT เมื่อข้อมูลถูกแบ่งส่วนในปี ตัวกรองจะถูกนําไปใช้กับปีในระดับแถว