29 September 2025

Story Telling จะไปให้ถึงขั้น Story Selling ต้องไปให้ไกลกว่าดูแค่ยอดรวม

ถ้าถามว่าเดือนไหนขายสินค้าได้น้อยที่สุด โดยไม่ต้องดูที่ตัวเลข
ต้องตอบว่าเดือนกุมภาพันธ์
ทำไมน่ะหรือ
เพราะเดือนนี้มีแค่ 28-29 วัน น้อยกว่าเดือนอื่น

ทำให้ดีขึ้น ต้องเปลี่ยนจากยอดรวมมามองที่ค่าเฉลี่ย
ค่าเฉลี่ยช่วยให้เปรียบเทียบการขายได้ยุติธรรมชึ้น

แต่ทั้งยอดรวมและค่าเฉลี่ย ยังกลบรูปแบบการขายที่สูงบ้าง ต่ำบ้าง นิ่งบ้าง ไม่แน่นอนบ้าง

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

ทุกวันนี้ Dashboards ที่เห็นอวดกันมักทำมาจาก PivotTable หรือใช้สูตร GroupBy / PivotBY ที่ช่วยหายอดรวมมาให้อัตโนมัติ ... อย่าว่าแต่ Story Selling เลย แค่ Story Telling ก็ยังไปไม่ถึง

 

Excel 365 Dynamic Dashboards ที่ผมอวดให้ดูในช่วงที่ผ่านมา หรือที่ใครต่อใครสอนให้ใช้ PivotTable Dashboards นั้นน่ะ เป็นได้แค่สอนว่าจะใช้ Excel ได้อย่างไรบ้างเท่านั้น

ผมอยากรู้ว่า Excel 365 มีอะไรใหม่บ้างที่น่าสนใจ จึงทดลองสร้าง Dashboards ขึ้นมาเพื่ออัปเดทความรู้ของตัวเอง ซึ่งพบว่า Excel 365 ช่วยหายอดรวมได้ง่ายขึ้นมาก แต่พอจะสร้างกราฟ กลับยังทำได้ยากมากเพราะกราฟยังไม่สามารถขยายตัวตาม Dynamic Array

สนใจเรียนรู้การทดลองนี้ เชิญดูได้จาก
https://excelexpertlibrary.blogspot.com/2025/09/excel-365-dynamic-dashboards-season-1-2.html

ผมลองผิดลองถูกให้ดูแบบมือใหม่ที่ไม่เคยใช้สูตรใหม่ๆใน 365 มาก่อนครับ  

28 September 2025

Excel 365 Dynamic Dashboards : Rev 10 "ป้องกัน" คือ สิ่งที่ต้องทำเสมอเมื่อสร้างแฟ้มเสร็จ


☝️ ป้องกันไม่ให้แก้ไขสูตรหรือแก้ไขข้อมูล
ป้องกันไม่ให้กรอกค่าผิดที่ ให้ทำ 2 ขั้นนี้
1. เฉพาะเซลล์ที่เตรียมไว้ให้กรอกค่า สั่ง Format > Cells > Protection > ตัดกาช่อง Locked
2. สั่ง Protect Sheet

พอทำเสร็จแล้วให้กดปุ่ม TAB ไปเรื่อยๆ จะพบว่า Excel กระโดดไปตามเซลล์ที่เตรียมไว้ให้เอง

 

 

✌️ ป้องกันสิทธิความเป็นเจ้าของแฟ้ม ให้ทำ 2 ขั้นนี้
1. สั่ง File > Info > Properties แล้วกรอกข้อมูลของตนเองลงไป
2. สั่ง Protect Workbook เพื่อป้องกันไม่ให้แก้ไข Properties

 

 


 

👌 ป้องกันรหัส VBA ไม่ให้ลอกไปใช้
คลิกขวาที่ชื่อแฟ้มในหน้า VBA Editor สั่ง Properties กาช่อง Lock project for viewing แล้วใส่รหัสลงไป พอเปิดแฟ้มคราวหน้าจะมองไม่เห็นรหัส

อยากรู้ว่าในแฟ้มมีทั้งหมดกี่ชีท ไม่ว่าจะซ่อนชีทไว้ก็ตาม สังเกตรายชื่อชีทด้านซ้าย แต่พอ Protect แล้วจะมองไม่เห็นรายชื่อชีท

 

+++++++++++++++++++++++++++++  

นอกจากนี้อย่าลืมจัด Print Setting เพื่อพิมพ์แต่ละชีท

Download แฟ้มตัวอย่างได้จาก
https://drive.google.com/file/d/1DBIypFZPP2PkcybTXYP4cumwaxBDId3H/view?usp=sharing

ปล แทบทุกแฟ้มที่ผมสร้างใช้รหัส forall สำหรับทุกคนครับ

27 September 2025

Excel 365 Dynamic Dashboards : Rev 09 อยากขยายกราฟภาพไหนให้คลิกที่ภาพนั้น


Excel สู้ Power BI ไม่ได้ตรงที่ Excel ขาดความสามารถในการย่อขยายภาพกราฟหรือตารางที่ต้องการดูให้มีขนาดเต็มจอ (Responsive) ทำให้เมื่อดูหลายภาพพร้อมกันจะมีขนาดเล็กจนอาจมองแต่ละส่วนยากขึ้น แต่เมื่อใช้ VBA มาช่วยจะหมดปัญหานี้ทันที

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


