:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
hanuaggie61
Member
Member
Posts: 31
Joined: Wed Apr 17, 2019 12:22 am
Excel Ver: Office 365

ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#1

Post by hanuaggie61 »

ผมมีข้อมูลเป็นตารางการวิ่งงานของคนขับรถในแต่ละวัน โดยทำเป็น Sheet ละเดือน

ผมต้องการสูตรสรุปยอดรวมทั้งเดือนว่าใครวิ่งงานได้กี่เที่ยว / ยอดค่าเที่ยวเท่าไหร่
โดยเรียงลำดับจากยอดรวมค่าเที่ยวมากไปหาน้อย

เบื้องต้นผมทำเป็น Pivot Table ตามคอลัมภ์ J-L
แต่พบปัญหาเวลา Copy Sheet ไปเป็นเดือนใหม่ Pivot Table มันยังอ้างอิงไปยังตารางข้อมูลของเก่าอยู่
ทำให้ต้องมาเปลี่ยนแหล่งที่มาของตารางใหม่ทุกครั้ง (ซึ่ง User ปกติทำไม่เป็น)

ผมเลยรบกวนขอแบบที่เป็นสูตรหน่อยได้ไหมครับ
ผมพยายามยำ Uniqe กับ Sort แล้ว แต่ทำแบบโชว์หลายคอลัมภ์ไม่ได้

ผลลัพธ์ที่ต้องการตาม Pivot คอลัมภ์ J-L เลยครับ
รายงานสรุปการวิ่งงาน - Test.xlsx
Screenshot Pivot.png
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30947
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#2

Post by snasui »

:D กรุณา Update Version ของ Excel ที่ใช้ตาม Link นี้ด้วย :arrow: https://snasui.com/viewtopic.php?p=103177#p103177 เพื่อจะได้ตอบให้ตรงกับ Version ที่ใช้งานอยู่จริงครับ
User avatar
norkaz
Gold
Gold
Posts: 1752
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#3

Post by norkaz »

...

รบกวนท่านเจ้าของคำถาม ช่วยระบุเวอร์ชั่นตามที่ อาจารย์ คนควน ได้แจ้งไปครับ

หากใช้ Excel 365 ลองปรับไปแบบนี้

J3
=LET(d,D3:D999,h,H3:H999,u,UNIQUE(FILTER(d,h<>"")),VSTACK(SORT(HSTACK(u,COUNTIFS(d,u),SUMIFS(h,d,u)),{3},-1),HSTACK("Grand Total",SUM(COUNTIFS(d,u)),SUM(h))))


ถ้าใช้ เวอร์ชั่น ต่ำกว่า Excel 365

N3 (Helper)
=IFERROR(INDEX(D:D,AGGREGATE(15,6,ROW($D$3:$D$999)/(MATCH($D$3:$D$999,$D$3:$D$999,0)=ROW($D$3:$D$999)-ROW($D$3)+1),ROWS($N$3:N3))),"")
Copy ลงไป

J3
=INDEX(N:N,MOD(AGGREGATE(14,6,SUMIFS($H$3:$H$999,$D$3:$D$999,$N$3:$N$999)+ROW($H$3:$H$999)/10^6,ROWS($J$3:J3)),1)*10^6)
Copy ลงไป

K3
=COUNTIFS($D$3:$D$999,"<>""",$D$3:$D$999,J3)
Copy ลงไป

L3
=SUMIFS($H$3:$H$999,$D$3:$D$999,J3)
Copy ลงไป

** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ

...
You do not have the required permissions to view the files attached to this post.
User avatar
norkaz
Gold
Gold
Posts: 1752
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#4

Post by norkaz »

hanuaggie61 wrote: Sat Dec 23, 2023 3:29 pm ผมมีข้อมูลเป็นตารางการวิ่งงานของคนขับรถในแต่ละวัน โดยทำเป็น Sheet ละเดือน

ผมต้องการสูตรสรุปยอดรวมทั้งเดือนว่าใครวิ่งงานได้กี่เที่ยว / ยอดค่าเที่ยวเท่าไหร่
โดยเรียงลำดับจากยอดรวมค่าเที่ยวมากไปหาน้อย

เบื้องต้นผมทำเป็น Pivot Table ตามคอลัมภ์ J-L
แต่พบปัญหาเวลา Copy Sheet ไปเป็นเดือนใหม่ Pivot Table มันยังอ้างอิงไปยังตารางข้อมูลของเก่าอยู่
ทำให้ต้องมาเปลี่ยนแหล่งที่มาของตารางใหม่ทุกครั้ง (ซึ่ง User ปกติทำไม่เป็น)

