: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

ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#1

Post by phutta »

สร้างเอกสารเพื่อทำใบกำกับภาษีโดยมีเพื่อปริ๊นผ่านกระดาษที่มีฟอร์ม โดยการดึงข้อมูลออกมาทีละหน้า และปริ๊น ซึ่งหน้าสุดท้ายอาจมีจำนวนแถวที่น้อยกว่าทุกหน้า ถ้าใช้ Vlookup จะทำให้เกิด Error แถวที่ไม่มีข้อมูล และหน้าสุดท้ายมีการ Sum ข้อมูล
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#2

Post by snasui »

:D ทำตามด้านล่างครับ
  1. เซลล์ B13 คีย์
    =IF(INDEX(PACKING!B$2:B$2000,9*(START-1)+(ROWS(B$13:B13)))="","",INDEX(PACKING!B$2:B$2000,9*(START-1)+(ROWS(B$13:B13))))
    Enter > Copy ลงด้านล่างและ Copy ไปใช้กับ Column อืน ๆ ตามต้องการ
  2. เซลล์ I23 คีย์
    =IF(TOTAL=START,SUM(PACKING!F:F),"")
    Enter > ปรับใช้กับ I24:I25
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#3

Post by phutta »

ขอบคุณคะ วิธีนี้จะเป็นการทำทีละหน้าและปริ๊นใช่ไหมคะ แต่ถ้าเราอยากเขียนโดยให้มันอ้างอิง กับคอลัมน์ที่สามารถกำหนดได้เลยว่าต้องการปริ๊นหน้าที่เท่าไร จะต้องเขียน VBA ใช่ไหมคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#4

Post by snasui »

:D ที่เขียนเป็นสูตรด้านบนเลือกหน้าที่ต้องการจะ Print ได้อยู่แล้วไม่ทราบว่าต้องการคำตอบเป็นเช่นไร สำหรับการเขียน VBA เป็นการทำให้เป็นอัตโนมัติหรือเป็นลักษณะการคำนวณแบบซับซ้อนเป็น Loop เช่นนี้เป็นต้น หากแค่ดึงข้อมูลมาจากตำแหน่งใด ๆ ด้วยจำนวนเท่านั้นเท่านี้รายการ สามารถใช้สูตรจัดการได้ครับ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#5

Post by phutta »

เข้าใจแล้วคะ ตอนแรกยังไม่เข้าใจว่ามันเกี่ยวกับการเลือกหน้ายังไง แต่เมื่อลองแก้ไขตัวเลข M4 ข้อมูลก็ถูกเปลี่ยนไป ขอบคุณมากคะ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#6

Post by phutta »

แล้วเราจะรู้ได้ยังไงค่ะ ว่าหน้าสุดท้ายคือหน้าที่เท่าไร เพื่อจะได้กำหนดหน้า Finish ได้คะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#7

Post by snasui »

:D จากตัวอย่างนี้ต้องการดึงมาหน้าละ 9 รายการ หากต้องการจะทราบว่าหน้าสุดท้ายเป็นเท่าใดให้นำรายการทั้งหมดหารด้วย 9 ก็จะได้จำนวนหน้า อย่าลืมบวกด้วยเศษจากการหารด้วย 9 เพิ่มเข้าไปอีก 1 หน้าครับ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#8

Post by phutta »

ขอบคุณคะ เป็นสิ่งที่คิดไม่ถึงจริงๆคะ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#9

Post by phutta »

เมื่อลอง copy จริง Data จริงมาวางไว้ใน Sheet Packing และใช้วิธีคำนวณหน้ากระดาษโดยใช้สูตร =INT(COUNT(PACKING!$A$6:$A$2000)/9) ทำไมถึง = 0 คะ แต่ลองเปลี่ยนไป count คอลัมน์ที่เป็นตัวเลข ค่าก็จะขึ้น
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#10

Post by DhitiBank »

เป็นเพราะสูตร INT ครับ

การนับจำนวนหน้าในกรณีที่มีเศษเหลือ (คือไม่เต็มหน้า) จะต้องปัดเพิ่มเป็น 1 หน้า แต่สูตร INT จะปัดเศษทิ้ง นั่นทำให้เมื่อข้อมูลมีไม่เต็มหน้า เช่น มี 1-8 items ก็จะได้ 0 หน้าครับ ดังนั้น อาจปรับสูตรเป็นอย่างอื่นเพื่อให้ปัดเศษขึ้น เช่น
=Roundup(Count(...)/9,0)
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#12