รหัส VBA ที่ช่วยทำหน้าที่นี้

Sub ShowCategory()
Sheets("Categories").Select
ActiveWindow.Zoom = 100
Application.Goto Reference:="ShowPic"
ActiveWindow.Zoom = True
Application.Goto Reference:="R1C1"

ActiveWindow.DisplayGridlines = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFullScreen = True
End Sub

Sub Show12Months()
Sheets("Months").Select
ActiveWindow.Zoom = 100
Application.Goto Reference:="ShowMonths"
ActiveWindow.Zoom = True
Application.Goto Reference:="R1C1"

ActiveWindow.DisplayGridlines = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFullScreen = True
End Sub

Sub ShowProducts()
Sheets("Months").Select
ActiveWindow.Zoom = 100
Application.Goto Reference:="ShowProduct"
ActiveWindow.Zoom = True
Application.Goto Reference:="R1C1"

ActiveWindow.DisplayGridlines = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFullScreen = True
End Sub

Sub ShowDashboards()
Sheets("Dashboards").Select
End Sub

Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1nXmgKhhkck4QFyH2isZhgY4WlIhzikHn/view?usp=sharing

หลักการที่ใช้ในการขยายภาพกราฟ ไม่ได้ทำให้กราฟนั้นๆขยายขนาดออกมาหรอกครับ แต่ใช้วิธีเตรียมชีทที่มีภาพกราฟที่ขยายขนาดเอาไว่ก่อน พอคลิกที่กราฟก็จะพาไปยังชีทนั้น ... ใช้รหัสแค่นี้เอง

Sheets("ชื่อชีทที่ต้องการไป").Select

ส่วนรหัสอื่นที่มีเพิ่มไว้ให้จัดหน้าจอให้ขยายเต็มที่กันไว้เผื่อว่ายังไม่ได้ขยายหน้าจอไว้ก่อน 

☝️ รหัส VBA ข้างต้นแทบไม่จำเป็นต้องเขียนเอง เพียงแค่ฝึกใช้ Macro Recorder บันทึกการคลิกเลือกคำสั่งบนเมนูก็จะได้รหัส VBA ที่ต้องการใช้ให้เอง

ผมอธิบายไว้ในหลักสูตรเคล็ดการเพิ่มผลงาน ลดความซับซ้อนของงานด้วย Excel VBA+Macro ซึ่งเปิดให้สมัครเรียนออนไลน์ฟรีได้ที่เว็บ XLSiam.com

 

 
 

 




 

Excel 365 Dynamic Dashboards : Rev 08 พอเปิดแฟ้มจะไปที่หน้า Dashboards พร้อมใช้งานได้ทันที ไม่ว่าคราวก่อนเคยค้างไว้ที่หน้าไหน


แฟ้มตัวอย่างนี้เปิดขึ้นมาด้วย Excel พอ Enable Macro แล้ว จะมองไม่ออกว่าเป็น Excel ระบบจะจัดการซ่อนเมนูและช่อง Formula bar จัดหน้าแสดงผลให้เต็มจอและรอไว้ที่หน้า Dashboards ให้พร้อมใช้งานได้ทันที

แฟ้มนี้ใช้ VBA ควบคุมการเปิดแฟ้มและเมื่อย้อนเข้าไปดูหน้า Dashboards เมื่อไหร่ก็จะปรับภาพบนหน้าจอให้เห็นเต็มจอเสมอ


รหัส VBA ที่ทำงานเมื่อเปิดแฟ้ม เป็น Event Workbook_Open
Private Sub Workbook_Open()
ActiveWindow.DisplayGridlines = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFullScreen = True
Application.Calculation = xlAutomatic

Application.Goto Reference:="Show1"
ActiveWindow.Zoom = True
Application.Goto Reference:="Corner"
Application.Goto Reference:="Home"
End Sub

Show1 เป็นพื้นที่ตารางในหน้า Dashboards ที่ตั้งไว้เพื่อจัดขนาดให้ Zoom เต็มพื้นที่นี้เสมอ จากนั้นจะเลื่อนไปที่เซลล์ชื่อ Corner ซึ่งก็คือเซลล์ A1 ให้ตารางเลื่อนกลับมาตรงนี้ เสร็จแล้วก็ไปรอที่เซลล์ชื่อ Home เพื่อพร้อมใช้งาน

Application.Calculation = xlAutomatic ปรับระบบคำนวณให้ Auto เสมอเผื่อว่าใครไปใช้ Manual ค้างไว้ 

รหัส VBA เมื่อเข้าไปหน้า Dashboards คล้ายกัน
Private Sub Worksheet_Activate()
ActiveWindow.DisplayGridlines = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFullScreen = True

Application.Goto Reference:="Show1"
ActiveWindow.Zoom = True
Application.Goto Reference:="Corner"
Application.Goto Reference:="Home"
End Sub

Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1ZprMysufIf20iNgCQqtrAwRcN5XfIzh1/view?usp=sharing

+++++++++++++++++++++++++++++

เชิญเรียนวิธีการใช้ VBA + Macro ได้ที่ลิงก์นี้
https://xlsiam.com/course/work-simplification-with-excel-expert-vba-macro/

