HASONEFILTER
อัปเดต 27 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop
เอกสารอ้างอิง: HASONEFILTER (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)
HASONEFILTER คืออะไร
ตรวจว่าคอลัมน์ถูกกรองโดยตรงเหลือค่าเดียวหรือไม่ ต่างจาก HASONEVALUE ที่นับค่าที่เหลือหลังตัวกรองจากตารางอื่นด้วย
ใช้เมื่อไหร่
- แสดงชื่อค่าที่ผู้ใช้เลือกใน Slicer เพียงค่าเดียว
- แยกกรณีผู้ใช้เลือกเอง ออกจากกรณีที่แถวเหลือค่าเดียวเอง
รูปแบบสูตร
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| columnName | จำเป็น | ชื่อคอลัมน์ ใส่นิพจน์ไม่ได้ |
ลองเลย: HASONEVALUE กับ HASONEFILTER ในแถวพนักงาน
คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน
- พนักงานขาย[ชื่อพนักงาน] = "สุภาพร หงษ์ทอง"
- สินค้าไม่มีตัวกรอง
- วันที่ไม่มีตัวกรอง
- ยอดขายเหลือ 54 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
| พนักงานขาย | ยอดขาย | ภาคจาก HASONEVALUE | ภาคจาก HASONEFILTER |
|---|---|---|---|
| สุภาพร หงษ์ทอง | |||
| กมลชนก พงษ์พานิช | |||
| นันทิดา กิจเจริญ | |||
| อรทัย พิทักษ์วงศ์ | |||
| ธีรพงษ์ ฉัตรแก้ว | |||
| วรวุฒิ แสงทอง | |||
| ปิยะนุช ศรีสวัสดิ์ | |||
| ชยพล บุญมา | |||
| ยอดรวม |
ถ้าคุณเขียน Excel อยู่แล้ว
=IF(COUNTA(ช่องเลือกภาค)=1, ช่องเลือกภาค, "ไม่ได้เลือกภาค")Excel ดูจากช่องที่ผู้ใช้เลือกเอง
ภาคที่เลือก = IF(HASONEFILTER('พนักงานขาย'[ภูมิภาค]), SELECTEDVALUE('พนักงานขาย'[ภูมิภาค]), "ไม่ได้เลือกภาค")ตอบว่าผู้ใช้เลือกภาคเดียวหรือไม่ ไม่ใช่ว่าแถวนั้นเหลือภาคเดียว
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. แถวพนักงานหนึ่งคน ยังไม่เลือกภาคใน Slicer HASONEFILTER('พนักงานขาย'[ภูมิภาค]) ได้อะไร
ไม่มีตัวกรองบนคอลัมน์ภาคโดยตรง
2. แถวเดียวกันนั้น HASONEVALUE('พนักงานขาย'[ภูมิภาค]) ได้อะไร
พนักงานหนึ่งคนเหลือภาคเดียว
3. ต้องการแสดงชื่อภาคเฉพาะเมื่อผู้ใช้เลือกภาคเดียวใน Slicer ควรใช้อะไร
HASONEFILTER ดูว่าผู้ใช้กรองคอลัมน์นั้นเหลือค่าเดียว
ไฟล์ฝึก HASONEFILTER
9Expert-DAX-HASONEFILTER-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1[ภาคจาก HASONEFILTER] ภาคที่เลือกใน Slicer ถ้าเลือกภาคเดียว · กรอง พนักงานขาย = กมลชนก พงษ์พานิช, ปี = 2024
- ข้อ 2[ภาคจาก HASONEFILTER] ภาคที่เลือกใน Slicer ถ้าเลือกภาคเดียว · กรอง พนักงานขาย = ธีรพงษ์ ฉัตรแก้ว, ภูมิภาค = ตะวันออกเฉียงเหนือ, ปี = 2025
- ข้อ 3[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง พนักงานขาย = อรทัย พิทักษ์วงศ์, ภูมิภาค = กลาง, ปี = 2025
- ข้อ 4[ภาคจาก HASONEVALUE] ภาคของแถว ถ้าเหลือภาคเดียว · กรอง พนักงานขาย = วรวุฒิ แสงทอง, ปี = 2024
- ข้อ 5[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ปี = 2025
ไปต่อ
ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)