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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#1
Post
by katai12 » Sun May 15, 2016 6:50 pm
ต้องการได้สูตรคำนวณ โดยการลบจำนวนออกค่ะ คือ
ซื้อ 300 จะได้เพิ่ม 10
ซื้อ 400 จะได้เพิ่ม 15
ซื้อ 800 จะได้เพิ่ม 35
ซื้อ 1200 จะได้เพิ่ม 55
ถ้าซื้อ 2000 (1200+800) จะได้ 35+55
หรือถ้าซื้อ 1650 (1200+300) จะได้ 55+10 แบบนี้ค่ะ
รบกวนผู้รู้ช่วยสอนหน่อยค่ะ ขอบคุณค่ะ
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Sun May 15, 2016 7:13 pm
ทำตารางดังกล่าวขึ้นมาก่อนแล้วค่อยนำไปใช้ทีหลัง
คอลัมน์แรกคือ ซื้อ คอลัมน์ถัดมาคือ ได้เพิ่ม แสดงรายการเรียงกันไปจนครบทุกเงื่อนไข ทำเสร็จแล้วแนบไฟล์มาอีกทีครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#3
Post
by katai12 » Sun May 15, 2016 7:21 pm
แบบนี้ใช่มั้ยคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Sun May 15, 2016 8:03 pm
จากไฟล์ที่แนบมา
สมมุติค่าที่ต้องการตรวจสอบอยู่ที่ D1 ที่เซลล์ใด ๆ คีย์
=VLOOKUP(D1,$A$2:$B$5,2)
Enter จะได้คำตอบตามที่ต้องการครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#5
Post
by katai12 » Sun May 15, 2016 8:16 pm
ไม่ใช่ค่ะ คำตอบจะได้เป็น 90 ค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Sun May 15, 2016 10:30 pm
ต้องเขียน 2000 และ 90 เพิ่มเข้ามาอีก 1 บรรทัดแล้วขยายช่วงเซลล์ในสูตรให้ครอบคลุมบรรทัดที่เพิ่มเข้ามาครับ
หรือไม่เช่นนั้นก็ต้องบอกวิธีคิดมาอย่างละเอียดว่าเพิ่มในอัตราเท่าใด
หาก D1 เป็น 1,000,000 คำตอบที่ต้องการจะได้เป็นเท่าไร คำนวณอย่างไรจึงได้ค่าเท่านั้นครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#7
Post
by katai12 » Sun May 15, 2016 11:31 pm
วิธีคิดคือ
กรณีซื้อ 2000 ก็จะหักลบ 1200 ออก ซึ่งตรงนี้จะได้เพิ่ม 55 (B5)
ส่วนเศษที่เหลืออีก 800 ก็จะได้เพิ่ม อีก 35 (B4) รวมจะได้เพิ่มอีก 90
หรือถ้า ซื้อ 1900 วิธีคิดก็เช่นเดียวกัน คือ หักจำนวนมากสุดก่อน
1900-1200 ในส่วนของ 1200 จะได้เพิ่ม 55
ที่เหลือ 700-400 ในส่วนของ 400 จะได้เพิ่ม 15
ที่เหลืออกี 300 จะได้ 10 รวม ได้ 80 แบบนี้ค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Sun May 15, 2016 11:37 pm
เพื่อความเข้าใจที่เพิ่มขึ้น ถ้า D1 เป็น 500 มีวิธีคิดอย่างไรครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#9
Post
by katai12 » Sun May 15, 2016 11:57 pm
ถ้า D1 = 500
ก็จะได้ Step 300 ค่ะ คือได้เพิ่ม 10
ส่วน เศษ 200 ปัดทิ้งค่ะ เพราะไม่ได้ตามเงื่อนไขที่กำหนดค่ะ
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Mon May 16, 2016 7:36 pm
ค่อย ๆ ถามตอบกันไปนะครับ
ในไฟล์แนบมีซื้อ 400 และได้เพิ่ม 15
จากกรณีที่ D1 มีค่าเป็น 500 ทำไมไม่คิดที่ Step 400 แล้วเหลือเศษ 100 ปัดทิ้งครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#11
Post
by katai12 » Mon May 16, 2016 9:36 pm
อ้อค่ะ ใช่ค่ะ เป็น step 400 แล้วปัดเศษ 100 ทิ้งค่ะ
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Tue May 17, 2016 6:52 am
ตัวอย่างสูตรครับ
เซลล์ E2 คีย์
=LOOKUP(9.9999999999999E+307,CHOOSE({1,2},VLOOKUP($D$1,$A$2:$B$5,2),SUM(OFFSET(B5,0,0,-MATCH($D$1,SUBTOTAL(9,OFFSET(A5,0,0,-(ROW($A$2:$A$5)-ROW($B$2)+1))))))))
Ctrl+Shift+Enter
! Note: Ctrl+Shift+Enter หมายถึง
กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น { =YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#13
Post
by katai12 » Tue May 17, 2016 9:45 am
copy สูตรไปวางแล้ว แต่คำตอบยังเป็น 55 อยู่เลยค่ะ คือ ถ้าซื้อ 2000 คำตอบตรง E2 จะต้องแสดง 90
แล้วลองคีย์จำนวนอื่นลงไป ก็จะได้คำตอบสูงสุดแค่ 55 ค่ะ ซึ่งจริง ๆ จะต้องคำนวณไปเรื่อย ๆ ค่ะ
You do not have the required permissions to view the files attached to this post.
logic
Gold
Posts: 1511 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#14
Post
by logic » Tue May 17, 2016 12:57 pm
ที่ไม่ได้เพราะว่าไม่ได้ทำตามที่อาจารย์แจ้งไว้ใน note คุณลองอ่านอย่างละเอียดและทำตามนั้นครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#15
Post
by katai12 » Wed May 18, 2016 7:24 am
อ๋อ ค่ะ ขอบคุณค่ะ
แต่พอทำตามแล้ว ทำไม 1500 ยังได้ แค่ 55 คะ
(ขอโทษนะคะ ที่ถามเยอะ เพราะไม่ค่อยเป็น excel ค่ะ)
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31258 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Wed May 18, 2016 7:23 pm
การคำนวณลักษณะนั้นต้องใช้ VBA เพราะต้อง Loop หาค่าไปเรื่อย ๆ ที่อาจจะเป็นลำดับหรือไม่เป็นลำดับ ลองเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
katai12
Member
Posts: 105 Joined: Sun May 15, 2016 6:22 pm
#17
Post
by katai12 » Wed May 18, 2016 9:27 pm
ทำไม่เป็นค่ะ สูตร excel ก็ได้นิด ๆ หน่อย ๆ ค่ะ VBA ไม่รู้จักเลยค่ะ