:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบน

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบน

#1

Post by nutpochan »

ถ้ามีสินค้า 2 ชนิด สูตรช่อง P12 ไม่ยากแต่ถ้าเปลี่ยนเป็น 4 ชนิด ขออยากทราบสูตรหน่อยครับให้บรรทัดข้างพายสับปะรดมาแทนพายครีมถ้าพายครีมมีจำนวนเป็นศูนย์ครับ

ขอเดิมผมใช้ =IF(Z2>0,Z2,(IF(Z2=0,AA2)))
กับ =IF(AA2=0,0,(IF(Z2>0,AA2,0)))

ถ้ามีเพิ่มมาเป็น 4 ชผนิด เราจะเขียนสูตรว่าอย่างไรดีครับ
You do not have the required permissions to view the files attached to this post.
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#2

Post by nutpochan »

=IF(AND(Z2>0,AA2=0,AB2=0,AC2=0),Z2,IF(AND(Z2=0,AA2>0,AB2=0,AC2=0),AA2,IF(AND(Z2=0,AA2=0,AB2>0,AC2=0),AB2,IF(AND(Z2=0,AA2=0,AB2=0,AC2>0),AC2,IF(AND(Z2>0,AA2>0,AB2=0,AC2=0),z2,IF(AND(Z2=0,AA2>0,AB2>0,AC2=0),AA2,IF(AND(Z2=0,AA2=0,AB2>0,AC2>0),AB2,IF(AND(Z2>0,AA2>0,AB2>0,AC2=0),z2,IF(AND(Z2=0,AA2>0,AB2>0,AC2>0),AA2,IF(AND(Z2>0,AA2>0,AB2>0,AC2>0),z2,0))))))))

เคยใช้สูตรนี้ในช่อง P12 แต่มีข้อความออกมาว่า สูตรแสดงไม่ได้เพราะใช้สูตรซ้อนกันมากเกินไป เราจะแก้อย่างไรดีครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#3

Post by snasui »

:D ให้อธิบายเงื่อนไขในการแสดงข้อมูลแทนการเขียนมาเป็นสูตร เซลล์ใดต้องการให้เป็นค่าเท่าใด ด้วยเงื่อนไขใด ช่วยแจ้งมาทั้งหมดไม่ว่าจะกี่เงื่อนไขก็ตามครับ
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#4

Post by nutpochan »

เงือนไขมีดังต่อไปนี้ครับ
1. เงื่อนไขในช่อง E12 คือ
ถ้าช่อง Z2>0 และAA2=0 และ AB2=0 และ AC2=0 ช่อง E12 จะแสดง Z2
ถ้าช่อง Z2=0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E12 จะแสดง AA2
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2=0 ช่อง E12 จะแสดง AB2
ถ้าช่อง Z2=0 และ AA2=0 และ AB2=0 และ AC2>0 ช่อง E12 จะแสดง AC2
ถ้าช่อง Z2>0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E12 จะแสดง z2
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E12 จะแสดง AA2
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2>0 ช่อง E12 จะแสดง AB2
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E12 จะแสดง z2
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E12 จะแสดง AA2
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E12 จะแสดง z2

2.เงื่อนไขในช่อง E13 คือ
ถ้าช่อง Z2>0 และAA2=0 และ AB2=0 และ AC2=0 ช่อง E13 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E13 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2=0 ช่อง E13 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2=0 และ AC2>0 ช่อง E13 จะแสดง 0
ถ้าช่อง Z2>0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E13 จะแสดง AA2
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E13 จะแสดง AB2
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2>0 ช่อง E13 จะแสดง AC2
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E13 จะแสดง AA2
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E13 จะแสดง AB2
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E13 จะแสดง AA2

3.เงื่อนไนในช่อง E14 คือ
ถ้าช่อง Z2>0 และAA2=0 และ AB2=0 และ AC2=0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2=0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2=0 และ AC2>0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2>0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2>0 ช่อง E14 จะแสดง 0
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E14 จะแสดง AB2
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E14 จะแสดง AC2
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E14 จะแสดง zB2

4.เงื่อนไขในช่อง E15 คือ
ถ้าช่อง Z2>0 และAA2=0 และ AB2=0 และ AC2=0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2=0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2=0 และ AC2>0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2>0 และ AA2>0 และ AB2=0 และ AC2=0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2=0 และ AB2>0 และ AC2>0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2=0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2=0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E15 จะแสดง 0
ถ้าช่อง Z2>0 และ AA2>0 และ AB2>0 และ AC2>0 ช่อง E15 จะแสดง AC2

เงื่อนไขอาจยาวแต่นาจะมีสูตรอื่นที่ง่ายกว่านี้ครับ คอนเสปเดิมคือ ช่องผต้องเลื่อนมาที่ E12 เสมอถ้าจำนวนสินค้าไม่ครบ 4ชนิด
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#5

Post by snasui »

:D เงื่อนไขมีจำนวนมาก ให้เขียนด้วย VBA แทน

สำหรับ VBA ลองเขียนมาเองก่อน ติดตรงไหนแล้วค่อยถามกันต่อครับ
User avatar
tupthai
Bronze
Bronze
Posts: 302
Joined: Sat Feb 04, 2012 2:49 pm

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#6

Post by tupthai »

:D ถ้าผมเข้าใจถูก
มีขนมอยู่ 4 ชนิด ถ้าลูกค้าไม่ได้สั่งก็คือจำนวนเท่ากับ 0 ไม่ต้องเอามาแสดง
1.หาชื่อขนม ที่B12 พิมพ์สูตร
=IFERROR(INDEX($Z$1:$AC$1,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"")
เป็นสูตร array กด Ctrl+Shift+Enterแล้ว copy ลงด้านล่าง
2.หาจำนวน ที่P12 พิมพ์สูตร
=IFERROR(INDEX($Z$2:$AC$2,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"")
เป็นสูตร array กด Ctrl+Shift+Enterแล้ว copy ลงด้านล่าง
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#7

Post by nutpochan »

มีขนมอยู่ 4 ชนิด ถ้าลูกค้าไม่ได้สั่งก็คือจำนวนเท่ากับ 0 ไม่ต้องเอามาแสดง
1.หาชื่อขนม ที่B12 พิมพ์สูตร
=IFERROR(INDEX($Z$1:$AC$1,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"")
เป็นสูตร array กด Ctrl+Shift+Enterแล้ว copy ลงด้านล่าง
2.หาจำนวน ที่P12 พิมพ์สูตร
=IFERROR(INDEX($Z$2:$AC$2,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"")
เป็นสูตร array กด Ctrl+Shift+Enterแล้ว copy ลงด้านล่าง


หมายถึง copy =IFERROR(INDEX($Z$1:$AC$1,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"") ไปก่อน เอาไว้วาง B12 แล้วกด Ctrl+Shift+Enter ใช่ไหมครับ

หรือว่า ไปกด Ctrl+Shift+Enter ที่ B12 ก่อนจึงค่อยวางสูตร =IFERROR(INDEX($Z$1:$AC$1,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"")
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#8

Post by nutpochan »

:| :| :| :| :| :| :| :|

:cry: :cry: :cry: :cry: :cry: :cry: :cry:

งานผมไม่เสร็จแน่เลย เจ้านายเร่งใช้สิ้นเดือนนี้ด้วยหงิ พี่ๆช่วยผมหน่อยยย
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#9

Post by snasui »

:shock: ถ้าเจ้านายเร่งมาก บอกให้มาถามเอง การตอบปัญหาขึ้นกับความสะดวกของผู้ตอบ ไม่สามารถเร่งหรือขอคำตอบด่วน ซึ่งเสมอภาคกันสำหรับสมาชิกทุกคนครับ

ตามที่ผมเข้าใจผมตอบไปแล้ว ผมเห็นว่าเงื่อนไขมีจำนวนมาก ไม่เหมาะกับการเขียนสูตร ให้เขียนมาเป็น VBA แทน ติดแล้วค่อยถามกันต่อ
หมายถึง copy =IFERROR(INDEX($Z$1:$AC$1,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"") ไปก่อน เอาไว้วาง B12 แล้วกด Ctrl+Shift+Enter ใช่ไหมครับ
ให้ Copy สูตรไปวางใน B12 แล้วกดแป้น F2 เพื่อทำการ Edit Cell แล้วกดแป้น Ctrl+Shift ค้างไว้แล้วตามด้าย Enter เพื่อสร้างเป็นสูตร Array ครับ
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#10

Post by nutpochan »

ได้แล้วครับ สูตร

=IFERROR(INDEX($Z$1:$AC$1,SMALL(IF($Z$2:$AC$2>0,{1,2,3,4}),ROW()-11)),"")

ใช้ได้จริงๆ ด้วย ขอบคุณ tupthai กับอาจารย์มากๆครับ ถ้าไม่ได้คนช่วยผมคงงมเข็มอีกนาน
nutpochan
Member
Member
Posts: 99
Joined: Mon Mar 03, 2014 8:24 am

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#11

Post by nutpochan »

ผมก็พยายามใช้สูตร if ทำเรื่องยากตั้งนาน เจอสูตรนี้นสูตรเดียวจอดเลย ความรู้excell ไม่มีที่สิ้นสุดจริงๆ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามเรื่องสูตรที่ทำให้บรรทัดเลื่อนขึ้นมาแทนบรรทัดข้างบ

#12

Post by snasui »

nutpochan wrote:ผมก็พยายามใช้สูตร if ทำเรื่องยากตั้งนาน เจอสูตรนี้นสูตรเดียวจอดเลย ความรู้excell ไม่มีที่สิ้นสุดจริงๆ
:D จากสูตรในเซลล์ B12 ที่คุณ tubthai เขียนมา หากแสดงผลได้ตรงกับที่ต้องการ ตัวอย่างคำอธิบายโจทย์นี้ควรเขียนว่า

ให้นำค่าใน Z1:AC1 มาเรียงต่อกันลงไปด้านล่างที่เซลล์ B12 เป็นต้นไป โดยมีเงื่อนไขว่า Z2:AC2 ต้องมีค่ามากกว่า 0
Post Reply