: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

คำนวณหาค่า Maximum,Average,Count...โดยการใช้ VBA

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
saranyoo
Member
Member
Posts: 12
Joined: Thu Aug 18, 2011 10:58 am

คำนวณหาค่า Maximum,Average,Count...โดยการใช้ VBA

#1

Post by saranyoo »

สวัสดี ครับ อาจารย์
ผมมีเรื่องรบกวนอีกแล้วครับ

คือ ผมต้องการคำนวณหาค่า Maximum,Average,Count... โดยการใช้ VBA ครับ เพราะข้อมูลผมมีเยอะมากเลยครับ...

1. ตรวจสอบค่าวันที่ตรง คอลัมน์ B ว่าวันที่กันหรือเปล่า (Sheet1)

2. ตรวจสอบค่าเวลาตรง คอลัมน์ D ว่าเวลาเดียวกันมีกี่เชลล์ (ตรวจสอบเฉพาะชั่วโมง) (Sheet1)

3. ทำการคำนวณตรง คอลัมน์ O เพื่อหาค่า Maximum,Average,Count...(จำนวนเชลล์ที่จะคำนวณได้จาก ข้อ 2.) (Sheet1)

Image

4. นำคำตอบที่ได้ไปตอบใน Sheet2 ตามเวลาของแต่ละชั่วโมง (ดังรูป Sheet2)
Image
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: คำนวณหาค่า Maximum,Average,Count...โดยการใช้ VBA

#2

Post by snasui »

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

จากไฟล์ที่ถามมา ที่ Sheet2

1. เซลล์ E5 คีย์สูตรเพื่อหาค่า Max

=MAX(IF(Sheet1!$B$5:$B$26=$B5,IF(Sheet1!$C$5:$C$26=$C5,IF(HOUR(Sheet1!$D$5:$D$26)=HOUR($D5),Sheet1!$O$5:$O$26))))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

2. เซลล์ F5 คีย์สูตรเพื่อหาค่า Average

=AVERAGE(IF(Sheet1!$B$5:$B$26=$B5,IF(Sheet1!$C$5:$C$26=$C5,IF(HOUR(Sheet1!$D$5:$D$26)=HOUR($D5),Sheet1!$O$5:$O$26))))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

3. เซลล์ G5 คีย์สูตรเพื่อนับว่ามีกี่รายการ

=COUNT(IF(Sheet1!$B$5:$B$26=$B5,IF(Sheet1!$C$5:$C$26=$C5,IF(HOUR(Sheet1!$D$5:$D$26)=HOUR($D5),Sheet1!$O$5:$O$26))))

Ctrl+Shift+Enter > Copy ลงด้านล่าง
saranyoo
Member
Member
Posts: 12
Joined: Thu Aug 18, 2011 10:58 am

Re: คำนวณหาค่า Maximum,Average,Count...โดยการใช้ VBA

#3

Post by saranyoo »

ขอบคุณครับ อาจารย์ที่ช่วยหาคำตอบให้...

แต่ที่ผมต้องใช้ VBA ในการหาค่าMaximum,Average,Count...เพราะข้อมูลผมต้องหาค่าเป็นพันเชลล์เลยครับอาจารย์
ผมเลยอยากได้สูตรเพื่อมาดัดแปลงในการใช้งานครับ เพราะเชลล์ที่จะหาค่าMaximum,Average,Count... มีความกว้างของเชลล์ไม่เท่ากันครับ เลยต้องพิจารณา จากวันที่และเวลาเพื่อหาจำนวนเชลล์ในการหาค่า...

รบกวนด้วยนะครับอาจารย์....
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: คำนวณหาค่า Maximum,Average,Count...โดยการใช้ VBA

#4

Post by snasui »

:D การเขียน VBA เลียนแบบฟังก์ชั่นที่ Excel มีมาให้แล้วนั้นจะช้ากว่าฟังก์ชั่นที่มีมาให้พร้อม Excel ครับ หากต้องการใช้ฟังก์ชั่นที่เขียนมาเองก็ลองเขียนมาได้ครับ ติดขัดตรงไหนก็มาถามกันต่อ
saranyoo
Member
Member
Posts: 12
Joined: Thu Aug 18, 2011 10:58 am

ขอความช่วยเหลือเกี่ยวกับ VBA คำนวณค่า Max Average count

#5

Post by saranyoo »

ใช้ VBA
ช่วยด้วยครับผมทำไงขอคิดไม่ออกเลยครับ

ตัวอย่าง ผมต้องเช็ควันที่ (column C ของ 24hr) ตามด้วยเวลา(column E ของ 24hr)..แล้วหาค่า Max Average count ตรง column P ครับ

ส่วนคำตอบ ตอบตรง column M,N,O ของ truck ครับ

เพราะผมมีข้อมูลค่อยๆกันอีกเลยอันเลยครับ เลยอยากได้แถวทางในการเขียน

ขอบคุณครับ

ผมแนบไฟล์มาด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: คำนวณหาค่า Maximum,Average,Count...โดยการใช้ VBA

#6

Post by snasui »

:ard: ตอบไปแล้วครับ การขอแนวทางย่อมต้องเขียน VBA ได้บ้างครับ ไม่ใช่เขียนไม่เป็นเลย ย้ำอีกทีว่าให้ลองเขียนมาก่อนครับ
snasui wrote::D การเขียน VBA เลียนแบบฟังก์ชั่นที่ Excel มีมาให้แล้วนั้นจะช้ากว่าฟังก์ชั่นที่มีมาให้พร้อม Excel ครับ หากต้องการใช้ฟังก์ชั่นที่เขียนมาเองก็ลองเขียนมาได้ครับ ติดขัดตรงไหนก็มาถามกันต่อ
Post Reply