Skip to main content

บันทึกและคำนวณภาษีซื้อ-ขายรายเดือนด้วย Google Sheets

·4 mins

ผู้ประกอบการรายเล็กหลายๆท่านคงรู้ดีว่าทุกเดือนเราจะยื่นเอกสารชุดหนึ่งที่ชื่อว่า ภ.ง.ด ๕๐ ซึ่งก็จำเป็นจะต้องมีข้อมูลของการซื้อและขายมาประกอบกันเพื่อให้ได้ตัวเลขไปรายงานพี่สรรพากรเค้า แต่จะทำยังไงดีให้มันไม่มั่วไม่สับสน บทความนี้มีวิธีดีๆที่จะช่วยให้คุณจัดการข้อมูลได้ง่ายและแม่นยำมากขึ้นครับ

วางโครงสร้างข้อมูล #

ไม่ว่าเราจะทำอะไรใน Google Sheets สิ่งแรกคือการวางแผนครับ ผมจะสร้าง Sheet เอาไว้เก็บข้อมูล ดังต่อไปนี้

  • รายชื่อคู่ค้า เก็บรายชื่อลูกค้าหรือผู้ขายที่เราทำการซื้อขายด้วย บันทึกไว้เพื่อความสะดวกเวลาที่จะกรอกในใบกำกับรายการซื้อ-ขายครับ
  • ใบกำกับขาย เก็บข้อมูลใบกำกับภาษีที่เราขายในแต่ละเดือน
  • ใบกำกับซื้อ เก็บข้อมูลใบกำกับภาษีที่เราซื้อในแต่ละเดือน
  • รายชื่อเดือน ตัวนี้เป็นตารางชื่อเดือนภาษาไทยกับอังกฤษ ทำไว้เผื่อการเรียกใช้ในสูตรครับ

เริ่มบันทึกข้อมูล #

หลังจากสร้าง Sheet ไว้เรียบร้อยแล้วคราวนี้ก็จะมาลงรายละเอียดของ Sheet แต่ละตัวว่ามีหน้าที่และเก็บข้อมูลยังไงนะครับ

อธิบายก่อนกันงง #

จะมีสูตรที่ถูกใช้บรรจุอยู่ในสิ่งที่เรียกว่า Array ให้เห็นบ่อยๆในบทความนี้นะครับ โดยวิธีเขียนมันจะมีวงเล็บปีกกาแบบนี้ ={1,2,3;4,5,6;7,8,9} คำสั่งนี้จะเป็นการบอกให้ sheet สร้างข้อมูลออกมา 3 rows, 3 columns โดยแต่ละแถวจะถูกขั้นด้วย ; ดูผลลัพธ์ในภาพได้เลยครับ เพื่อความเข้าใจ

image

คำสั่งนี้จะทำให้เราเขียนสูตรต่อกันหลายบรรทัดได้ใน 1 cell ซึ่งบทความนี้ใช้เยอะครับเลยขอบอกไว้ก่อนเดี๋ยวจะงงกัน

รายชื่อคู่ค้า #

sheet นี้ไม่มีอะไรนอกจากการโยนชื่อลูกค้าหรือผู้ขายที่เราซื้อขายด้วยลงไปครับ ใครอยากใส่รายละเอียดพวกที่อยู่ก็ได้นะไม่ผิดอะไรยิ่งใส่ยิ่งดีในการค้นหาข้อมูลในอนาคตด้วยครับ ชื่อที่เก็บในนี้ต้องไม่ซ้ำกันนะครับ เพราะเราจะดึงรายชื่อพวกนี้ไปช่วยทำให้การกรอกใบกำกับภาษีของเราง่ายและเร็วขึ้น

image

รายชื่อเดือน #

sheet นี้ไม่เกี่ยวอะไรกับตัวเลขของเราครับ แต่จะช่วยให้เราสะดวกสบายในการแยกใบกำกับภาษีซื้อได้ มันจะช่วยลดการใช้สูตรที่ยาวเหยียดในการทำ report แต่ละเดือนครับ ทำเป็น 2 ภาษาเลยนะครับ เดี๋ยว sheet ต่อไปคุณจะรู้เหตุผลว่าทำไมต้องทำ

image

ใบกำกับขาย #

ตัวสำคัญของเราเลยครับกรอกข้อมูลการขายของเราครับ ใครออกใบกำกับไว้กี่ใบเอามากรอกลงในนี้ให้หมดนะครับ ไม่ต้องไปกั๊กนะครับสรรพากรมาเยี่ยมผมไม่รู้ด้วยนะ

