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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
น้องใหม่
Member
Posts: 11 Joined: Fri Jan 18, 2013 1:31 pm
#21
Post
by น้องใหม่ » Sat Jan 19, 2013 4:48 pm
สูตรนี้จะได้ผลกว่าคะที่ N2 คีย์ =IF(SUM(IF($A$2:$A$1000=A2,IF($C$2:$C$1000=C2,MAX($E$1:E1)+1)))=1,M2,"จบ") กด Ctrl+Shift+Enter คัดลอกลงมา
แต่จะมีที่ว่าคะว่าถ้ารายการตั้งหนี้วันมารับบริการ HN NAME กันหลายรายการจะทำไม่ได้คะ
อย่างงั้นถามต่อเลยคะว่าเราจะใช้สูตรไหนง่ายที่สุดที่จะรวมให้เป็นหนึ่งเดียวได้รบกวนนะคะ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#22
Post
by bank9597 » Sat Jan 19, 2013 8:03 pm
ดังที่ผมตอบไปแล้วครับ ในกรณีที่เกิดการซ้ำขึ้นมา สูตรที่ให้ไปก้จะไม่สามารถใช้ได้ครับ
วิธีเดียวคือ ดึงข้อมูลมาดูเป็นรายคน และเปรียบเทียบเอาเองว่ารายการไหนเป็นของรายการไหน
อีกวิธีคือ จัดเก็บข้อมูลใหม่ให้มีรหัสตั้งหนี้และเรียกเก็บ เป็นอันเดียวกัน เช่น
101 จำนวนเงิน 500 ตั้งหนี้
101 จำนวนเงิน 500 เรียกเก็บ
แบบนี้จะไม่มีปัญหาครับ
แต่ข้อมูลที่คุณแนบมานั้นไม่สามารถที่ทำตามที่ถามมาได้ครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#23
Post
by bank9597 » Sat Jan 19, 2013 8:26 pm
ผมลองทำตัวอย่างการดึงข้อมูลมาแสดงให้ดูครับ ลองดูว่าใช้ได้หรือไม่
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#24
Post
by snasui » Sun Jan 20, 2013 7:35 am
น้องใหม่ wrote: อยากทราบว่าถ้าข้อมูลมีมากเป็นแสนแถวจะทำได้หรือเปล่าค่ะแล้วจะทำให้เร็วจะทำยังไงค่ะพอดีหัวหน้าฝากถามอีกทีค่ะ
ข้อมูลเป็นแสนแถวไม่ควรใช้สูตร Array ครับ
ลองดูอีกวิธีตามนี้
เซลล์ M1 คีย์คำว่า Balance เพื่อเป็นหัว Field
เซลล์ M2 คีย์สูตร
=SUMIFS(F:F,A:A,A2,C:C,C2)-SUMIFS(G:G,A:A,A2,C:C,C2)
Enter > Copy ลงด้านล่าง
สูตรใน M2 ความหมายคือ เป็นการนำคอลัมน์ F หักด้วยคอลัมน์ G โดยมี 2 เงื่อนไขคือ คอลัมน์ A มีค่าเท่ากับค่าใน A2 และคอลัมน์ C มีค่าเท่ากับ C2
ผลลัพธ์ที่ได้
หากเป็น 0 หมายความว่ามีการตั้งหนี้และเรียกเก็บหมดทั้งจำนวนแล้ว
หากมากกว่า 0 หมายความว่ามีการตั้งหนี้ไม่ได้เรียกเก็บ หรือ ตั้งหนี้แล้วเรียกเก็บไม่หมด
หากน้อยกว่า 0 หมายความว่าไม่มีการตั้งหนี้แต่เรียกเก็บ หรือ เรียกเก็บมากกว่าที่ตั้งหนี้ไว้
ทำการ Filter ดูค่าที่มากกว่า 0 น้อยกว่า 0 หรือ เท่ากับ 0 ได้ตามต้องการ
joo
Gold
Posts: 1213 Joined: Sat Apr 17, 2010 3:50 pm
#25
Post
by joo » Sun Jan 20, 2013 7:48 am
snasui wrote:
=SUMIFS(F:F,A:A,A2,C:C,C2)-SUMIFS(G:G,A:A,A2,C:C,C2)
Enter > Copy ลงด้านล่าง
จากสูตรของอาจารย์ถ้าเป็น Excel 2003 ต้องปรับสูตรอย่างไรครับ
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#26
Post
by snasui » Sun Jan 20, 2013 8:05 am
นำสองคำลัมน์มาเชื่อมกันก่อนคือ A และ C แล้วค่อยใช้
Sumif ในลักษณะเดียวกันนี้ครับ
joo
Gold
Posts: 1213 Joined: Sat Apr 17, 2010 3:50 pm
#27
Post
by joo » Sun Jan 20, 2013 9:22 am
snasui wrote: นำสองคำลัมน์มาเชื่อมกันก่อนคือ A และ C แล้วค่อยใช้
Sumif ในลักษณะเดียวกันนี้ครับ
ที่คอลัมภ์ N ผมเชื่อมคอลัมน์แบบนี้ =A&C แล้วเขียนสูตรที่คอลัมน์ O แบบนี้ =SUMIF(N:N,N2,F:F)-SUMIF(N:N,N2,G:G) ถูกต้องไหมครับ
joo
Gold
Posts: 1213 Joined: Sat Apr 17, 2010 3:50 pm
#28
Post
by joo » Sun Jan 20, 2013 11:55 am
joo wrote: ที่คอลัมภ์ N ผมเชื่อมคอลัมน์แบบนี้ =A&C
แก้ไขครับพิมพ์ผิดไปหน่อยทำการแทรกเพิ่มมา 2 คอลัมน์ ที่ N2 ปรับเป็น =A2&C2 ที่ O2 คีย์ =SUMIF(N:N,N2,F:F)-SUMIF(N:N,N2,G:G)
ทดสอบกับเครื่องที่ลง Excel2007 ได้ค่าเท่ากัน ขอบคุณอาจารย์มากครับสำหรับคำแนะนำการประยุกต์ใช้กับ Excel 2003