ผมเลยรบกวนขอแบบที่เป็นสูตรหน่อยได้ไหมครับ
ผมพยายามยำ Uniqe กับ Sort แล้ว แต่ทำแบบโชว์หลายคอลัมภ์ไม่ได้

ผลลัพธ์ที่ต้องการตาม Pivot คอลัมภ์ J-L เลยครับ
รายงานสรุปการวิ่งงาน - Test.xlsx
Screenshot Pivot.png
ปัญหาของท่านเจ้าของคำถาม ประเด็นหลักๆ คือการต้องมาคอย เปลี่ยนแหล่งข้อมูลเดิม

หากไม่ต้องการสูตร แบบซับซ้อน ก็ใช้วิธีการ PivotTable แบบเดิม ซึ่งน่าจะสะดวกกว่า

โดยอาศัยชีทที่ทำปัจจุบันเป็น Template หลักเก็บไว้ เผื่อช่วงข้อมูลไปเยอะๆ

1. เมื่อทำเสร็จแล้ว แล้ว Move or Copy ไปไว้อีกชีท ตั้งชื่อเช่น Day1

2. เมื่อมีข้อมูลใหม่ ก็นำมาแทนที่ข้อมูล ใน ชีท Temaplate หลัก แล้ว Refresh แล้ว Move or Copy ไปไว้อีกชีท ตั้งชื่อเช่น Day2

3. เมื่อมีข้อมูลใหม่ ก็นำมาแทนที่ข้อมูล ใน ชีท Temaplate หลัก แล้ว Refresh แล้ว Move or Copy ไปไว้อีกชีท ตั้งชื่อเช่น Day3

หากไม่ต้องการ Refresh บ่อยๆ สามารถตั้งค่า Refresh ทุกครั้งอัตโนมัติ เมื่อเปิดไฟล์

a) คลิกขวาที่ PivotTable

b) PivotTable Options

c) ที่แท็บ Data ติ๊กที่ Refresh data when opening the file -> OK

** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ

...
hanuaggie61
Member
Member
Posts: 31
Joined: Wed Apr 17, 2019 12:22 am
Excel Ver: Office 365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#5

Post by hanuaggie61 »

snasui wrote: Sat Dec 23, 2023 5:35 pm :D กรุณา Update Version ของ Excel ที่ใช้ตาม Link นี้ด้วย :arrow: https://snasui.com/viewtopic.php?p=103177#p103177 เพื่อจะได้ตอบให้ตรงกับ Version ที่ใช้งานอยู่จริงครับ
Update ข้อมูล Profile เรียบร้อยแล้วครับ
ครั้งนี้ผมน่าจะพิมพ์ยาวจนลืมแจ้งเวอร์ชั่นครับ
hanuaggie61
Member
Member
Posts: 31
Joined: Wed Apr 17, 2019 12:22 am
Excel Ver: Office 365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#6

Post by hanuaggie61 »

norkaz wrote: Sun Dec 24, 2023 11:51 am ...
รบกวนท่านเจ้าของคำถาม ช่วยระบุเวอร์ชั่นตามที่ อาจารย์ คนควน ได้แจ้งไปครับ
หากใช้ Excel 365 ลองปรับไปแบบนี้
แก้ไขเรียบร้อย ในครั้งนี้ผมลืมแจ้งต้องขอโทษด้วยนะครับ ทำให้ต้องมา 2 เวอร์ชั่นเลย แต่ทำให้ได้ความรู้ทั้ง 2 แบบเลยครับ
คอลัมน์ Helper ใช้บ่อยมากครับตอนเวอร์ชั่นเก่า


norkaz wrote: Sun Dec 24, 2023 11:51 am J3
=LET(d,D3:D999,h,H3:H999,u,UNIQUE(FILTER(d,h<>"")),VSTACK(SORT(HSTACK(u,COUNTIFS(d,u),SUMIFS(h,d,u)),{3},-1),HSTACK("Grand Total",SUM(COUNTIFS(d,u)),SUM(h))))

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ

ขอบคุณมากครับ สูตรใช้ได้ตรงตามที่ต้องการครับ (คำถามที่แล้ว ก็ได้ VStack กับ Hstack มาช่วยเหมือนกันได้แนวทางแล้วครับ)