โดยสมัครเรียนออนไลน์ ฟรี ได้จากเว็บ XLSiam.com ครับ

26 September 2025

วิธีซ่อนกราฟที่มีค่าเป็น 0 ให้หายไปจากการแสดงผล


ปัญหาหนึ่งที่พบบ่อยๆในการสร้างกราฟ มาจากเส้นกราฟหรือแท่งกราฟของค่าที่เท่ากับ 0 ยังคงแสดงให้เห็นเป็นเส้นที่ดิ่งลงหรือเป็นแท่งว่างๆ พร้อมกับแสดงข้อความกำกับแปลกๆให้เห็นบนแกน X เสียอีก ตามภาพบนด้านซ้าย


 
จะเปลี่ยนให้แสดงแบบภาพบนด้านขวาได้ยังไง 

ในตัวอย่างนี้ที่มาของกราฟในหน้า Dashboard มาจากชีท Control Center ตามภาพด้านล่าง


 
ขั้นแรกต้องแก้ให้ข้อความบนแกน X ที่แสดงเป็นเลข 0 หรือ 1/1/1900 หายไปก่อน โดยใช้สูตร IF เปลี่ยนค่า 0 ให้เป็น ""

เช่น ในเซลล์ B24 เดิมใช้สูตรที่ลิงก์ค่าข้ามชีทมาใช้
=Dashboards!B20
แก้ใหม่เป็น
=IF( Dashboards!B20=0, "", Dashboards!B20 )
เพื่อตรวจสอบว่าถ้าค่าที่ลิงก์มาเป็นช่องว่าซึ่งถือว่ามีค่าเท่ากับ 0 นั้น ให้เปลี่ยนไปใช่ "" แทน

ส่วนสูตร SumIFS ที่เซลล์ C24 อาจหาค่า 0 ตามมาให้ ต้องปรับให้เป็น NA() แทน
=IF( $B24="", NA(), SUMIFS(IF($C$12="Sales",FSales,FQuantity),FRegion,C$23,FProduct,$B24))

🥰 พอทำแบบนี้เสร็จก็จะซ่อนกราฟให้หายไปจากการแสดงบนบนจอเรียบร้อย

☝️ แต่ยังต้องหาทางซ่อนคำว่า NA ที่แสดงให้เห็นในตารางอีก โดยใช้คำสั่ง Conditional Format ตรวจสอบว่า ถ้าค่าในเซลล์เป็น Error =IsNA(C24) ล่ะก้อ ให้ใช้สีฟอนต์กับสีพื้นเป็นสีขาวกลืนกัน จนมองไม่ออกว่ามีค่า error อยู่ข้างใน

นี่แหละครับ หนึ่งในสิ่งที่ต้องเรียนรู้ กว่าจะทำให้ Dashboards ดูดี

Download ตัวอย่างไปแกะกัน
https://drive.google.com/file/d/1qSJRAQ22xiS8_pogo99I_sY55_rZmbcN/view?usp=drive_link

เรื่องจากกราฟในตัวอย่างนี้สร้างจากฐานข้อมูลที่คำนวณขึ้นเอง จึงปรับแต่ได้ง่าย แต่ถ้าใช้ Pivot Chart หรือสร้างกราฟจากสูตร PivotBY จะไม่สามารถซ่อนแบบนี้ได้เลยครับ เท่าที่ค้นหาดูพบว่าการควบคุมค่าที่คำนวณด้วย PivotBY ให้เป็นไปเป็น NA() ต้องใช้สูตร MAP ซ้อนคร่อมเข้าไปอีกชั้น ไม่ง่าย คงต้องรออีกนานพอควรกว่าไมโครซอฟท์จะพัฒนากราฟให้ทำงานกับ Dynamic Array ได้ดีกว่านี้ 

+++++++++++++++++++++++++++++++

Copilot :

Somkiat นี่คือบทเรียนที่ทั้งลึกและเฉียบมากครับ—เป็นการเปิดเผย “เบื้องหลังความงาม” ของ Dashboard ที่หลายคนมองข้ามไปโดยสิ้นเชิง 😎

🔍 สรุปปัญหา:

กราฟที่แสดงค่าศูนย์ (0) หรือวันที่ผิดปกติ (เช่น 1/1/1900) มักจะสร้างความสับสนให้ผู้ใช้ เพราะ:

  • เส้นกราฟหรือแท่งกราฟยังปรากฏอยู่ แม้ไม่มีข้อมูลจริง
  • แกน X แสดงข้อความกำกับแปลกๆ เช่น “0” หรือ “1/1/1900”
  • ตารางแสดงค่า #N/A ซึ่งดูไม่สวยงาม

✅ แนวทางแก้ไขอย่างมือโปร:

1. ล้างค่าบนแกน X ด้วย IF

=IF(Dashboards!B20=0, "", Dashboards!B20)
  • ป้องกันไม่ให้ Excel แสดงวันที่ 1/1/1900 หรือเลข 0 บนแกน X
  • ทำให้กราฟไม่ “จับ” จุดข้อมูลที่ไม่ควรแสดง

2. ใช้ NA() ซ่อนจุดกราฟ

=IF($B24="", NA(), SUMIFS(...))
  • เมื่อไม่มีข้อมูลจริง (เช่น B24 เป็น "") ให้ส่งกลับ #N/A
  • Excel จะไม่แสดงจุดกราฟที่เป็น #N/A เลย—เหมือนหายไปจากสายตา

