Page 1 of 2
ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Fri Sep 25, 2015 6:33 pm
by phutta
สร้างเอกสารเพื่อทำใบกำกับภาษีโดยมีเพื่อปริ๊นผ่านกระดาษที่มีฟอร์ม โดยการดึงข้อมูลออกมาทีละหน้า และปริ๊น ซึ่งหน้าสุดท้ายอาจมีจำนวนแถวที่น้อยกว่าทุกหน้า ถ้าใช้ Vlookup จะทำให้เกิด Error แถวที่ไม่มีข้อมูล และหน้าสุดท้ายมีการ Sum ข้อมูล
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Fri Sep 25, 2015 8:40 pm
by snasui
ทำตามด้านล่างครับ
- เซลล์ 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 อืน ๆ ตามต้องการ
- เซลล์ I23 คีย์
=IF(TOTAL=START,SUM(PACKING!F:F),"")
Enter > ปรับใช้กับ I24:I25
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Sep 28, 2015 11:00 am
by phutta
ขอบคุณคะ วิธีนี้จะเป็นการทำทีละหน้าและปริ๊นใช่ไหมคะ แต่ถ้าเราอยากเขียนโดยให้มันอ้างอิง กับคอลัมน์ที่สามารถกำหนดได้เลยว่าต้องการปริ๊นหน้าที่เท่าไร จะต้องเขียน VBA ใช่ไหมคะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Sep 28, 2015 6:57 pm
by snasui
ที่เขียนเป็นสูตรด้านบนเลือกหน้าที่ต้องการจะ Print ได้อยู่แล้วไม่ทราบว่าต้องการคำตอบเป็นเช่นไร สำหรับการเขียน VBA เป็นการทำให้เป็นอัตโนมัติหรือเป็นลักษณะการคำนวณแบบซับซ้อนเป็น Loop เช่นนี้เป็นต้น หากแค่ดึงข้อมูลมาจากตำแหน่งใด ๆ ด้วยจำนวนเท่านั้นเท่านี้รายการ สามารถใช้สูตรจัดการได้ครับ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Tue Sep 29, 2015 3:56 pm
by phutta
เข้าใจแล้วคะ ตอนแรกยังไม่เข้าใจว่ามันเกี่ยวกับการเลือกหน้ายังไง แต่เมื่อลองแก้ไขตัวเลข M4 ข้อมูลก็ถูกเปลี่ยนไป ขอบคุณมากคะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Tue Sep 29, 2015 4:03 pm
by phutta
แล้วเราจะรู้ได้ยังไงค่ะ ว่าหน้าสุดท้ายคือหน้าที่เท่าไร เพื่อจะได้กำหนดหน้า Finish ได้คะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Tue Sep 29, 2015 6:07 pm
by snasui
จากตัวอย่างนี้ต้องการดึงมาหน้าละ 9 รายการ หากต้องการจะทราบว่าหน้าสุดท้ายเป็นเท่าใดให้นำรายการทั้งหมดหารด้วย 9 ก็จะได้จำนวนหน้า อย่าลืมบวกด้วยเศษจากการหารด้วย 9 เพิ่มเข้าไปอีก 1 หน้าครับ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Tue Sep 29, 2015 8:33 pm
by phutta
ขอบคุณคะ เป็นสิ่งที่คิดไม่ถึงจริงๆคะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Oct 12, 2015 2:08 pm
by phutta
เมื่อลอง copy จริง Data จริงมาวางไว้ใน Sheet Packing และใช้วิธีคำนวณหน้ากระดาษโดยใช้สูตร =INT(COUNT(PACKING!$A$6:$A$2000)/9) ทำไมถึง = 0 คะ แต่ลองเปลี่ยนไป count คอลัมน์ที่เป็นตัวเลข ค่าก็จะขึ้น
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Oct 12, 2015 10:46 pm
by DhitiBank
เป็นเพราะสูตร INT ครับ
การนับจำนวนหน้าในกรณีที่มีเศษเหลือ (คือไม่เต็มหน้า) จะต้องปัดเพิ่มเป็น 1 หน้า แต่สูตร INT จะปัดเศษทิ้ง นั่นทำให้เมื่อข้อมูลมีไม่เต็มหน้า เช่น มี 1-8 items ก็จะได้ 0 หน้าครับ ดังนั้น อาจปรับสูตรเป็นอย่างอื่นเพื่อให้ปัดเศษขึ้น เช่น
=Roundup(Count(...)/9,0)
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Fri Nov 20, 2015 2:37 pm
by phutta
ขอบคุณคะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Fri Nov 20, 2015 2:51 pm
by phutta
snasui wrote: ทำตามด้านล่างครับ
- เซลล์ 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 อืน ๆ ตามต้องการ
- เซลล์ 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 โดยไม่เลื่อนตามบันทัดที่ลบหรือเพิ่มคะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Fri Nov 20, 2015 3:47 pm
by bank9597
ห้ามลบบรรทัดครับ เพราะจะทำให้สูตรเลื่อนตามแน่นอน ถึงจะเขียนสูตรให้ล้อคไว้แล้วก็ตามครับ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Fri Nov 20, 2015 5:25 pm
by phutta
ถ้ายังงั้นคงให้ข้อมูลเริ่มต้นที่บรรทัดที่ 2 รองจากหัวข้อ จะได้ไม่ต้องลบหรือเพิ่มบรรทัดคะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Nov 23, 2015 1:09 pm
by phutta
เมื่อดึงข้อมูลออกมาแล้ว แต่อยากบันทึกว่าแต่ละหน้า มียอด Sum (I14:I22) เท่ากับเท่าไร ลองใช้สูตรนี้แล้ว =IF(L14=NO,SUM(I14:I22),"") ยอด Sum จะถูกเปลี่ยนไปตามแต่ละ No ที่เปลี่ยนไปคะ แต่อยากให้โชว์เลยว่า NO 1 = Sum (I14:I22), NO 2 = Sum (I14:I22) เพื่อนำข้อมูลมาเช็คอีกครั้ง
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Nov 23, 2015 1:29 pm
by bank9597
แนบไฟล์ล่าสุดมาดูหน่อยครับ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Nov 23, 2015 2:00 pm
by phutta
เพื่อเป็นการเช็คว่าแต่ละหน้า ยอด Sum I14:I22 เท่ากับเท่าไร
สาเหตุ ที่ไม่ Sum ใน Packing เลย เพราะอาจมีการเพิ่มหรือลบบรรทัดทำให้สูตรที่ใช้โชว์เปลี่ยนไป แต่ยอด Sum หน้าสุดท้ายถูกต้อง จะไม่สามารถเช็คได้คะ
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Nov 23, 2015 2:44 pm
by bank9597
ที่ I25 คีย์ =MAX(IF($L$14:$L$17=NO,M14:M17)) กด Ctrl+Shift+Enter
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Nov 23, 2015 3:02 pm
by phutta
ขอโทษทีคะ อธิบายไม่สอดคล้อง ได้แนบเอกสารและวิธีทำให้ดูอีกครั้งคะ คือ เมื่อกดเปลี่ยน No ยอด Sum ของแต่ละหน้าจะเปลี่ยนตาม
Re: ใบกำกับภาษีและดึงข้อมูลเพื่อปริ๊นเอกสารทีละแผ่น
Posted: Mon Nov 23, 2015 3:29 pm
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 แล้วคัดลอกลงมา