image
  • ลูกค้า จริงๆก่อนจะกรอกชื่อของลูกค้าที่ column C เราสามารถสร้าง dropdown รายชื่อลูกค้าได้นะครับ โคยเลือกคลุมทั้ง column แล้วคลิกขวาเลือก Data validation ในเมนูครับ หลังจากนั้นที่ Criteria เราก็จะเลือกเป็น List from a range เพราะเราต้องการจะดึงรายชื่อมาจาก Sheet รายชื่อคู่ค้าของเราครับ ซึ่งรายชื่อคู่ค้าของผมก็จะอยู่ใน range นี้ 'รายชื่อคู่ค้า'!A2:A ใครไม่อยากพิมพ์สูตรกดที่รูปตารางเล็กๆ แล้วไปลากเอาที่ sheet รายชื่อคู่ค้า ได้เลยครับ
image

เพื่อประหยัดเวลาในการกรอก นอกจากราคา(ที่ยังไม่รวม VAT)แล้ว ช่องอื่นๆเราจะให้ Google Sheets จัดการกรอกให้เราเลยครับ

  • ภาษี ผมจะใช้คำสั่งนี้ที่ cell E1 ครับ (เว้นบรรทัดเพื่อความสวยงาม ใน Google Sheets ก็ทำได้นะครับใช้ Alt + Enter)
={
    "ภาษี";
    ARRAYFORMULA(
        IF(
            A2:A<>"",
            (D2:D*7%),
            ""
        )
    )
}

อธิบายง่ายๆก็คือแถวแรกผมจะให้แสดงคำว่า “ภาษี” สังเกตว่ามี ; ปิดท้ายแปลว่าจบแถว ขึ้นแถวใหม่ผมใช้ =ARRAYFORMULA() หาดูว่าช่อง A2 ลงไปจนสุดเนี่ยตัวไหนไม่ว่างเปล่าบ้าง A2:A<>"" (จริงๆจะใช้ D2:D ก็ได้นะครับ) ถ้าไม่มีก็ช่วยเอา D2:D ซึ่งเป็นราคาที่ยังไม่รวม VAT เนี่ยไปหาทีว่า 7% มันคือเท่าไหร่ด้วยการคูณกันเป็น D2:D*7% เราก็จะได้เลขภาษี 7% จากราคาแล้วครับผม

image
  • ยอดสุทธิ สูตรไม่ต่างจากภาษีครับ ต่างแค่การคำนวณนิดหน่อย
={
    "ยอดสุทธิ";
    ARRAYFORMULA(
        IF(
            A2:A<>"",
            (D2:D+E2:E),
            ""
        )
    )
}

เหมือนข้างบนครับต่างกันตรงที่ ผมจะเอา D2:D มารวมกับ E2:E ซึ่งก็คือการเอา ราคา + vat นั่นแหละครับ

image
  • เดือน เพื่อให้สะดวกในการดึงค่าไปใช้ ผมจะสร้าง column นี้มาเพื่อแสดงชื่อเดือนภาษาไทย โดยมันไม่ได้แสดงมาแบบสุ่มๆนะครับ มันจะไปดูที่ column A ว่าวันที่คือวันอะไร แล้วจะแสดงเดือนในช่องนี้แทน
={
    "เดือน";
    ARRAYFORMULA(
        IF(
            A2:A<>"",
            VLOOKUP(
                TEXT(A2:A, "MMMM"),'รายชื่อเดือน'!A2:B13,2,false
            ),
            ""
        )
    )
}

จริงๆก็คล้ายคำสั่งบนๆนะครับ แต่เห็น =VLOOKUP() อย่าพึ่งถอดใจนะครับมันมาแค่ตรงนี้แหละ ที่ผมไม่ใช้ =QUERY() ที่อ่านง่ายกว่าเพราะว่ามันจับยัดใส่ =ARRAYFORMULA() ไม่ได้ครับ ผมไม่ชอบมาลากสูตรใส่แถวยาวๆ และจะเห็นว่าผมอ้างอิงไปหา รายชื่อเดือน แล้วใน =VLOOKUP ที่มีคำสั่ง =TEXT() ยัดข้างในอีกที คำสั่งนี้เอาไว้จัดการ format ของ text ครับซึ่งผมก็เอา A2:A เนี่ยมาเปลี่ยนให้อยู่ในรูปแบ MMMM ก็คือชื่อเดือนแบบเต็มๆ แต่มันเป็นภาษาอังกฤษไงผมเลยต้อง =VLOOKUP() ไปหาชื่อเดือนภาษาไทยใน sheet อีกที

