Page 1 of 1

คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 6:50 pm
by katai12
ต้องการได้สูตรคำนวณ โดยการลบจำนวนออกค่ะ คือ
ซื้อ 300 จะได้เพิ่ม 10
ซื้อ 400 จะได้เพิ่ม 15
ซื้อ 800 จะได้เพิ่ม 35
ซื้อ 1200 จะได้เพิ่ม 55
ถ้าซื้อ 2000 (1200+800) จะได้ 35+55
หรือถ้าซื้อ 1650 (1200+300) จะได้ 55+10 แบบนี้ค่ะ
รบกวนผู้รู้ช่วยสอนหน่อยค่ะ ขอบคุณค่ะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 7:13 pm
by snasui
:D ทำตารางดังกล่าวขึ้นมาก่อนแล้วค่อยนำไปใช้ทีหลัง

คอลัมน์แรกคือ ซื้อ คอลัมน์ถัดมาคือ ได้เพิ่ม แสดงรายการเรียงกันไปจนครบทุกเงื่อนไข ทำเสร็จแล้วแนบไฟล์มาอีกทีครับ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 7:21 pm
by katai12
แบบนี้ใช่มั้ยคะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 8:03 pm
by snasui
:D จากไฟล์ที่แนบมา

สมมุติค่าที่ต้องการตรวจสอบอยู่ที่ D1 ที่เซลล์ใด ๆ คีย์

=VLOOKUP(D1,$A$2:$B$5,2)

Enter จะได้คำตอบตามที่ต้องการครับ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 8:16 pm
by katai12
ไม่ใช่ค่ะ คำตอบจะได้เป็น 90 ค่ะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 10:30 pm
by snasui
:D ต้องเขียน 2000 และ 90 เพิ่มเข้ามาอีก 1 บรรทัดแล้วขยายช่วงเซลล์ในสูตรให้ครอบคลุมบรรทัดที่เพิ่มเข้ามาครับ

หรือไม่เช่นนั้นก็ต้องบอกวิธีคิดมาอย่างละเอียดว่าเพิ่มในอัตราเท่าใด

หาก D1 เป็น 1,000,000 คำตอบที่ต้องการจะได้เป็นเท่าไร คำนวณอย่างไรจึงได้ค่าเท่านั้นครับ :?:

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 11:31 pm
by katai12
วิธีคิดคือ
กรณีซื้อ 2000 ก็จะหักลบ 1200 ออก ซึ่งตรงนี้จะได้เพิ่ม 55 (B5)
ส่วนเศษที่เหลืออีก 800 ก็จะได้เพิ่ม อีก 35 (B4) รวมจะได้เพิ่มอีก 90
หรือถ้า ซื้อ 1900 วิธีคิดก็เช่นเดียวกัน คือ หักจำนวนมากสุดก่อน
1900-1200 ในส่วนของ 1200 จะได้เพิ่ม 55
ที่เหลือ 700-400 ในส่วนของ 400 จะได้เพิ่ม 15
ที่เหลืออกี 300 จะได้ 10 รวม ได้ 80 แบบนี้ค่ะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 11:37 pm
by snasui
:D เพื่อความเข้าใจที่เพิ่มขึ้น ถ้า D1 เป็น 500 มีวิธีคิดอย่างไรครับ :?:

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Sun May 15, 2016 11:57 pm
by katai12
ถ้า D1 = 500
ก็จะได้ Step 300 ค่ะ คือได้เพิ่ม 10
ส่วน เศษ 200 ปัดทิ้งค่ะ เพราะไม่ได้ตามเงื่อนไขที่กำหนดค่ะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Mon May 16, 2016 7:36 pm
by snasui
:D ค่อย ๆ ถามตอบกันไปนะครับ

ในไฟล์แนบมีซื้อ 400 และได้เพิ่ม 15

จากกรณีที่ D1 มีค่าเป็น 500 ทำไมไม่คิดที่ Step 400 แล้วเหลือเศษ 100 ปัดทิ้งครับ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Mon May 16, 2016 9:36 pm
by katai12
อ้อค่ะ ใช่ค่ะ เป็น step 400 แล้วปัดเศษ 100 ทิ้งค่ะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Tue May 17, 2016 6:52 am
by snasui
:D ตัวอย่างสูตรครับ

เซลล์ 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 หมายถึง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Tue May 17, 2016 9:45 am
by katai12
copy สูตรไปวางแล้ว แต่คำตอบยังเป็น 55 อยู่เลยค่ะ คือ ถ้าซื้อ 2000 คำตอบตรง E2 จะต้องแสดง 90
แล้วลองคีย์จำนวนอื่นลงไป ก็จะได้คำตอบสูงสุดแค่ 55 ค่ะ ซึ่งจริง ๆ จะต้องคำนวณไปเรื่อย ๆ ค่ะ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Tue May 17, 2016 12:57 pm
by logic
ที่ไม่ได้เพราะว่าไม่ได้ทำตามที่อาจารย์แจ้งไว้ใน note คุณลองอ่านอย่างละเอียดและทำตามนั้นครับ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Wed May 18, 2016 7:24 am
by katai12
อ๋อ ค่ะ ขอบคุณค่ะ
แต่พอทำตามแล้ว ทำไม 1500 ยังได้ แค่ 55 คะ
(ขอโทษนะคะ ที่ถามเยอะ เพราะไม่ค่อยเป็น excel ค่ะ)

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Wed May 18, 2016 7:23 pm
by snasui
:D การคำนวณลักษณะนั้นต้องใช้ VBA เพราะต้อง Loop หาค่าไปเรื่อย ๆ ที่อาจจะเป็นลำดับหรือไม่เป็นลำดับ ลองเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ

Re: คำนวณแบบหักลบค่ะ (ไม่รู้เรียกถูกหรือเปล่า)

Posted: Wed May 18, 2016 9:27 pm
by katai12
ทำไม่เป็นค่ะ สูตร excel ก็ได้นิด ๆ หน่อย ๆ ค่ะ VBA ไม่รู้จักเลยค่ะ :flw: