snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
apichart2007
Member
Posts: 42 Joined: Mon Jan 25, 2010 9:11 am
#1
Post
by apichart2007 » Wed Feb 03, 2010 5:06 pm
ต้องการรายชื่อผู้ที่ขอซื้อผลไม้เงินเชื่อของเราไป…….ถ้าเราจะทำการค้นหาในSheet2 เราต้องใช้สูตรอะไรบ้างและอย่างไรดีครับ?
หน้าตาผลลัพท์ที่อยู่ในSheet3ที่เราอยากจะได้และสามารถปริ้นออกมาได้ด้วย
หมายเหตุ : ตัวหนังสือสีดำและตารางคือเสมือนแบบฟอร์มมาตรฐาน (สั่งพิมพ์ทุกครั้งหน้าตาจะเหมือนเดิม)….ส่วนตัวสีน้ำเงินให้ขึ้นอยู่กับจะมีผู้ที่มีการซื้อเงินเชื่อในแต่ละครั้ง
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30919 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Wed Feb 03, 2010 5:13 pm
ขอถามเพิ่มเติมครับ ว่า จะทราบไ้ด้จากคอลัมน์ไหนครับว่าลูกค้ารายใดซื้อเป็นเงินเชื่อ
apichart2007
Member
Posts: 42 Joined: Mon Jan 25, 2010 9:11 am
#3
Post
by apichart2007 » Mon Feb 08, 2010 10:28 am
Buyer (Debtor) Column I
Buy Date Column H
Buy q'ty Column J
จะเห็นได้จากฐานข้อมูลว่า Mr.X ซื้อเมื่อวันที่ 2 ก.พ.
Mr.Y ซื้อ2ครั้งคือเมื่อวันที่10 ม.ค.และ 15 ก.พ.
ส่วน Mr.Z ซื้อเมื่อวันที่ 25 ม.ค.2553 ครับ
snasui
Site Admin
Posts: 30919 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#4
Post
by snasui » Mon Feb 08, 2010 10:45 am
apichart2007 wrote: Buyer (Debtor) Column I
Buy Date Column H
Buy q'ty Column J
จะเห็นได้จากฐานข้อมูลว่า Mr.X ซื้อเมื่อวันที่ 2 ก.พ.
Mr.Y ซื้อ2ครั้งคือเมื่อวันที่10 ม.ค.และ 15 ก.พ.
ส่วน Mr.Z ซื้อเมื่อวันที่ 25 ม.ค.2553 ครับ
งั้นถามใหม่ ตารางนี้ไม่รวมซื้อสดใช่ไหมครับ คือซื้อเชื่ออย่างเดียวเท่าันั้น
snasui
Site Admin
Posts: 30919 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Mon Feb 08, 2010 11:24 am
เนื่องจากความต้องการคือ ต้องการให้เรียงรายลูกค้าก่อน การทำเช่นนี้หากต้องการทำด้วยสูตร ผมแสดงตัวอย่างไว้ให้แล้วในคอลัมน์ K ของ Sheet1 ครับ
สำหรับตารางสรุปข้อมูลอยู่ที่ Sheet3 ซึ่งมีการนับข้อมูลก่อนว่าเจอข้อมูลจำนวนเท่าไร ที่เซลล์ J3 ของ Sheet3 เพื่อจะใช้กำหนดค่าในสูตร IF ว่าถ้าลากสูตรเป็นจำนวนบรรทัดที่เกินกว่าจำนวนลูกค้าจะแสดงค่าว่า่ง
เช่นกรณีนี้หากลากสูตรไป 10 บรรทัดก็จะแสดงค่าให้เห็นแค่ 4 บรรทัด เพราะมีลูกค้าแค่ 4 ราย
สำหรับสูตรการแสดงค่าในตารางตามที่ต้องการนั้น เป็นการใช้ Index ร่วมกับ Match ครับ
ดูตัวอย่างตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
apichart2007
Member
Posts: 42 Joined: Mon Jan 25, 2010 9:11 am
#7
Post
by apichart2007 » Thu Feb 18, 2010 4:02 pm
ขอความกรุณาอธิบายสูตรนี้หน่อยครับ
และกฎการใช้ของแต่ละฟังชั่นด้วยครับ?
ที่เซลล์ K4ใช้สูตร=IF(I4="","",SUMPRODUCT(--(I4>$I$4:$I$9))+COUNTIF($I$4:I4,I4)-COUNTBLANK($I$4:$I$9))
ที่เซลล์ K5ใช้สูตร =IF(I5="","",SUMPRODUCT(--(I5>$I$4:$I$9))+COUNTIF($I$4:I5,I5)-COUNTBLANK($I$4:$I$9))
ขอบคุณครับ
อภิชาติ
snasui
Site Admin
Posts: 30919 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Thu Feb 18, 2010 5:27 pm
จากสูตร
=IF(I5="","",SUMPRODUCT(--(I5>$I$4:$I$9))+COUNTIF($I$4:I5,I5)-COUNTBLANK($I$4:$I$9))
หมายความว่า หาก I5 เป็นค่าว่าง ๆ ก็ให้แสดงค่าว่าง หากไม่เป็นค่าว่างก็ให้แสดงผลจากสูตร SUMPRODUCT(--(I5>$I$4:$I$9))+COUNTIF($I$4:I5,I5)-COUNTBLANK($I$4:$I$9)
การแกะสูตร สามารถลากเมาส์คลุมส่วนประกอบสูตรแล้วกดแป้น F9 โปรแกรมจะแสดงผลลัพธ์ให้เห็น หรือหากอยากทราบทั้งสูตรก็คลุมทั้งสูตรแล้วกดแป้น F9
ตัวอย่างการแกะสูตร
SUMPRODUCT(--(I5>$I$4:$I$9))
เป็นการตรวจสอบว่า ค่า I5 มากกว่า $I$4:$I$9 หรือไม่ ถ้ามากกว่าจะให้ผลลัพธ์เป็น True ถ้าไม่มากกว่าจะให้ผลลัพธ์เป็น False
การเทียบตามด้านบนจะเห็นว่าเป็นการนำเซลล์เดี่ยวเทียบกับช่วงข้อมูล ซึ่งจะเป็นการเทียบแบบตัวต่อตัว ได้แก่
I5>I4
I5>I5
I5>I6
I5>I7
I5>I8
I5>I9
การแกะสูตรสามารถใช้เมาส์คลุม I5>$I$5:$I$9 แล้วกดแป้น F9 เพื่อดูผลลัพธ็การเปรียบเทียบ จะได้ SUMPRODUCT(--({TRUE;FALSE;FALSE;FALSE;TRUE;FALSE}))
เครื่องหมาย -- จะแปลง True เป็น 1 แปลง False เป็น 0
การแกะสูตรสามารถลากเมาส์คลุม --({TRUE;FALSE;FALSE;FALSE;TRUE;FALSE}) แล้วกดแป้น F9 จะได้ SUMPRODUCT({1;0;0;0;1;0})
ฟังก์ชั่น Sumproduct จะนำส่วนประกอบมารวมกันนั่นคือ 1+0+0+0+1+0 ผลลัพธ์คือ 2
การใช้ Sumproduct ลักษณะนี้เป็นการประยุกต์ใช้ สำหรับการใช้ตามปกติดูได้จาก Link ที่ยกมาด้านล่าง
Countif และ Countblank ไม่ได้ซับซ้อนแต่อย่างไร ดูการใช้งานตาม Link ด้านล่าง
ลองศึกษาการทำงานจากสูตรที่ K9 ใน Worksheet ที่ทำมาเป็นตัวอย่างดูครับ จะค่อนข้างเห็นภาพชัด ต้องค่อย ๆ ทำความเข้าใจ
ไวยากรณ์แต่ละฟังก์ชั่นและตัวอย่างการใช้งานดูได้จากที่นี่ครับ
Countblank https://support.microsoft.com/th-th/off ... af6bd3ac22
If https://support.microsoft.com/th-th/off ... 8bbff73be2
Sumproduct https://support.microsoft.com/th-th/off ... 2145a2fd2e
Sumif https://support.microsoft.com/th-th/off ... 97a653039b
หากติดตรงไหนถามเพิ่มได้ครับ