องค์ประกอบสำคัญที่ขาดไม่ได้ของ Dashboards นอกจากกราฟสวยแล้ว ยังต้องสามารถแสดงรายการที่อยากจะทราบออกมาให้เห็นได้ด้วย
คำสั่ง Data > Filter เป็นเครื่องมือที่ชอบใช้ แต่ไม่มีทางทราบได้เลยว่าสิ่งที่คำสั่งนี้กรองหาออกมาให้นั้นได้มาจากการใช้เงื่อนไขอะไรอยู่ จนกว่าจะคลิกที่เมนูเพื่อแกะย้อนไปดูว่าทำอะไรไว้
☝️ แทนที่จะพึ่งคำสั่งบนเมนู ให้ใช้สูตร Filter กรองหารายการตามเงื่อนไขที่เห็นได้ชัดเจนบนหน้าจอดีกว่าว่ากำลังหาอะไรอยู่บ้าง
ในการค้นหา จากภาพนี้ พื้นที่ส่วนที่ใส่สีไว้ด้านบน มีไว้สำหรับคลิกหาเรื่องที่อยากค้นหา หรือถ้าขี้เกียจคลิกเพราะรายการเยอะมาก จะพิมพ์เองลงไปเลยก็ยังได้
ตารางด้านล่างเป็นผลที่ได้จากการกรองด้วยสูตร Dynamic Array ที่จะยืดได้หดได้เพื่อแสดงรายการที่อยากดู
=IFERROR(
FILTER( FoodData,
(OrderDate>=IF(B5=0,OrderDate,B5))
*(OrderDate<=IF(B6=0,OrderDate,B6))
*Key(C5:C6,Region)
*Key(D5:D8,City)
*Key(E5:E8,Category)
*Key(F5:F8,Product)
*(Quantity>=IF(G5=0,Quantity,G5))
*(Quantity<=IF(G6=0,Quantity,G6))
*(Sales>=IF(H5=0,Sales,H5))
*(Sales<=IF(H6=0,Sales,H6))
*(Year>=IF(I5=0,Year,I5))
*(Year<=IF(I6=0,Year,I6))
*(Month>=IF(J5=0,Month,J5))
*(Month<=IF(J6=0,Month,J6))
),"")
🧐 สูตรนี้ยาวหน่อยแต่สามารถใช้ค้นหาอะไรก็ได้ตามต้องการ ไม่ว่าจะมีรายการเดียวหรือมีรายการซ้ำ โดยไม่ต้องพึ่ง VBA หรือสูตร VLookup, Xlookup
เงื่อนไขที่เกี่ยวข้องกับค่าที่อยู่ระหว่าง ใช้สูตรโดยทั่วไปแบบนี้
(NumRange>=ค่าต่ำสุด)*(NumRange<=ค่าสูงสุด) เช่น
(OrderDate>=B5)*(OrderDate<=B6)
แต่ทำให้เผื่อไว้ว่าจะกรอกวันที่หรือไม่ จึงปรับใหม่เป็น
(OrderDate>=IF(B5=0,OrderDate,B5))
*(OrderDate<=IF(B6=0,OrderDate,B6))
สาเหตุที่มีสูตร IF(B5=0,OrderDate,B5) ซ้อนอยู่ข้างในแทนที่จะใส่แค่ B5 เฉยๆ เพื่อตรวจสอบว่า ถ้าเซลล์ B5 ไม่ได้กรอกอะไรก็จะถือว่าหาค่าทั้งหมด แต่ถ้ากรอกก็ให้ใช้ค่า B5
Download ตัวอย่างได้จาก
https://drive.google.com/file/d/12mMtFA8f8wERk0nQZbqpEiPVfCyCB1M1/view?usp=sharing
ติดตามเรียนย้อนหลังได้ที่
https://excelexpertlibrary.blogspot.com/2025/09/excel-365-dynamic-dashboards-season-1-2.html
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.