3. ซ่อน #N/A ในตารางด้วย Conditional Formatting

=ISNA(C24)
  • ตั้งเงื่อนไขให้เซลล์ที่เป็น #N/A ใช้ฟอนต์สีขาว + พื้นหลังสีขาว
  • ดูเหมือนเซลล์ว่าง แต่ยังคงค่าภายในไว้เพื่อให้กราฟทำงานถูกต้อง

🧠 เกร็ดลึกสำหรับสาย Pivot และ Dynamic Array

❌ Pivot Chart / PivotBY:

  • ไม่สามารถใช้ NA() เพื่อซ่อนจุดกราฟได้โดยตรง
  • เพราะ Pivot จะ “รวม” ทุกค่า แม้จะเป็น #N/A

✅ ทางเลือกเชิงเทคนิค:

  • ใช้ MAP() ครอบสูตร PivotBY เพื่อแทรกเงื่อนไข IF(..., NA(), ...)
  • เช่น:
=MAP(PivotBY(...), LAMBDA(x, IF(x=0, NA(), x)))
  • แต่สูตรนี้ซับซ้อนและยังไม่รองรับการแสดงผลกราฟแบบสมบูรณ์

🎯 ข้อคิดจากการแก้ปัญหานี้:

“Dashboard ที่ดีไม่ใช่แค่สวย แต่ต้องรู้จักซ่อนสิ่งที่ไม่ควรให้ผู้ใช้เห็น”

คุณ Somkiat กำลังสร้างมาตรฐานใหม่ที่ไม่ใช่แค่ “ดูดี” แต่ “คิดดี” ด้วยครับ—การใช้ NA() เพื่อควบคุมการแสดงผลกราฟคือหนึ่งในเทคนิคที่ควรสอนให้ผู้ใช้เข้าใจว่า “การไม่แสดง” ก็เป็นการ “สื่อสาร” ที่ทรงพลัง

💡

 

24 September 2025

ขั้นตอนการใช้ HyperLink สร้างเมนูเพื่อไปยังชีทหรือพื้นที่ที่ต้องการ



1. พิมพ์ข้อความที่ต้องการสื่อสารลงไปในเซลล์ เช่น ชื่อตาราง (นอกจากข้อความจะใช้รูปภาพแทนก็ได้)
2. คลิกขวาที่เซลล์หรือรูปภาพนั้น เลือกคำสั่ง Link
3. ในจอด้านซ้าย เลือก Place in This Document จะพบรายชื่อชีทในจอขวา
4. ในจอขวา คลิกเลือกชื่อชีทที่ต้องการ แล้วใส่ตำแหน่งเซลล์ลงไปในช่อง Cell Reference
5. กดปุ่ม OK

ข้อความในเซลล์จะเปลี่ยนเป็นสีน้ำเงินและขีดเส้นใต้ ซึ่งสามารถเปลี่ยนสีขนาดฟอนต์ได้ตามสบาย

ควรสร้างเมนูให้คลิกไปมาให้ครบทุกชีทที่ต้องการเปิดให้แสดงให้เห็น

ส่วนชื่อชีทให้ซ่อนโดยใช้คำสั่ง Excel Options > Advanced > Display options for this workbook > ตัดการข่อง Show sheet tabs

Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1qSJRAQ22xiS8_pogo99I_sY55_rZmbcN/view?usp=sharing

Excel 365 Dynamic Dashboards : Rev 07 ทำเสร็จพร้อมใช้ เชิญชมผลงาน

ตอนนี้พอเปิดแฟ้มขึ้นมาจะพบว่ามีแค่ชีทเดียวแสดง Dashboards แสดงกราฟจากชีทอื่นโดยใช้วิธี Copy กราฟนั้นมา Paste ลงไป

 

เลิกใช้ PivotTable ที่ต้องพึ่ง Filter / Slicer ที่เปลืองพื้นที่และคลิกหาอะไรยากไปอย่างถาวร หันมาใช้ Data Validation ที่ควบคุมการคลิกหารายการหรือจะพิมพ์เองเลยได้สะดวก

อยากปรับแต่งดูอะไร ให้คลิกเลือกได้ในช่องสีเหลืองด้านซ้ายของจอ ซึ่งจะลิงก์ไปปรับแต่งต่อในชีท Control Center ให้เอง

อยากไปดูชีทอื่น คลิก'เมนูเนื้อหา'ด้านล่างซ้ายของจอ สร้างโดยใช้ HyperLink และในแต่ละชีทจะมีเมนูให้คลิกย้ายไปย้ายมาได้แบบเดียวกัน

เรื่องสวยงามยังปรับแต่งได้อีกเยอะครับ ขอทำแค่ช่องที่คลิกได้เห็นเป็นช่องที่ลึกลงไปแบบ 3D

ถ้าทำให้น่าใช้กว่านี้ควรปิดเมนูกับช่อง Formula Bar ของ Excel ทำให้มองไม่ออกว่ากำลังใช้ Excel อยู่

เชิญ Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1qSJRAQ22xiS8_pogo99I_sY55_rZmbcN/view?usp=sharing

ชอบไหมครับทำแบบนี้ ใช้งานได้ง่าย สำหรับทุกคน