ตัวอย่างคำสั่ง =TEXT() นะครับเผื่อใครนึกภาพไม่ออก สำหรับใครที่งงว่า MMMM มาไงแล้วชั้นจะไปรู้ได้ไงว่าต้องใส่ตัวนี้ ไปอ่านได้ที่นี่ครับ https://support.google.com/docs/answer/3094139?hl=th

image

เมื่อเรียบร้อยแล้วคำสั่งจะทำงานออกมาสวยงามอย่างนี้ครับ

image

ใบกำกับซื้อ #

สำคัญไม่แพ้กับ ใบกำกับขาย ครับ ใน sheet นี้เราจะเอาข้อมูลใบกำกับภาษีต่างๆที่เราซื้อมาในนามบริษัท/ห้าง/ร้าน ของเรา มาโยนลงไปครับ ใส่แค่ข้อมูลสำคัญนะครับ ไม่ต้องแจงรายละเอียดเอาแต่ยอดเท่านั้น

image
  • ผู้ขาย (บริษัท/ห้าง/ร้าน) เหมือนกับ column ลูกค้า ของใบกำกับขายเลยครับ สร้าง Data validation โดยให้ Criteria เป็น List from a range จาก รายชื่อคู่ค้า
image
  • ภาษี ก็เหมือนกันกับใบกำกับภาษีขายเลย สูตรเดียวกันเป๊ะเลยครับ
={
    "ภาษี";
    ARRAYFORMULA(
        IF(
            A2:A<>"",
            (D2:D*7%),
            ""
        )
    )
}
image
  • ยอดสุทธิ ภาษียังสูตรเดียวกันแล้วทำไมยอดสุทธิจะไม่เหมือนล่ะ จริงไหม?
={
    "ยอดสุทธิ";
    ARRAYFORMULA(
        IF(
            A2:A<>"",
            (D2:D+E2:E),
            ""
        )
    )
}
image
  • เดือน อันนี้ไม่เหมือนกันแล้วนะ เพราะใบกำกับภาษีซื้อเนี่ยสามารถนำไปใช้ได้ภายใน 6 เดือน แปลว่ามันอาจจะไม่ได้เป็นเดือนเดียวกันกับที่ออกก็ได้ อ่านเพิ่มเติม ดังนั้นแทนที่จะให้มันรู้เองโดยอัตโนมัติ เราเป็นคนเลือกเองดีกว่าไหม
image

ทำการคลุมทั้ง column ยกเว้นแถวแรก แล้วคลิกขวา Data validation เช่นเคย แต่รอบนี้ผมจะเลือก Criteria เป็น List of items ข้างในนั้นผมก็พิมพ์ลงไปแบบนี้

มกราคม,กุมภาพันธ์,มีนาคม,เมษายน,พฤษภาคม,มิถุนายน,กรกฎาคม,สิงหาคม,กันยายน,ตุลาคม,พฤศจิกายน,ธันวาคม,ยังไม่เลือก,ไม่ใช้,

มองเผินๆอาจจะสงสัยว่าทำไมไม่ไปดึงเอารายชื่อเดือนมาจาก sheet ล่ะ เดี๋ยวก่อนครับ นอกจากชื่อเดือนแล้วมันมี

  • ยังไม่เลือก ซึ่งเอาไว้บอกว่าใบกำกับภาษีชุดนี้เรายังไม่ได้ใช้ยื่นเดือนไหนเลยนะ
  • ไม่ใช้ อันนี้แปลว่าไม่ใช้คือ ไม่เอามาใช้คำนวณแน่ๆแต่บันทึกไว้เป็นหลักฐาน
image

แถมนิดนึง #

เมื่อเราบันทึกไปเรื่อยๆ แถวมันก็จะเยอะจนเราขี้เกียจ scroll ขึ้นลงเพื่อตามหาใช่ไหมครับ ปัญหานี้แก้ได้ไม่ยากด้วย Filter ครับเพียงคลิกเลือก column “ใช้ในเดือน” แล้วกดที่รูป “กรวย” บนเมนู จากนั้นคุณก็สามารถเลือกได้เลยว่าจะให้แสดงแถวที่มีค่าอะไรบ้าง เดือนไหนที่ยื่นไปแล้วเราก็ติ๊กออกได้ครับ

image
image
image

สร้างส่วนแสดงผล #

มาถึงส่วนสุดท้ายที่เรารอคอย หลังจากตรากตรำเก็บข้อมูลใส่ sheet มาจนตาลาย ถึงเวลาของการทำ report สวยๆงามๆกันแล้วครับ สร้าง sheet สุดท้ายกันครับ

สรุปรายเดือน #

