Templates: Attendance, Marks & GST Invoice
Three sheets turn up in almost every Indian school, office and shop: an attendance register, a marks sheet and a GST invoice. Building them yourself is the best practice there is, because each one combines skills from earlier lessons: COUNTIF, IF, IFS, RANK.EQ, data validation, conditional formatting and careful rounding.
In this lesson you will build all three, cell by cell. Every template is small enough to type in a few minutes and is laid out so it can grow to a full class or a long invoice.
Template 1: Attendance register
Ms Iyer marks attendance for the week of 2 to 7 November 2026 (a six-day week). The dates go across row 1 and the students down column B:
| A | B | C | D | E | F | G | H | I | J | K | L | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Roll | Name | 02 Mon | 03 Tue | 04 Wed | 05 Thu | 06 Fri | 07 Sat | Present | Absent | Leave | Attendance |
| 2 | 101 | Aarav | P | P | P | A | P | P | ||||
| 3 | 102 | Priya | P | P | P | P | P | P | ||||
| 4 | 103 | Kabir | A | P | A | L | A | P | ||||
| 5 | 104 | Meera | P | L | P | P | P | P |
Dates. Type =DATE(2026,11,2) in C1 and =C1+1 in D1, then fill right to H1. Give C1:H1 the custom format dd ddd to show "02 Mon". For a full month, fill right to the last date and use the Sunday rule from Conditional Formatting to shade holidays.
Entries. Select C2:H5 and add a drop-down list with Data > Data Validation > List, Source P,A,L. Nobody can now type "p", "Pr" or "present".
Counts. In I2:L2, then fill down:
=COUNTIF(C2:H2, "P")
=COUNTIF(C2:H2, "A")
=COUNTIF(C2:H2, "L")
=I2/COUNTA(C2:H2)Aarav: 5 1 0 83.3% Priya: 6 0 0 100.0% Kabir: 2 3 1 33.3% Meera: 5 0 1 83.3%
COUNTA(C2:H2) counts the days that have been marked, so the percentage is correct mid-month too. Format column L as Percentage with one decimal. Here leave is counted as "not present"; follow your own institution's rule.
Warnings. Many colleges require 75% attendance. Select A2:L5 and add a formula rule =$L2<75% with a light red fill, so Kabir's whole row stands out. A second rule on C2:H5, Cell Value equal to "A", colours every absence.
Template 2: Marks sheet with result and rank
A Class 9 sheet with five subjects, each out of 100. The pass mark of 33 and the grade boundaries below are example rules; use your board's or school's own.
| A | B | C | D | E | F | G | H | I | J | K | L | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Roll | Name | Hindi | English | Maths | Science | SSt | Total | Percent | Result | Grade | Rank |
| 2 | 101 | Aarav | 72 | 65 | 81 | 77 | 69 | |||||
| 3 | 102 | Priya | 88 | 91 | 95 | 89 | 93 | |||||
| 4 | 103 | Kabir | 41 | 38 | 29 | 45 | 52 | |||||
| 5 | 104 | Meera | 66 | 30 | 47 | 58 | 61 | |||||
| 6 | 105 | Rohan | 54 | 61 | 70 | 66 | 59 |
Protect the marks with Data Validation > Whole number between 0 and 100 on C2:G6. Then, in row 2, filled down:
=SUM(C2:G2)
=H2/500
=IF(COUNTIF(C2:G2, "<33")=0, "Pass", "Fail")
=IF(J2="Fail", "Needs support", IFS(I2>=0.9,"A", I2>=0.75,"B", I2>=0.6,"C", TRUE,"D"))
=RANK.EQ(H2, $H$2:$H$6)Aarav: 364 72.8% Pass C 2 Priya: 456 91.2% Pass A 1 Kabir: 205 41.0% Fail Needs support 5 Meera: 262 52.4% Fail Needs support 4 Rohan: 310 62.0% Pass C 3
The result checks every subject: COUNTIF(C2:G2, "<33") counts subjects below the pass mark, and only zero means Pass. Meera's total is higher than Kabir's, but both failed one subject. RANK.EQ gives 1 to the highest total; tied totals share a rank. The range $H$2:$H$6 is locked so it does not move when filled down.
Two more useful rows under the table: the class average of each subject with =AVERAGE(C2:C6) in C8, and the subject topper in C9:
=INDEX($B$2:$B$6, MATCH(MAX(C2:C6), C2:C6, 0))Filled right, row 9 shows Priya as the topper in every subject, which is correct for this data. Add a fail-mark rule (=C2<33, red text) on C2:G6 so the problem subjects are easy to see.
Template 3: GST tax invoice
This simplified invoice shows how the tax is calculated. A real tax invoice must carry all the details required under GST rules (such as HSN or SAC codes, and buyer details for registered buyers), so have your format checked by a chartered accountant.
The header. The supply type decides which taxes apply. When the seller's state and the place of supply are the same (an intra-state supply), the tax is split equally into CGST and SGST. When they differ (inter-state), the whole tax is IGST.
| A | B | |
|---|---|---|
| 1 | TAX INVOICE | |
| 2 | Seller | (your business name and address) |
| 3 | Seller GSTIN | (your 15-character GSTIN) |
| 4 | Invoice no. | INV/2026-27/0148 |
| 5 | Invoice date | 30-Oct-2026 |
| 6 | Seller state | Haryana |
| 7 | Place of supply | Haryana |
| 8 | Supply type | =IF(B6=B7, "Intra-state", "Inter-state") |
Make B6 and B7 drop-down lists of state names so spellings always match. A GSTIN has 15 characters, and its first two digits are the state code (06 for Haryana), so a Text length equal to 15 validation rule on the GSTIN cell catches typing slips.
The items. Headings in row 10, items in rows 11 to 13:
| A | B | C | D | E | F | G | H | I | J | |
|---|---|---|---|---|---|---|---|---|---|---|
| 10 | Sr | Description | Qty | Rate (₹) | Taxable (₹) | GST rate (example) | CGST (₹) | SGST (₹) | IGST (₹) | Line total (₹) |
| 11 | 1 | Office chair | 2 | 4500 | 18% | |||||
| 12 | 2 | Printer paper, ream | 10 | 285 | 5% | |||||
| 13 | 3 | Installation service | 1 | 1500 | 18% |
Row 11 formulas, filled down to row 13:
=C11*D11
=IF($B$8="Intra-state", ROUND(E11*F11/2, 2), 0)
=G11
=IF($B$8="Inter-state", ROUND(E11*F11, 2), 0)
=E11+G11+H11+I11These go in E11, G11, H11, I11 and J11. Each tax is rounded to paise on its own line, so the printed amounts always add up. Then the totals in row 14 (=SUM(E11:E13) and so on across to J14), a round-off and the grand total:
| Cell | Label | Formula | Result |
|---|---|---|---|
E14 | Taxable total | =SUM(E11:E13) | 13350 |
G14 | CGST total | =SUM(G11:G13) | 1016.25 |
H14 | SGST total | =SUM(H11:H13) | 1016.25 |
J14 | Invoice total | =SUM(J11:J13) | 15382.5 |
J15 | Round off | =ROUND(J14,0)-J14 | 0.5 |
J16 | Amount payable | =J14+J15 | 15383 |
Change the place of supply in B7 to Delhi and the invoice switches by itself: CGST and SGST become 0, IGST becomes 2032.5, and the amount payable stays ₹15,383, because the total tax is the same; only its split changes.
Finish with the Indian number format on all amount columns, a print area of A1:J16 on one A4 page, and protection on every formula cell, as in Protecting & Printing. Save it as a template with File > Save As > Excel Template (.xltx), so each new invoice starts as a fresh copy.
Common mistakes
- Typing tax amounts by hand. One wrong digit and the invoice does not add up. Let formulas calculate every tax.
- Rounding only the grand total. Round each tax line to paise, then round the payable amount separately as a visible round-off.
- Free-typed state names. "Haryana" and "Haryana " do not match, so an intra-state sale becomes inter-state. Use drop-down lists.
- Pass or fail from the total alone. A good total can hide a failed subject. Check each subject with
COUNTIF. - Treating example rates as real. Check every GST rate and every exam rule with an official source.
Key points
- The attendance register uses a P/A/L drop-down,
COUNTIFfor counts andCOUNTAfor days marked. - The marks sheet combines
SUM, aCOUNTIFpass check,IFSgrades andRANK.EQwith a locked range. - On a GST invoice, intra-state supplies split the tax into CGST and SGST; inter-state supplies use IGST.
- Round each tax line with
ROUND(..., 2)and show a separate round-off to the nearest rupee. - Drop-down lists, validation and protection keep templates safe to reuse; save them as
.xltx.
Exercise
Extend the marks sheet: (1) add a column M that shows "Distinction" for a percentage of 75% or more with a Pass result, and nothing otherwise; (2) under the table, count how many students passed; (3) find the name of the student with the lowest total.
Show solution
=IF(AND(J2="Pass", I2>=0.75), "Distinction", "")
=COUNTIF(J2:J6, "Pass")
=INDEX(B2:B6, MATCH(MIN(H2:H6), H2:H6, 0))M3 (Priya): Distinction (all other rows are empty) 3 Kabir
Only Priya has both a Pass and at least 75%; Aarav passed with 72.8%. Three students passed (Aarav, Priya, Rohan), and Kabir has the lowest total, 205. The AND makes sure a high percentage with a failed subject never gets a distinction.
Quick Quiz
1. Which formula counts the days a student was present in C2:H2?
COUNTIF counts cells equal to "P"; COUNT and SUM ignore text entries.
2. On an intra-state sale with an example GST rate of 18%, how is the tax shown?
For supplies within the same state, the tax is split equally between CGST and SGST.
3. Why is the range in =RANK.EQ(H2, $H$2:$H$6) locked with $?
Without $, the range would shift down with each row and the ranks would be wrong.
4. Why does the result formula use COUNTIF(C2:G2, "<33")=0 instead of checking the total?
The pass rule applies to every subject, so the formula counts subjects below 33.
Learn Excel with a mentor
Free lessons get you started. Our Excel & Office Skills training adds real projects and code reviews from working developers.
- Project-based learning
- Mentor code reviews
- Free counselling call