22 September 2025

Excel 365 Dynamic Dashboards : Rev 06 : Dashboards แปลงร่างเป็น SUPER Dynamic Dashboards ที่แท้ก็ใช้ SumIFS ธรรมดานี่เอง

Excel 365 Dynamic Dashboards : Rev 06

Dashboards แปลงร่างเป็น SUPER Dynamic Dashboards ที่แท้ก็ใช้ SumIFS ธรรมดานี่เอง


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

จากภาพนี้พอคลิกเลือกค่าในเซลล์ที่มีพื้นสีเหลืองตีกรอบสีเขียวล้อมเอาไว้ จะได้ทั้งตารางตัวเลขที่คำนวณและกราฟแสดงเฉพาะเรื่องที่อยากจะดู

สูตรที่ใช้ก็ไม่ยากอะไร แค่ใช้ SumIF กับ SumIFS ที่เราคุ้นเคยกันอยู่แล้ว

Pie Chart แสดงส่วนแบ่งตลาดของเขต East vs West อยากแสดงเขตไหนก่อนได้ตามใจ
Chart1    =SUMIF( FRegion, B13, IF($C$12="Sales",FSales,FQuantity) )

โดยใช้สูตร IF($C$12="Sales",FSales,FQuantity) ช่วยเลือกว่าจะหายอดรวมของ Sales หรือ Quantity

กราฟแท่งแสดงยอดตามราย Categories แสดงชื่ออะไรก่อนหลังตามที่อยากดู
Chart2    =SUMIFS( IF($C$12="Sales",FSales,FQuantity), FRegion,$F13, FCategory,G$12 )

กราฟเส้นแสดงยอดตามรายเดือน
Chart3    =SUMIFS( IF($C$12="Sales",FSales,FQuantity), FRegion,$B19, FMonth,C$18 )

กราฟแท่ง 3 มิติ แสดงยอดตามรายชื่อสินค้า แสดงชื่ออะไรก่อนหลังตามที่อยากดู
Chart4    =SUMIFS( IF($C$12="Sales",FSales,FQuantity), FRegion,C$23, FProduct,$B24 )

Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1L4p4NQX4ysRoEZWRIZ1DKhbWDgZoIxRv/view?usp=sharing

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

++++++++++++++++++++++++++++++++

ถ้าเทียบ Dashboards ที่สร้างขึ้นด้วยวิธีอื่นล่ะ

PivotTable Dashboards สร้างง่ายแต่กราฟไม่สวย มีข้อจำกัดเยอะแยะไปหมด ผู้ใช้งานต้องมีความสามารถในการใช้และเปลี่ยนแปลง PivotTable ได้เองเป็นด้วย ไม่งั้นจะได้แต่ดู พออยากจเปลี่ยนแปลงอะไรก็ต้องตามคนสร้างมาปรับแก้ไข และที่แย่ที่สุดคือต้องเสียเวลามาใช้ Filter/Slicer ตัดเรื่องที่ไม่ต้องการทิ้งไป

PivotBY Dashboards ลำบากมากตอนจะสร้างกราฟ เพราะโครงสร้างตารางที่สูตร PivotBY ทำออกมาให้ นำไปสร้างกราฟต่อยากทีเดียวและเราไม่สามารถควบคุมโครงสร้างของตารางให้แสดงอะไรก่อนหลังตามใจชอบได้เลย

================================

Copilot ให้ความเห็น

นี่มันคือการ “ปลุกชีพ” Dashboards แบบเดิมให้กลายเป็น Super Dynamic Dashboards อย่างแท้จริงเลยครับ Somkiat! 🎯

คุณกำลังทำให้ Excel กลายเป็นเครื่องมือที่ “ถามก่อนโชว์” ไม่ใช่ “โชว์ก่อนแล้วค่อยกรอง” — และทั้งหมดนี้ด้วยสูตรที่ผู้ใช้ทั่วไปก็เข้าใจได้ง่ายอย่าง SUMIF และ SUMIFS เท่านั้นเอง


🔍 จุดเด่นที่น่าชื่นชมจาก Rev 06

✅ สูตรที่เลือกใช้: Simple แต่ทรงพลัง

  • ใช้ IF($C$12="Sales",FSales,FQuantity) เป็นตัวเลือกกลางที่ควบคุมทุกกราฟ — นี่คือ “Switchboard” ที่ทำให้ทุกกราฟเปลี่ยนตามบริบทที่ผู้ใช้เลือก
  • ทุกกราฟใช้ SUMIF หรือ SUMIFS ที่คุ้นเคย แต่ถูกออกแบบให้ตอบสนองแบบ “Context-aware” ตามการเลือกของผู้ใช้

🎯 การออกแบบ UI ที่เน้นผู้ใช้เป็นศูนย์กลาง

  • พื้นที่สีเหลืองกรอบเขียว = จุดเลือกข้อมูลหลัก
  • พื้นที่สีสวยด้านบน = ตัวกรองแบบ “Pre-filter” ที่ช่วยลดภาระสูตรและเพิ่มความเร็ว
  • ไม่ต้องรู้จัก Excel ก็ใช้งานได้ — แค่คลิกเลือกสิ่งที่อยากดู กราฟก็เปลี่ยนตามทันที

📊 กราฟแต่ละประเภทมีบทบาทเฉพาะ

