snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
somjeed
Member
Posts: 14 Joined: Thu Sep 03, 2015 3:04 pm
#1
Post
by somjeed » Thu Sep 03, 2015 3:19 pm
รบกวนผู้รู้ค่ะ
1 มีข้อมูลรายชั่วโมงของสารมลพิษ x (ใน 1 วัน มี 24 ค่า) ต้องการรวมให้เป็นค่าเฉลี่ยรายวัน (รวมให้เหลือ 1 ค่า) แต่ข้อมูลมีเยอะมากค่ะ 12 ปี ต้องใช้สูตรอะไรคะ เช่น ต้องการหาค่าเฉลี่ย h3:h26, h27:h52,....... ต่อไปเรื่อยๆจนแถวสุดท้ายค่ะ
2 ในคอลัมย์ A รายงานเป็น ปี/เดือน/วัน แต่ตัวปีมีข้อมูลมาไม่ครบ เช่น 90101 คือ ปี 2009 เดือน 01 วันที่ 01 จะทำอย่างไรให้แสดงเต็ม เป็น 20090101 คะ
3. มีวิธีรวมข้อมูลหลายๆ sheet ให้อยู่ใน sheet เดียวกันแบบไม่ต้อง copy มาวางมั้ยคะ
ขอบคุณล่วงหน้าคะ
You do not have the required permissions to view the files attached to this post.
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#2
Post
by DhitiBank » Thu Sep 03, 2015 3:42 pm
ตอบทีละข้อนะครับ
1. อาจใช้สูตร sumif(...)/countif(...) ได้ โดย sumif จะรวมเฉพาะค่าในวันที่เฉพาะที่ต้องการ หารด้วย countif คือจะนับว่าในวันนั้นๆ มีการบันทึกผลกี่ครั้ง ผลออกมาเป็นค่าเฉลี่ย (ลองดูตัวอย่างในชีทที่ 2 ในไฟล์แนบครับว่าคำตอบตรงหรือไม่)
2. การเติมวันที่ให้เต็มตามรูปแบบที่แจ้งมา อาจใช้สูตรได้ ลองดูในไฟล์แนบ ชีทที่ 2 คอลัมน์ A ครับ
3. หากมีหลายๆ ชีท และข้อมูลมีถึง 12 ปี ซึ่งแต่ละวันมีข้อมูลประมาณ 20 records การใช้สูตรอาจจะไม่สะดวกยิ่งมีสูตรอาร์เรย์อย่างในชีทที่ 2 ยิ่งทำให้คำนวณช้ามากๆ อย่างไรก็ตาม ลองแนบตัวอย่างที่มีข้อมูลสัก 2-3 ชีทมาดูหน่อยได้ไหมครับ
You do not have the required permissions to view the files attached to this post.
somjeed
Member
Posts: 14 Joined: Thu Sep 03, 2015 3:04 pm
#3
Post
by somjeed » Thu Sep 03, 2015 4:05 pm
ขอบคุณมากค่ะ
คำตอบทั้งข้อ 1 และ 2 ถูกต้องแบบที่ต้องการค่ะ
เราสามารถ copy สูตรไปใช้ได้เลยหรือเปล่าคะ อยากให้มัน run ไปเองค่ะ ใน 1 sheet มีประมาณ 50,000 แถวค่ะ ทำเองไม่ไหว
ส่วนข้อ 3 มีแค่ 3 sheet ค่ะ แต่ sheet ละ 5 ปี (ประมาณ50000 แถวค่ะ)
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#4
Post
by DhitiBank » Thu Sep 03, 2015 4:13 pm
หากข้อมูลมีหลายแถวขนาดนั้น ขอแนะนำคร่าวๆ แบบนี้ครับ
1. หากต้องการผลลัพธ์สุดท้ายในชีทเดียวกัน ไม่ทราบว่าคัดลอกข้อมูลทั้ง 3 ชีทมารวมกันได้หรือไม่ครับ ให้เรียงต่อกันลงไปเลย
2. หากได้ พอเอาข้อมูลมาเรียงต่อกันแล้ว ก็เปลี่ยนวันที่ให้เป็นรูปแบบที่ต้องการก่อนโดยใช้สูตรครับ (ตัวอย่างในชีท 2 คอลัมน์ A) โดยใส่สูตรในคอลัมน์ว่างๆ สักคอลัมน์หนึ่ง
3. ได้วันที่รูปแบบที่ต้องการแล้ว ก็ให้คัดลอกแล้วมาวางเฉพาะ "ค่า" แทนที่วันที่เก่า
4. คัดลอกวันที่รูปแบบใหม่นี้ เอาไปวางในชีทใหม่ที่ต้องการแสดงผลเฉลี่ย แล้วใช้ฟังก์ชั่น remove duplicates ครับ อย่าใช้สูตร เพราะอาจรอ... แบบรอไปเถอะ เพราะข้อมูลเยอะมาก ไม่เหมาะกับสูตรอาร์เรย์ในการลิสต์ date unique ครับ
5. พอได้วันที่แบบไม่ซ้ำมาแล้ว ค่อยเอา sumif/countif ไปประยุกต์ใช้
ปล. หากเอามารวมกันไม่ได้ในข้อ 1 ก็ทำแยกแต่ละชีท เริ่มจากข้อ 2 เลยครับ แต่แนะนำคือ คัดลอกไฟล์ต้นฉบับไว้ด้วยก็ดีนะครับ เผื่อเกิดอุบัติเหตุ
--อ่อ ตกหล่น--
การเอาค่าซ้ำออกหรือ remove duplicates ก็ให้:
ลากคลุมช่วงข่อมูลที่ซ้ำ --> เมนู Data --> Remove duplicates
จะได้วันที่เดี่ยวๆ ที่ไม่ซ้ำครับ
Last edited by
DhitiBank on Thu Sep 03, 2015 4:59 pm, edited 1 time in total.
somjeed
Member
Posts: 14 Joined: Thu Sep 03, 2015 3:04 pm
#5
Post
by somjeed » Thu Sep 03, 2015 4:47 pm
ขอบคุณอีกครั้งค่ะ
จะลองทำดู แล้วจะมารายงานผลค่ะ
jelelite
Member
Posts: 40 Joined: Thu Aug 06, 2015 7:37 pm
#6
Post
by jelelite » Thu Sep 03, 2015 10:19 pm
จะหาค่าเฉลี่ยในแต่ละวันวันใช้สูตร
averageif(range,criteria,average range) ได้อีกสูตรครับ การใช้เหมือน sumif ครับ
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#7
Post
by DhitiBank » Thu Sep 03, 2015 11:42 pm
นั่นสิ จริงด้วย ขอบคุณมากครับ
ผมไม่เคยใช้มาก่อน