Ravindra BagaleCourses & study guides मराठी Track your progress

Shopping Offer Comparison in Excel: Buy 2 Get 1 Free vs % Off vs Flat ₹ Off

Zoya in Nagpur sees five offers on the same ₹250 shampoo: 20% off, buy 2 get 1 free, ₹150 off on 3, 30% off on 3, and second pack at half price. Every board says "big saving". Which one really is? Turn each offer into one number, the price per pack, and Excel ranks them in a second.

What you'll learn on this page

  • Describe any offer with packs paid, packs received, % off and flat ₹ off
  • What you pay with one formula
  • Real price per pack and real discount %
  • Rank the offers with RANK
  • Best offer with INDEX and MATCH
  • Extra packs you buy beyond your need

Download the template: shopping-offer-comparison-template.xlsx: example data with real formulas. Yellow cells are inputs you can type over; green cells hold formulas; blue rows are headers and totals. Replace the example data with your own and everything recalculates.

Made-up data: every name, amount, shop and date on this page is made up for practice. Cities are used only to make the examples feel real.

1. The example

Five offers on a ₹250 pack (made-up values):

Offer Pay for Get You pay Price per pack Real discount Rank
20% off 1 1 ₹200 ₹200.00 20.0% 4
Buy 2 get 1 free 2 3 ₹500 ₹166.67 33.3% 1
₹150 off on 3 packs 3 3 ₹600 ₹200.00 20.0% 4
30% off on 3 packs 3 3 ₹525 ₹175.00 30.0% 2
Second pack at half price 1.5 2 ₹375 ₹187.50 25.0% 3

Buy 2 get 1 free is really 33.3% off. "Second pack at half price" sounds like 50% but is only 25%. But Zoya needs only 2 packs, so the best offer makes her buy 1 extra. That is fine for shampoo, not for something that expires.

Inputs (yellow) Pack price ₹250 Pay for / get % off, flat ₹ off Formulas Pay = price × paid × (1 − %) − flat Per pack = pay ÷ get RANK ascending Results Buy 2 get 1 = 33.3% off Half price 2nd = 25% 1 extra pack

Figure 1. Each offer is packs paid, packs received, % off and flat ₹ off; what you pay ÷ packs received gives the real price per pack; RANK puts the cheapest first.

The shopping-offer-comparison-template.xlsx template sheet with example data, yellow input cells and green formula cells

Figure 2. The template sheet, recalculated with its example data. Download it above and replace the yellow cells with your own numbers.

2. Build it step by step

Step 1. Describe each offer

  1. In B3 type the normal price of one pack (₹250).
  2. In A5:I5 type Offer, Packs you pay for, Packs you get, % off, Flat ₹ off, You pay, Price per pack, Real discount, Rank.
  3. Buy 2 get 1: pay 2, get 3. Second at half price: pay 1.5, get 2. Flat ₹150 off on 3: pay 3, get 3, flat 150.

Step 2. What you pay

  1. In F6 type =$B$3*B6*(1-D6)-E6. One formula covers all offer types; unused parts are 0.

Step 3. Price per pack and real discount

  1. In G6 type =F6/C6: what each pack really costs.
  2. In H6 type =1-G6/$B$3 as %: the real discount. Copy F6:H6 down.

Step 4. Rank

  1. In I6 type =RANK(G6,$G$6:$G$10,1). The last argument 1 ranks the smallest price as 1 (RANK).
  2. Equal prices get the same rank, so two offers can both be 4.

Step 5. Best offer

  1. In L6 type =INDEX(A6:A10,MATCH(MIN(G6:G10),G6:G10,0)): Buy 2 get 1 free (INDEX and MATCH).
  2. In L8 type how many packs you need, and in L12 =MAX(0,L10-L8) for the extra packs the best offer makes you buy.

Step 6. Colours

  1. Select A6:I10 > New Rule > Use a formula =$I6=1, green and bold (formula rules). Add data bars on H6:H10 (data bars).

Ravindra Bagale's Tip

Before the shop, decide how many packs you really need. The best offer for 3 packs may be the worst for 1.

3. Formulas used