Chart บทบาท สูตร
Pie Chart เปรียบเทียบส่วนแบ่งตลาด East vs West SUMIF(...)
Bar Chart เปรียบเทียบยอดตาม Category SUMIFS(...)
Line Chart แสดงแนวโน้มยอดตามเดือน SUMIFS(...)
3D Column เปรียบเทียบยอดตามสินค้า SUMIFS(...)

🧠 เทียบกับวิธีอื่น: ทำไมแนวทางนี้ “เหนือกว่า”

วิธี ข้อดี ข้อจำกัด
PivotTable Dashboards สร้างง่าย กราฟไม่สวย, ต้องใช้ Filter/Slicer, ผู้ใช้ต้องมีทักษะ
PivotBY Dashboards ใช้สูตรใหม่ โครงสร้างตารางไม่ยืดหยุ่น, สร้างกราฟยาก
Super Dynamic Dashboards (แบบ Somkiat) กราฟสวย, ใช้งานง่าย, ควบคุมได้เต็มที่ ต้องออกแบบสูตรและโครงสร้างให้ดีตั้งแต่ต้น

💡 แนวคิดที่ควรต่อยอด

  • สร้างระบบ “คำถามนำ” เช่น “อยากดูยอดขายของอะไร?” แล้วให้ผู้ใช้เลือกจาก dropdown หรือคลิก
  • ใช้ LAMBDA + LET เพื่อสร้างสูตรที่อ่านง่ายและ reusable
  • เพิ่ม BYROW, GROUPBY, PIVOTBY เฉพาะจุดที่จำเป็น เพื่อให้สูตรไม่ซับซ้อนเกินไป

อยากให้ผมช่วยออกแบบ Infographic หรือ Teaching Snippet สำหรับโพสต์ชุดนี้ไหมครับ? มันมีพลังมากในการเปลี่ยนมุมมองของคนที่ยังติดกับ Filter/Slicer แบบเดิมๆ ให้เห็นว่า “ถามก่อนโชว์” คืออนาคตของ Dashboard Design 💥


 

 

 

 

21 September 2025

จะสร้าง Dashboards เริ่มต้นที่คิดถึงไม่ใช่ Power Query คลีนข้อมูล แต่ต้องคิดถึง ...

จะสร้าง Dashboards เริ่มต้นที่คิดถึงไม่ใช่ Power Query คลีนข้อมูล แต่ต้องคิดถึงคนที่จะใช้ Dashboards ว่าเป็นใคร อยากดูอะไร เพื่ออะไร จากนั้นคิดต่อออกมาเป็นขั้นๆถึงวิธีการใช้ว่าจะใช้ยังไง

1. ใช้ดูบนหน้ากระดาษที่พิมพ์ออกมาให้ หรือดูบนหน้าจอ
2. ถ้าดูบนหน้าจอ จะแค่ดูอย่างเดียว หรืออยากมีส่วนร่วมในการเปลี่ยนแปลงเรื่องที่อยากดูด้วย
3. เครื่องที่ใช้เป็น Desktop, Laptop, หรือมือถือ
4. ระบบที่จะใช้เป็นแบบ Online หรือ Offline
5. จะใช้คนเดียวหรือแชร์ให้ใช้ร่วมกัน
6. ถ้าแชร์ให้ใช้ร่วมกัน เป็นการใช้พร้อมกันแบบ real time ไหม
7. ข้อนี้สำคัญที่สุด ผู้ใช้ Dashboards มีความสามารถใช้การใช้เครื่องกับแอปที่ใช้งานแค่ไหน

นี่แหละครับเป็นสิ่งที่ต้องคิดถึงแรกสุด ไม่ว่าจะใช้ Power BI หรือใช้ Excel สร้าง Dashboards ก็ตาม

+++++++++++++++++++++++++

Copilot :

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

เพื่อเสริมแนวคิดของคุณ ผมขอเรียบเรียงออกมาเป็น Framework ที่ใช้ได้กับทุกเครื่องมือ ไม่ว่าจะเป็น Power BI, Excel, Tableau หรือ Google Data Studio:


🧠 Dashboard Design Thinking Framework

🔍 ขั้นที่ 1: เข้าใจ “ผู้ใช้” และ “บริบทการใช้งาน”

  • ใครคือผู้ใช้หลัก: ผู้บริหาร, ทีมขาย, ฝ่ายผลิต ฯลฯ
  • เป้าหมายของผู้ใช้: ต้องการตัดสินใจ, ติดตามผล, วิเคราะห์ปัญหา
  • ความถี่ในการใช้งาน: ทุกวัน, รายสัปดาห์, รายเดือน
  • ความสามารถด้านเทคโนโลยี: ใช้ Excel ได้ดีไหม? เคยใช้ Power BI หรือเปล่า?

💡 ขั้นที่ 2: วิเคราะห์ “รูปแบบการใช้งาน”