Post by phutta »

snasui wrote::D ทำตามด้านล่างครับ
  1. เซลล์ B13 คีย์
    =IF(INDEX(PACKING!B$2:B$2000,9*(START-1)+(ROWS(B$13:B13)))="","",INDEX(PACKING!B$2:B$2000,9*(START-1)+(ROWS(B$13:B13))))
    Enter > Copy ลงด้านล่างและ Copy ไปใช้กับ Column อืน ๆ ตามต้องการ
  2. เซลล์ I23 คีย์
    =IF(TOTAL=START,SUM(PACKING!F:F),"")
    Enter > ปรับใช้กับ I24:I25
ได้ทำตามสูตรนี้แล้ว และสามารถใช้งานได้ดีคะ แต่มีปัญหาตรงที่ผู้ใช้งานได้ลบบันทัดที่ 1 ในหน้า Packing ออกทำให้สูตรเลื่อนตาม เป็น
=IF(INDEX(PACKING!B$1:B$1999,9*(START-1)+(ROWS(B$13:B13)))="","",INDEX(PACKING!B$1:B$1999,9*(START-1)+(ROWS(B$13:B13))))
และถ้า Insert บันทัดเพิ่มขึ้นสูตรก็จะปรับตาม ทำยังไงจะสามารถล็อกให้สูตรอยู่เริ่มตรง B2 โดยไม่เลื่อนตามบันทัดที่ลบหรือเพิ่มคะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#13

Post by bank9597 »

:) ห้ามลบบรรทัดครับ เพราะจะทำให้สูตรเลื่อนตามแน่นอน ถึงจะเขียนสูตรให้ล้อคไว้แล้วก็ตามครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#14

Post by phutta »

ถ้ายังงั้นคงให้ข้อมูลเริ่มต้นที่บรรทัดที่ 2 รองจากหัวข้อ จะได้ไม่ต้องลบหรือเพิ่มบรรทัดคะ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#15

Post by phutta »

เมื่อดึงข้อมูลออกมาแล้ว แต่อยากบันทึกว่าแต่ละหน้า มียอด Sum (I14:I22) เท่ากับเท่าไร ลองใช้สูตรนี้แล้ว =IF(L14=NO,SUM(I14:I22),"") ยอด Sum จะถูกเปลี่ยนไปตามแต่ละ No ที่เปลี่ยนไปคะ แต่อยากให้โชว์เลยว่า NO 1 = Sum (I14:I22), NO 2 = Sum (I14:I22) เพื่อนำข้อมูลมาเช็คอีกครั้ง
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#16

Post by bank9597 »

:) แนบไฟล์ล่าสุดมาดูหน่อยครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#17

Post by phutta »

เพื่อเป็นการเช็คว่าแต่ละหน้า ยอด Sum I14:I22 เท่ากับเท่าไร
สาเหตุ ที่ไม่ Sum ใน Packing เลย เพราะอาจมีการเพิ่มหรือลบบรรทัดทำให้สูตรที่ใช้โชว์เปลี่ยนไป แต่ยอด Sum หน้าสุดท้ายถูกต้อง จะไม่สามารถเช็คได้คะ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#18

Post by bank9597 »

:)

ที่ I25 คีย์ =MAX(IF($L$14:$L$17=NO,M14:M17)) กด Ctrl+Shift+Enter
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
phutta
Member
Member
Posts: 42
Joined: Thu Oct 03, 2013 11:31 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#19

Post by phutta »

ขอโทษทีคะ อธิบายไม่สอดคล้อง ได้แนบเอกสารและวิธีทำให้ดูอีกครั้งคะ คือ เมื่อกดเปลี่ยน No ยอด Sum ของแต่ละหน้าจะเปลี่ยนตาม
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น

#20

Post by bank9597 »

:) ที่ M14 คีย์ =INDEX(PACKING!$J$2:$J$36,SMALL(IF(PACKING!$J$2:$J$36<>"",ROW(PACKING!$J$2:$J$36)-ROW(PACKING!$J$2)+1),L14))
กด Ctrl+Shift+Enter แล้วคัดลอกลงมา
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply