Excel DAX - ฟังก์ชันตัวกรอง

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

Note- ฟังก์ชันตัวกรอง DAX ที่ส่งคืนตารางจะไม่เพิ่มตารางลงในตัวแบบข้อมูล ตารางผลลัพธ์ถูกใช้เป็นอาร์กิวเมนต์ในฟังก์ชัน DAX อื่น นั่นคือฟังก์ชัน DAX ดังกล่าวถูกใช้เป็นฟังก์ชันซ้อนกับฟังก์ชัน DAX อื่น ๆ

ในส่วนถัดไปคุณจะได้เรียนรู้ฟังก์ชันตัวกรอง DAX ที่คุณสามารถใช้ได้ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับฟังก์ชันเหล่านี้โปรดดูบทช่วยสอน - ฟังก์ชัน DAX ในไลบรารีบทช่วยสอนนี้

ฟังก์ชันตัวกรอง DAX

ต่อไปนี้เป็นฟังก์ชันตัวกรอง DAX -

ซีเนียร์ ฟังก์ชัน DAX และฟังก์ชันทำอะไร?
1

ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] …, <table>, <groupingColumn>, [<groupingColumn>] …, [filterTable] …)

เพิ่มการรวมรายการจากหลายคอลัมน์ลงในตารางหากยังไม่มีอยู่ การกำหนดชุดค่าผสมรายการที่จะเพิ่มขึ้นอยู่กับคอลัมน์แหล่งอ้างอิงที่มีค่าที่เป็นไปได้ทั้งหมดสำหรับคอลัมน์

เพื่อกำหนดการรวมรายการจากคอลัมน์ต่างๆที่จะประเมิน -

  • AutoExist ถูกนำไปใช้กับคอลัมน์ภายในตารางเดียวกัน
  • CrossJoin ใช้กับตารางต่างๆ
2

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

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

ฟังก์ชันนี้มีประโยชน์สำหรับการล้างตัวกรองและสร้างการคำนวณในทุกแถวในตาราง

3

ALLEXCEPT (<table>, <column>, [<column>], …)

ลบตัวกรองบริบททั้งหมดในตารางยกเว้นตัวกรองที่ใช้กับคอลัมน์ที่ระบุเป็นอาร์กิวเมนต์

ในทางตรงกันข้ามคุณสามารถใช้ฟังก์ชันนี้เมื่อคุณต้องการลบตัวกรองในคอลัมน์จำนวนมาก แต่ไม่ใช่ทั้งหมดในตาราง

4

ALLNOBLANKROW (<table>|<column>)

จากตารางหลักของความสัมพันธ์ผลตอบแทน -

  • ทุกแถวยกเว้นแถวว่างหรือ
  • ค่าที่แตกต่างกันทั้งหมดของคอลัมน์ แต่เป็นแถวว่าง

ฟังก์ชันไม่สนใจตัวกรองบริบทใด ๆ ที่อาจมีอยู่

5

ALLSELECTED ( [<tableName>|<columnName>] )

ลบตัวกรองบริบทออกจากคอลัมน์และแถวในแบบสอบถามปัจจุบันในขณะที่ยังคงตัวกรองบริบทอื่น ๆ ทั้งหมดหรือตัวกรองที่ชัดเจน

6

CALCULATE (<expression>, [<filter1>, <filter2> …)]

ประเมินนิพจน์ในบริบทที่แก้ไขโดยตัวกรองที่ระบุ

ส่งคืนค่าที่เป็นผลลัพธ์ของนิพจน์

7

CALCULATETABLE (<expression>, <filter1>, <filter2>, …)

ประเมินนิพจน์ตารางในบริบทที่แก้ไขโดยตัวกรองที่กำหนด

ส่งคืนตารางค่า

8

CROSSFILTER (<columnName1>, <columnName2>, <direction>)

ระบุทิศทางการกรองข้ามที่จะใช้ในการคำนวณสำหรับความสัมพันธ์ที่มีอยู่ระหว่างสองคอลัมน์ ไม่คืนค่าใด ๆ

9

DISTINCT (<column>)

ส่งคืนตารางหนึ่งคอลัมน์ที่มีค่าที่แตกต่างจากคอลัมน์ที่ระบุ กล่าวอีกนัยหนึ่งคือค่าที่ซ้ำกันจะถูกลบออกและจะส่งคืนค่าที่ไม่ซ้ำกันเท่านั้น