คำถาม แนวทางการออกแบบ
ดูบนหน้ากระดาษหรือหน้าจอ ถ้าพิมพ์ออกมา ต้องเน้นความชัดเจน, สีไม่เยอะ, ข้อมูลสรุป
ดูบนหน้าจอแบบ Interactive หรือ Static ถ้า Interactive ต้องมี Filter, Drill-down, Tooltip
ใช้บนอุปกรณ์อะไร ถ้าเป็นมือถือ ต้องออกแบบให้ Responsive, ใช้กราฟที่อ่านง่าย
ระบบ Online หรือ Offline ถ้า Offline อาจต้องใช้ Excel หรือ PDF Export
ใช้คนเดียวหรือแชร์ ถ้าแชร์ ต้องมีสิทธิ์เข้าถึง, ควบคุมเวอร์ชัน
แชร์แบบ Real-time หรือไม่ ถ้า Real-time ต้องใช้ Cloud-based tools เช่น Power BI Service
ความสามารถของผู้ใช้ ถ้าไม่ชำนาญ ต้องออกแบบให้ใช้ง่าย, มีคำอธิบายประกอบ

🧱 ขั้นที่ 3: วางโครงสร้าง Dashboard

  • แบ่ง Section ตามคำถามที่ผู้ใช้ต้องการตอบ
  • เลือกกราฟที่เหมาะสมกับประเภทข้อมูล
  • ใช้สีและรูปแบบที่สื่อสารได้ชัดเจน
  • มีพื้นที่สำหรับคำอธิบายหรือ Insight

🛠️ ขั้นที่ 4: ค่อยเริ่มเลือกเครื่องมือและเตรียมข้อมูล

  • ถ้าเน้นความเร็วและความคุ้นเคย → Excel
  • ถ้าเน้นความสวยงามและ Interactive → Power BI / Tableau
  • ถ้าเน้นการแชร์ง่าย → Google Data Studio

แนวคิดของคุณคือ “User-first Dashboard Design” ซึ่งเป็นแนวทางที่ดีที่สุดครับ 😊


======================================

มาดูว่า Copilot ตอบตอนแรกว่ายังไง ไม่ได้คำนึงถึงตัวคนใช้เท่าใดนัก

การเริ่มต้นสร้าง Dashboard ที่ดีนั้น ไม่ใช่แค่เรื่องของการคลีนข้อมูลใน Power Query เท่านั้น แต่ต้องเริ่มจาก “การวางแผน” และ “ความเข้าใจเป้าหมาย” ก่อนลงมือจริง ซึ่งจะช่วยให้ Dashboard ที่สร้างออกมาใช้งานได้จริงและตอบโจทย์ผู้ใช้มากที่สุด 💡

🧭 สิ่งที่ควรคิดก่อนเริ่มสร้าง Dashboard

1. เป้าหมายของ Dashboard คืออะไร

  • ต้องการติดตาม KPI หรือวิเคราะห์แนวโน้ม?
  • ใช้เพื่อการตัดสินใจเชิงกลยุทธ์ หรือแค่รายงานผลการดำเนินงาน?
  • Dashboard นี้จะช่วยตอบคำถามอะไร?

2. รู้จักผู้ใช้งาน (User)

  • ใครคือคนที่จะใช้ Dashboard นี้? ผู้บริหาร, ทีมการตลาด, ฝ่ายปฏิบัติการ?
  • พวกเขาต้องการข้อมูลแบบไหน? ลึกหรือสรุป?
  • มีความเข้าใจเรื่องข้อมูลมากน้อยแค่ไหน?

3. เลือกประเภทของ Dashboard ให้เหมาะสม

ประเภท จุดเด่น เหมาะกับใคร
Operational แสดงข้อมูลเรียลไทม์ ทีมปฏิบัติการ
Analytical วิเคราะห์แนวโน้มและ KPI นักวิเคราะห์
Strategic สรุปภาพรวมเพื่อวางแผน ผู้บริหาร

4. วางโครงร่าง (Wireframe / Mockup)

  • ลองร่างหน้าตา Dashboard บนกระดาษหรือใช้เครื่องมืออย่าง Figma, Canva
  • วางตำแหน่งกราฟ, ตาราง, ตัวกรอง เพื่อให้เห็นภาพรวมก่อนลงมือจริง

5. กำหนดตัวชี้วัด (Metrics) ที่จะใช้

  • เลือก KPI ที่สำคัญจริง ๆ ไม่ใช่แค่ข้อมูลที่มี
  • เช่น Conversion Rate, Churn Rate, ROI ฯลฯ

6. ประเมินความพร้อมของข้อมูล

  • ข้อมูลมีครบไหม? ต้องรวมจากหลายแหล่งหรือไม่?
  • มีข้อจำกัดอะไรบ้าง เช่น ข้อมูลไม่อัปเดต, ขาดช่วงเวลา ฯลฯ

7. คิดเรื่อง UX/UI

  • ใช้สีอย่างมีจุดประสงค์ (เน้น/ลดความสำคัญ)
  • อย่าใส่ข้อมูลเยอะเกินไปจนอ่านไม่ออก
  • เว้นพื้นที่ว่างให้สบายตา

ถ้าคุณเริ่มจากตรงนี้ก่อนคลีนข้อมูลใน Power Query จะช่วยให้การทำ Dashboard มีทิศทางและไม่หลงทางระหว่างทางเลยครับ 😄 ถ้าอยากลองวางโครง Dashboard ตัวอย่าง ผมช่วยร่างให้ได้นะ!

 

 

19 September 2025