* สอบถามสูตร Sort ครับ ตรงค่าที่ 2 (Sort_Index) ที่เลือกให้เรียงตามคอลัมน์ที่ 3 ทำไมถึงต้องใส่เครื่องหมายวงเล็บปีกกา ที่เหมือนเป็น Array เหรอครับ ?
ผมได้ทดลองเอาออกก็ยังแสดงผลปกติ (ลองเพิ่มข้อมูลพขร.อีก 1 คน ก็ยังใช้ได้ปกติ)
Sort_Ask.png
You do not have the required permissions to view the files attached to this post.
hanuaggie61
Member
Member
Posts: 31
Joined: Wed Apr 17, 2019 12:22 am
Excel Ver: Office 365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#7

Post by hanuaggie61 »

norkaz wrote: Sun Dec 24, 2023 6:31 pm
ปัญหาของท่านเจ้าของคำถาม ประเด็นหลักๆ คือการต้องมาคอย เปลี่ยนแหล่งข้อมูลเดิม
หากไม่ต้องการสูตร แบบซับซ้อน ก็ใช้วิธีการ PivotTable แบบเดิม ซึ่งน่าจะสะดวกกว่า
โดยอาศัยชีทที่ทำปัจจุบันเป็น Template หลักเก็บไว้ เผื่อช่วงข้อมูลไปเยอะๆ

1. เมื่อทำเสร็จแล้ว แล้ว Move or Copy ไปไว้อีกชีท ตั้งชื่อเช่น Day1
2. เมื่อมีข้อมูลใหม่ ก็นำมาแทนที่ข้อมูล ใน ชีท Temaplate หลัก แล้ว Refresh แล้ว Move or Copy ไปไว้อีกชีท ตั้งชื่อเช่น Day2
3. เมื่อมีข้อมูลใหม่ ก็นำมาแทนที่ข้อมูล ใน ชีท Temaplate หลัก แล้ว Refresh แล้ว Move or Copy ไปไว้อีกชีท ตั้งชื่อเช่น Day3
เป็นเทคนิคที่เป็นความรู้เลยครับอันนี้
ทำใน Master แล้ว Copy Sheet ไปเก็บเป็นข้อมูลแต่ละเดือนใน Sheet ใหม่ ซึ่งไม่มีการแก้ไขแล้ว
(หรือต่อให้มีก็ Copy ข้อมูลไปวางใน Master เพื่อดึงใหม่ก็ได้)
แต่ต้องอธิบาย User หรือ ทำ Note ไว้นิดนึง
User avatar
norkaz
Gold
Gold
Posts: 1752
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#8

Post by norkaz »

...


{3} หมายถึง คอลัมน์ ที่3 ถูกต้องตามที่สอบถามมาครับ หรือ คีย์ 3 ไปตรงๆ ก็ได้ครับ กรณีเลือก Sort เพียงคอลัมน์เดียว

ถ้า Sort แบบหลายคอลัมน์พร้อมกันในสูตรนั้นๆ เช่น ให้Sort คอลัมน์ที่3 ก่อน แล้วกำหนดให้ Sort คอลัมน์ที่ 2 ตรงนั้นจะคีย์ 3,2 ไม่ได้ จำเป็นต้อง คีย์ {3,2}

** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
hanuaggie61
Member
Member
Posts: 31
Joined: Wed Apr 17, 2019 12:22 am
Excel Ver: Office 365

Re: ต้องการสรุปข้อมูลยอดรวมค่าเที่ยวของคนแต่ละคนพร้อมเรียงมากไปหาน้อย

#9

Post by hanuaggie61 »

norkaz wrote: Sun Dec 24, 2023 10:04 pm ...

{3} หมายถึง คอลัมน์ ที่3 ถูกต้องตามที่สอบถามมาครับ หรือ คีย์ 3 ไปตรงๆ ก็ได้ครับ กรณีเลือก Sort เพียงคอลัมน์เดียว
ถ้า Sort แบบหลายคอลัมน์พร้อมกันในสูตรนั้นๆ เช่น ให้Sort คอลัมน์ที่3 ก่อน แล้วกำหนดให้ Sort คอลัมน์ที่ 2 ตรงนั้นจะคีย์ 3,2 ไม่ได้ จำเป็นต้อง คีย์ {3,2}
** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***
แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
ขอบคุณครับ
- ถ้ากรองชั้นเดียว ใช้หรือไม่ใช้ก็ได้
- ถ้ากรองหลายชั้น ต้องใช้ {} เท่านั้น
Post Reply