คอลัมน์ผลลัพธ์ถูกใช้เป็นอาร์กิวเมนต์ในฟังก์ชัน DAX อื่น

10

EARLIER (<column>, <number>)

ส่งคืนค่าปัจจุบันของคอลัมน์ที่ระบุในรอบการประเมินภายนอกของคอลัมน์ที่กล่าวถึงที่ระบุโดยตัวเลข

11

EARLIEST (<column>)

ส่งคืนค่าปัจจุบันของคอลัมน์ที่ระบุในรอบการประเมินภายนอกของคอลัมน์ที่ระบุ

12

FILTER (<table>, <filter>)

ส่งคืนตารางที่มีเฉพาะแถวที่กรอง

FILTER ใช้เป็นฟังก์ชันที่ฝังอยู่ในฟังก์ชันอื่น ๆ ที่ต้องใช้ตารางเป็นอาร์กิวเมนต์เท่านั้น

13

FILTERS (<columnName>)

ส่งคืนค่าที่ใช้โดยตรงเป็นตัวกรองไปยัง columnName

FILTERS ใช้เป็นฟังก์ชันที่ฝังอยู่ในฟังก์ชันอื่น ๆ ที่ต้องใช้ตารางเป็นอาร์กิวเมนต์เท่านั้น

14

HASONEFILTER (<columnName>)

ส่งคืนค่า TRUE เมื่อจำนวนค่าที่กรองโดยตรงใน columnName เป็นหนึ่ง มิฉะนั้นจะส่งกลับ FALSE

15

HASONEVALUE (<columnName>)

ส่งคืนค่า TRUE เมื่อบริบทสำหรับ columnName ถูกกรองลงเหลือเพียงค่าเดียวเท่านั้น มิฉะนั้นจะส่งกลับ FALSE

16

ISCROSSFILTERED (<columnName>)

ส่งคืนค่า TRUE เมื่อ columnName หรือคอลัมน์อื่นในตารางเดียวกันหรือที่เกี่ยวข้องกำลังถูกกรอง

17

ISFILTERED (<columnName>)

ส่งกลับค่า TRUE เมื่อมีการกรอง columnName โดยตรง หากไม่มีตัวกรองในคอลัมน์หรือหากการกรองเกิดขึ้นเนื่องจากคอลัมน์อื่นในตารางเดียวกันหรือในตารางที่เกี่ยวข้องกำลังถูกกรองฟังก์ชันจะส่งกลับ FALSE

18

KEEPFILTERS (<expression>)

ปรับเปลี่ยนวิธีใช้ตัวกรองในขณะที่ประเมินฟังก์ชัน CALCULATE หรือ CALCULATETABLE

19

RELATED (<column>)

ส่งคืนค่าที่เกี่ยวข้องจากตารางอื่น

20

RELATEDTABLE (<tableName>)

ประเมินนิพจน์ตารางในบริบทที่แก้ไขโดยตัวกรองที่กำหนด

21

SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnTable>, <orderBy_expression>, [<order>])

ส่งคืนตารางซึ่งแสดงถึงเซมิคอยน์ด้านซ้ายของสองตารางที่จัดให้เป็นอาร์กิวเมนต์

semijoin ดำเนินการโดยใช้คอลัมน์ทั่วไปซึ่งกำหนดโดยชื่อคอลัมน์ทั่วไปและประเภทข้อมูลทั่วไป

คอลัมน์ที่เข้าร่วมจะถูกแทนที่ด้วยคอลัมน์เดียวในตารางที่ส่งคืนซึ่งเป็นชนิดจำนวนเต็มและมีดัชนี

ดัชนีคือการอ้างอิงในตารางการเข้าร่วมที่ถูกต้องตามลำดับการจัดเรียงที่ระบุ

22

USERELATIONSHIP ( <columnName1>,<columnName2>)

ระบุความสัมพันธ์ที่จะใช้ในการคำนวณเฉพาะเป็นความสัมพันธ์ที่มีอยู่ระหว่าง columnName1 และ columnName2

23

VALUES (<TableNameOrColumnName>)

ส่งคืนตารางหนึ่งคอลัมน์ที่มีค่าที่แตกต่างจากตารางหรือคอลัมน์ที่ระบุ

กล่าวอีกนัยหนึ่งคือค่าที่ซ้ำกันจะถูกลบออกและจะส่งคืนค่าที่ไม่ซ้ำกันเท่านั้น