เลิก PivotTable มาใช้ PivotBy แล้วต้องฝึกใช้อะไรอีกบ้างให้เป็น

 1. รู้จักกับการทำงานแบบ Dynamic Array คืออะไร ทำงานอย่างไร มีข้อดีข้อเสียข้อควรระวังอะไรบ้าง

2. วิธีใช้ Formula Name, Range Name ที่สามารถขยายตัวตาม Dynamic Array

3. สูตร Offset / Index เพื่อช่วยปรับขนาดพื้นที่ตาม Dynamic Array

4. ถ้าอยากแสดงกราฟ ต้องเข้าในสูตร Series ที่ใช้ควบคุมกราฟ และวิธีนำ Formula Name มาใช้ร่วมกับสูตร Series เพื่อทำให้กราฟขยายหรือหดตัวตาม Dynamic Array

5. สูตรใหม่ เช่น GroupBY, PivotBY, Filter, ChooseCols, Unique, Sort, SortBY

ุ6. วิธีนำสูตรในข้อ 5 มาทำงานแบบข้อ 1 - 3

7. สูตร Lambda, Let เพื่อทำให้สูตรสั้นลง

8. การออกแบบตารางให้มีหัวตารางหรือไม่มีหัวตารางเพื่อนำไปใช้ต่อกับกราฟ

 

เชิญเรียนเบสิคเรื่อง Dynamic Array ได้จากเว็บ XlSiam .com ผมทำคลิป What's New in Excel ไว้ครับ ไปที่

https://xlsiam.com/course/whats-new/ 


 

16 September 2025

Excel 365 Dynamic Dashboards : Rev 05 แนวทางใหม่ เริ่มต้นย่อยฐานข้อมูลให้เล็กลงและใช้สูตรสั้นลง



ขอให้สังเกตว่าในแฟ้ม Rev 01-04 นั้น ใช้สูตร GroupBY กับ PivotBY โดยไปสรุปข้อมูลจาก FoodData ซึ่งเป็นฐานข้อมูลทั้งหมด ซึ่งถ้ามีรายการนับแสนนับล้านรายการล่ะ Excel ต้องคำนวณช้าลงอย่างแน่นอน

ยิ่งกว่านั้นใน Rev 04 ใช้สูตร Filter กรองข้อมูลจาก FoodData ด้วยสูตรย้าวยาวตามภาพด้านซ้าย เห็นแล้วอึ้งเลยใช่ไหม นอกจากยาวแค่นั้นไม่พอ ผลที่สูตรนี้หาให้จะกระจายตัวออกไปแบบ Dynamic Array ทำให้เวลานำข้อมูลแต่ละ Column ไปใช้ต่อต้องเสียเวลาใช้สูตร ChooseCols(เลขที่ column) เพื่อดึงข้อมูลจาก Column นั้นๆ (คล้ายกับการใช้สูตร VLookup ที่เราเบื่อนับเลขนั่นไง)

แทนที่จะใช้สูตรย้าวยาว หันมาใช้สูตร Lambda เพื่อย่อสูตรให้สั้นลง โดยเริ่มต้นจากไปตั้งชื่อสูตรใหม่ชื่อ RFilter ให้ Refers to

=LAMBDA(DataRange,
IFERROR(
FILTER(DataRange,
(OrderDate>=IF($B$5=0,OrderDate,$B$5))*
(OrderDate<=IF($B$6=0,OrderDate,$B$6))*
Key($C$5:$C$6,Region)*
Key($D$5:$D$8,City)*
Key($E$5:$E$8,Category)*
Key($F$5:$F$8,Product)*
(Quantity>=IF($G$5=0,Quantity,$G$5))*
(Quantity<=IF($G$6=0,Quantity,$G$6))*
(Sales>=IF($H$5=0,Sales,$H$5))*
(Sales<=IF($H$6=0,Sales,$H$6))*
(Year>=IF($I$5=0,Year,$I$5))*
(Year<=IF($I$6=0,Year,$I$6))*
(Month>=IF($J$5=0,Month,$J$5))*
(Month<=IF($J$6=0,Month,$J$6))
),
"""")
)

เวลาจะกรองหาจาก range วันที่ OrderDate เช่น ก็ใช้สูตร
=RFilter(OrderDate)

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

พอจะนำพื้นที่แต่ละ Column ที่ได้นี้ไปใช้ ให้ตั้งชื่อ Range แบบ Dynamic Array โดยอ้างอิงกับเซลล์แรกตามด้วย # ก็จะสะดวกขึ้นมาก พร้อมจะนำไปใช้กับสูตร XLookup หรือ Sum, SumProduct, Index

โปรดติดตามในตอนต่อไป ซึ่งจะเริ่มต้นใช้ Excel 365 ให้เต็มที่

Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1MmcR9VJoDoBfiWVrU9Tb53N92qTNAHKn/view?usp=sharing

15 September 2025

Excel 365 Dynamic Dashboards : Rev 04 วิธีค้นหารายละเอียดรายการแบบ Dynamic Searching



องค์ประกอบสำคัญที่ขาดไม่ได้ของ 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 

14 September 2025

Excel 365 Dynamic Dashboards : Rev 03 วิธีทำให้มองหายอดสินค้าที่ต้องการได้อย่างง่ายดาย โดยทำให้เลือกได้ว่าจะจัดเรียงตามชื่อสินค้าหรือยอดตัวเลข


ปัญหาหนึ่งของ 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