ปัญหาหนึ่งของ Dashboards ที่ทำจาก PivotTable ใช้งานจริงยากมาก เกิดจากชื่อสินค้าหรือชื่อลูกค้าที่มีเยอะมาก มีสาขานับร้อย การที่มีตัวเลือกจำนวนมากนี่แหละ ทำให้กว่าจะเจอเรื่องที่อยากดู ต้องเสียเวลาไล่หาจาก Filter/Slicer ที่ล้นออกนอกจอ พอคนดูอยากจะจัดเรียงลำดับรายการก็ทำเองไม่เป็นว่าต้องสั่งตรงไหน
ใน Rev 03 คราวนี้ นอกจากจะช่วยทำให้เลือกดูเฉพาะ Product ที่ต้องการ ยอดรวมประเภทไหน ปีใดที่อยากดูก็ได้แล้ว คราวนี้ปรับให้ช่วยผู้ดูสามารถสั่งเรียงตามชื่อสินค้า หรือจะเรียงตัวเลขจากมากไปน้อยได้ด้วย
☝️ ทำให้คลิกปั้บก็เจอปุ้บ
จากเดิมที่ใช้สูตร PivotBY พอนำมาสั่ง Sort จะติดปัญหาว่าจะนำหัวตารางที่เป็นชื่อเขต East กับ West มาเรียงกับตัวเลขไปด้วย จึงจัดการสั่งตัดหัวตารางทิ้งด้วยสูตร Drop แล้วนำไป Sort ด้วยสูตรนี้
=LET(
p,
DROP(
PIVOTBY(Product, Region, CHOOSE(S4, Sales, Quantity, Year/Year), SUM, 0, 0,, 0,, Key(B5:C10, Product) * Key(B16, Year)),
1),
SORTBY( p, INDEX(p,,S10), IF(C19,-1,1))
)
สูตร Let ช่วยทำให้สูตรสั้นลง ไม่ต้องเอาสูตร PivotBY+Drop ที่ยาวมากไปใช้ซ้ำกันหลายครั้ง โดยตั้งชื่อให้กับสูตรด้วยชื่อตัวแปร p
จากนั้นนำ p ไปสั่ง Sort ด้วยสูตร
SORTBY( p, INDEX(p,,S10), IF(C19,-1,1))
โดย
INDEX(p,,S10) ทำหน้าที่เลือกพื้นที่ของ column ตามเลขที่ซึ่งได้จาก S10
ถ้า S10=1 จะนำชื่อ Product มาเรียง
ถ้า S10=2 จะนำยอด East มาเรียง
ถ้า S10=3 จะนำยอด West มาเรียง
IF(C19,-1,1) ช่วยเลือกตามค่า True ในช่อง C19 ที่เตรียมไว้ให้คลิกกา ถ้ากาก็จะใช้เงื่อนไข -1 เรียงจากมากไปน้อย
Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1_qUYnggZU24gTFFl8Nfz9KjQh5mYuF5o/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.