sheet นี้ใช้แสดงรายการซื้อขายในแต่ละเดือนที่เราเลือก แล้วทำการรวมภาษีซื้อ-ขาย แล้วเอามาหักลบกันให้เองด้วย มีตัวนี้เพียงคลิกเลือกเดือนคุณก็จะได้ตัวเลขไปกรอก ภ.ง.ด ๕๐ แบบทันทีทันใด (ถ้าคุณไม่กรอกข้อมูลใบกำกับภาษีผิดนะ)

  • เดือน ที่ cell B1 ผมจะดึงเอาเดือนมาจาก sheet รายชื่อเดือน ด้วย Data validation ท่านี้ใช้หลายรอบแล้วหวังว่ารอบนี้ทุกคนน่าจะทำกันได้เอง โดยไม่ต้องมีภาพประกอบแล้วนะครับ :)
image
  • รายการซื้อ-ขาย cell A4 ตรงนี้บอกเลยว่าอาจมีคนงง แต่ค่อยๆดูแล้วทำความเข้าใจตามกันไปนะครับ
={
    "รายการขาย","","","","","";
    QUERY('ใบกำกับขาย'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'");
    "","","","","","";
    "รายการซื้อ","","","","","";
    QUERY('ใบกำกับซื้อ'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'")
}

กลับมาอีกครั้งสำหรับคำสั่ง =QUERY() ที่ผมชอบมากที่สุด ยังจำได้ใช่ไหมครับที่ผมอธิบาย ={1,2,3;,4,5,6} ไปในตอนแรก ที่ผ่านมาใน sheet ใบกำกับซื้อ-ขาย เราใช้สูตรนี้แบบ column เดียว แต่รอบนี้มาถึง 6 columns เลยครับ อย่าพึ่งลายตานะ เดี๋ยวผมอธิบายทีละบรรทัด

บรรทัดที่ 1 "รายการขาย","","","","",""; อันนี้คือ Header เฉยๆครับ ทำไว้เพื่อความสวยงาม ส่วนไอ้ "", ที่เห็นตามมาข้างหลังเป็นขบวนนั่นคือการบอกว่า cell นั้นว่างเปล่านะครับ ที่ต้องมี "", ต่อท้าย 5 ตัวก็เพราะว่าคำสั่ง ={}

บรรทัดที่ 2 QUERY('ใบกำกับขาย'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'"); อันนี้ผมไป query เอาใบกำกับขายตั้งแต่ column A ถึง F หรือ “วันที่ - ยอดสุทธิ” มาแสดงครับ โดยที่ G หรือ “เดือน” เท่ากับ B1 ก็คือเดือนที่เราเลือกเอาไว้

บรรทัดที่ 3 "","","","","",""; เว้นบรรทัดครับ ไม่มีอะไรแยกไว้จะได้สวยๆสบายตา

บรรทัดที่ 4 "รายการซื้อ","","","","",""; ตัวนี้จะคล้ายบรรทัดแรกครับแต่เป็น Header ของรายการซื้อบ้าง

บรรทัดที่ 5 QUERY('ใบกำกับซื้อ'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'") query เอาใบกำกับซื้อตั้งแต่ column A ถึง F หรือ “วันที่ - ยอดสุทธิ” มาแสดงครับ โดยที่ G หรือ “ใช้ในเดือน” เท่ากับ B1 ก็คือเดือนที่เราเลือกเอาไว้

สำหรับใครที่ enter ไปแล้วได้แต่ข้อมูลไม่มีสี ไม่ต้องตกใจครับ ผมลืม capture ภาพเอาไว้แต่เดี๋ยวเราจะมาตกแต่งมันอีกทีตอนท้าย

image
  • รวมภาษีในเดือน ได้ตารางซื้อขายมาแล้วก็ถึงเวลาสรุปยอดซะที

ภาษีขาย หาผลรวมโดยคำสั่ง =QUERY() เหมือนเดิมครับ แต่แทนที่เราจะ select E แล้วมารวมกันทีหลัง เราสามารถใช้ select SUM(E) ได้เลยครับ จะต่อท้าย label SUM(E) '' หรือ label SUM(E) 'ภาษีขาย' ก็ได้นะครับตามสะดวกเลย

=QUERY('ใบกำกับขาย'!A1:G,"select SUM(E) where G = '"&B1&"' label SUM(E) ''")

ภาษีซื้อ เหมือนกันกับภาษีขายเลยครับ ต่างกันตรงที่ชี้ไปหา sheet คนละตัวเท่านั้นเอง

=QUERY('ใบกำกับขาย'!A1:G,"select SUM(E) where G = '"&B1&"' label SUM(E) ''")
image

เมื่อเสร็จเรียบร้อยแล้วก็ลองเปลี่ยนเดือนที่ B1 ดูนะครับ อย่างในภาพผมจะเปลี่ยนจาก “สิงหาคม” ไปเป็น “กรกฎาคม”

image

แล้วข้อมูลของทั้งหน้าก็จะเปลี่ยนตามทันที

image

จะเพิ่มยอดซื้อยอดขายด้วย =QUERY() เปลี่ยนจาก SUM(E) มาเป็น SUM(D) เท่านั้นเอง รูปตัวอย่างที่ผมเพิ่มเข้าไปครับ

image

ตกแต่งความสวยงาม #

หลายคนอาจจะมีคำถามว่าจะตกแต่งให้มันสวยงามยังไงดี ในเมื่อเราไม่รู้เลยว่า cell ไหนจะเป็นสีอะไร คำตอบอยู่ที่เมนู Format > Conditional formatting ครับผม เมนูนี้จะสามารถทำให้เรากำหนดเงื่อนไขได้ว่า cell เป็นแบบไหนจะให้มีสีพื้นหรือตัวอักษรเป็นยังไง อย่างในรูปตัวอย่างที่ผมทำจะมีอยู่ 5 เงื่อนไขที่กำหนดเอาไว้นะครับ (จริงๆจะให้เหลือ 3 ก็ได้นะ แต่เดี๋ยวงงสูตรกัน)

image

มาดูตัวอย่างกันสักอันแล้วกันครับ อันนี้จะเป็นเงื่อนไขที่ดูว่า “แถว” ที่พิจารณาอยู่เนี่ยเป็น Header ของ column ในรายการขายอยู่หรือเปล่า โดยผมตั้งค่าดังนี้นะครับ

  • Apply to range ขอบเขตการพิจารณาตั้งแต่ A4:F501 ก็คือใต้สรุปตัวเลขลงไปยาวๆจนสุด sheet เลยครับ
  • Formula rules ผมเลือกเป็น “Custom formular” นะเพราะว่าเราจะกำหนดเอง โดยใช้สูตร
=($C:$C="ผู้ขาย (บริษัท/ห้าง/ร้าน)")

แปลว่าแถวใดๆก็ตามที่ column C มีคำว่า “ผู้ขาย (บริษัท/ห้าง/ร้าน)” ให้เข้าเงื่อนไขนะ

  • Formula style ตรงนี้ผมก็เทพื้นสีแดงเลย ทำตัวหนังสือสีขาวด้วยจะได้มองเห็นชัดๆ
image

แถมอีกนิด #

  • เพื่อความสวยงามซ่อน grid ได้ที่ View > Gridlines ไปติ๊กออกซะ แล้วจะสวยงามเอง
  • พอไม่มี grid ก็ทำตารางสลับสีโดยใช้ “Custom formula” นี้เลยนะครับ
=ISODD(ROW())

ถ้าใครอยากเป็นแถวคู่ก็ =ISEVEN(ROW()) ได้เหมือนกัน

พิมพ์เก็บไว้เป็นใบปะหน้า #

นอกจากจัดให้สวยงามได้แล้ว เรายังสามารถพิมพ์แล้วเก็บใส่แฟ้มเป็นเดือนๆได้ด้วยนะครับ

image

แนะนำว่าให้มีแฟ้มจริงๆ 3 แฟ้มไว้เก็บใบกำกับภาษีและเรียงตาม sheet นี้ด้วยเลยนะครับ จะได้สะดวกเวลาเปิดดูไปพร้อมๆกับตอนอ่านใน sheet

  • แฟ้มใบกำกับภาษีขาย
  • แฟ้มใบกำกับภาษีซื้อที่ยังไม่ถูกใช้ยื่น
  • แฟ้มใบกำกับภาษีซื้อที่ใช้ยื่นแล้ว (แยกเป็นเดือนๆด้วยใบปะหน้า)

เพียงเท่านี้คุณผู้ประกอบการทั้งหลายก็จะมีระบบเล็กๆ ไว้จัดการภาษีแต่ละเดือนแล้วครับ แต่จะให้ดีบันทึกข้อมูลรายวันเลยจะดีมากนะครับเพราะเราจะเสียเวลาแค่วันละไม่กี่นาที ดีกว่ารวมมานั่งกรอกลงทั้งเดือน แบบนั้นอาจจะเสียเวลาเป็นวันก็ได้ครับ :)

ตัวอย่าง Google Sheet #

https://docs.google.com/spreadsheets/d/1N-MA_-kuAA9VWy7AFA69QNCoG6L6dv8r4qgpt1-4eBA/edit?usp=sharing