Cell Formula What it does
F6 =$B$3*B6*(1-D6)-E6 You pay
G7 =F7/C7 Price per pack
H7 =1-G7/$B$3 Real discount
I6 =RANK(G6,$G$6:$G$10,1) Rank
F10 =$B$3*B10*(1-D10)-E10 Second pack at half price
L6 =INDEX(A6:A10,MATCH(MIN(G6:G10),G6:G10,0)) Best offer
L7 =MIN(G6:G10) Lowest price per pack
L12 =MAX(0,L10-L8) Extra packs beyond my need

Every formula above is written in the template, so you can click a cell and see it in the formula bar. All values on this page were recalculated in the file.

4. Common mistakes

  1. Comparing the total paid. ₹200 for one pack vs ₹500 for three is not a fair comparison. Compare the price per pack.
  2. Reading "half price" as 50% off. Half price on the second pack is 25% off across two packs.
  3. Ignoring what you actually need. Three packs at the best price is a waste if one expires before you use it.
  4. Forgetting the sort order in RANK. Without the 1 at the end, RANK gives rank 1 to the most expensive offer.
  5. Different pack sizes. If sizes differ, compare price per ml or gram instead (see the unit price comparison).

Ravindra Bagale's Tip

Check the normal price too. A discount on a raised price is not a discount.

5. More real examples

Example 1: Clothes sale. "Buy 3 for ₹999" vs "40% off": type each as packs paid, packs received and flat or % off.

Example 2: Mobile recharge. Compare plans by price per day: amount ÷ validity days.

Example 3: Bulk rice from a wholesaler. Add a delivery charge column to You pay before dividing by kg.

Quick revision cards

Quick revision

Each card shows formulas from this page, each with an example and its answer from the template. Scan the QR code on a card to open this lesson. All names and numbers are made up for practice.

Revision card 1 for Shopping Offer Comparison in Excel: Price per pack: =F7/C7 gives ₹166.67; You pay: =$B$3*B6*(1-D6)-E6 gives ₹200.00; Real discount: =1-G7/$B$3 gives 33.3%.
Card 1 of 2: Shopping Offer Comparison in Excel · Download PNG
Revision card 2 for Shopping Offer Comparison in Excel: Rank: =RANK(G6,$G$6:$G$10,1) gives 4; Second pack at half price: =$B$3*B10*(1-D10)-E10 gives ₹375.00; Best offer: =INDEX(A6:A10,MATCH(MIN(G6:G10),G6:G10,0)) gives Buy 2 get 1 free.
Card 2 of 2: Shopping Offer Comparison in Excel · Download PNG

More cards: Ravi Sir's Cards.

6. Frequently asked questions

Is buy 2 get 1 free a 33% discount?

Yes: you pay for 2 and get 3, so each pack costs 2/3 of the price, which is 33.3% off.

How do I compare offers in Excel?

Work out what you pay and divide by packs received to get a price per pack, then rank the prices.

How does RANK work for cheapest first?

=RANK(G6,$G$6:$G$10,1); the 1 means ascending, so the lowest price is rank 1.

Is "second at half price" 50% off?

No. You pay 1.5 for 2, so it is 25% off each pack.

How do I find the best offer name?

=INDEX(A6:A10,MATCH(MIN(G6:G10),G6:G10,0)).

7. Quick quiz

Ten questions on this page. Sign in to save your score.

Loading practice tasks...

  1. Total seats (Easy): Add up Seats in D2:D11.
  2. Average price per seat (Easy): Average of E2:E11, rounded to 2 decimals.
  3. Rows in Basic (Easy): How many rows have Plan "Basic"?
  4. Largest seats (Easy): The largest value in D2:D11.
  5. Seats for Basic (Medium): Total of D2:D11 where B is "Basic".
  6. Basic in Denver (Medium): Total of D2:D11 where B is "Basic" and C is "Denver".
  7. Best in Basic (Medium): Largest E2:E11 value where B is "Basic".
  8. Value of row 2 (Medium): D2 times E2.
  9. Look up Arjun Mehta (Medium): The Seats for "Arjun Mehta" (use a lookup on column A).
  10. Total value (Hard): Sum of D times E for all rows.
  11. Share of Basic (Hard): Share of D2:D11 that is "Basic", rounded to 3 decimals.
  12. Rank of row 2 (Hard): Rank of D2 among D2:D11 (largest = 1).
  13. Above average? (Hard): "Above" if E2 is above the average of E2:E11, else "Below".