Generating invoice numbers using excel [reader questions]

Share

Facebook
Twitter
LinkedIn

Michelle, Who is a sweet lady and regular reader of the blog sent me this question via e-mail. (aside: why is she a sweet lady? Because she saw the new cell post and sent me pics of her son and told Jo and me are about to encounter most amazing experiences of our lives 🙂 )

I handle the invoices we give to our customers (we build and sell furniture), but sometimes such customers can be stores or just regular folks that come directly to us.

For the stores I have to give an invoice that has a NCF number which is a tax related number that increases the cost in 16% but stores require this number which must be unrepeatable. Each company has a “list” of numbers that they can provide their customers. Regular customers (not stores) have no interest in this number, obviously trying to avoid the 16% increase in the price!

So far what I did was create a database of our customers with the basic info of each one. Many of our customers keep buying so this way I just have to place myself in the invoice and select from a list and with a simple vlookup I get the rest of the customer’s information: phone, address and RNC number.

Now… the RNC is the number that tells me if it’s a store or not. Stores must have their registration number (RNC) in order to receive invoices with NCF (boring, I know… I’m gonna get to the point in a sec). Ok, so if I choose my dear customer “Chandoo Enterprises” and this store has RCN, then I automatically need for the invoice to pull form “my list” of government assigned NCF numbers, the next one in line. If in my previous invoice (say invoice 1455) to another store I used NCF number A010010010100000002 (that’s how they look) for Chandoo Enterprises -invoice #1456- I am going to need the next number in line A010010010100000003 and so on. Now, say that my next invoice (1457) is not to a store but to John Doe, for him I don’t want an NCF number to show.

I keep thinking that there’s a very stupid and simple way to do this but I just can’t nail it!! My problem is to get to a formula that will work only when the RNC field has information and therefore avoiding NCF numbers to appear on non-store customers (not so complicated I think) and that it chooses the next NCF number in line, no repeating… this is the part that I have no idea how to do!! Is there a way to solve this without using VBA? VBA is scary!! Hehehe

Okay, that is a big question, but may be we can come up with a small solution for it.

Invoice Numbers in ExcelIf I understand it correct, Michelle is looking for something like this:

So, in order to generate such numbers,

  1. First we will make 2 named ranges – customer_list and ncf_numbers. You know what they mean.
  2. Now, we will enter the customer name in column B, and based on that we will fetch RNC number in column C.
  3. For this, we will use VLOOKUP () formula. The simplest formula looks like this: VLOOKUP(B5,customer_list,4,FALSE)
  4. But, simplest formula also has problems – it doesn’t handle errors and can return 0 when the RNC number field is blank. So we will add some fat to it, mainly on the front side. It now looks like this: =IF(ISERROR(VLOOKUP(B5,customer_list,4,FALSE)),””, VLOOKUP(B5,customer_list,4,FALSE))
  5. In the third column, we will fetch the next available NCF number if the customer has an RNC. For this, we use a simple IF() and COUNTIF() formulas along with INDEX() formula. We write: =IF(OR(C5=””,C5=0),””,INDEX(ncf_numbers,COUNTIF($C$5:C5,”RNC*”))).
  6. Above formula simple fetches the nth NCF number from the named range ncf_numbers if RNC number is not blank.
  7. That is all.  We now have a simple logic to generate invoice numbers that suit tax authority’s whims and fancies.

Download the example workbook:

You can download the excel tutorial workbook and see how you can generate such invoice numbers yourself.

More material if you are getting stuck with formulas

50+ Excel Formulas – Explained in plain English, Excel formula tutorials, Excel array formula examples

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

13 Responses to “Convert fractional Excel time to hours & minutes [Quick tip]”

  1. Debraj Roy says:

    Hi Purna..

    Again a great tip.. Its a great way to convert Fractional Time..
    By the way.. Excel has two great and rarely used formula..

    =DOLLARFR(7.8,60) and =DOLLARDE(7.48,60)

    basically US Account person uses those to convert some currency denomination.. and we can use it to convert Year(i.e 3.11 Year = 3 year 11 month) and Week(6.5 week = 6 week 5 days), in the same manner...

  2. Jason says:

    This doesn't work for me. When applying the custom format of [h]:mm to 7.8 I get 187:12

    Any ideas why?

    • Hui... says:

      @Jason
      7.8 in Excel talk means 7.8 days
      =7.8*24
      =187.2 Hrs
      =187 Hrs 12 Mins

      If you follow Chandoo's instructions you will see that he divides the 7.8 by 24 to get it to a fraction of a day

      Simple, assuming the fractional time is in cell A1,

      Use below steps to convert it to hours & minutes:

      1. In the target cell, write =A1/24
      2. Select the target cell and press CTRL+1 to format it (you can also right click and select format cells)
      3. Select Custom from “Number” tab and enter the code [h]:mm
      4. Done!

  3. WhoKnows says:

    Hi, sorry to point this out but Column C Header is misspelt 'Hours Palyed'

  4. abhishek malik says:

    good one

  5. Julia says:

    So how do I go the other way and get hours and minutes to fractional time?

    • Chandoo says:

      If you have 7.5 in cell A1,

      - Use int(A1) to get the hours.
      - Use mod(A1,1)*60 to get minutes.

      If you have 7:30 (formatted as time) in A1

      - Use hours(a1) to get hours
      - Use minutes(a1) to get minutes.

      • Paula says:

        I had the same issue. You can solve it by changing the format as described above:

        Right click cell > Format Cells > (In Number tab) > Custom > Then enter the code [h]:mm
        ([hh]:mm and [hhh]:mm are nice too if you want to show leading zeros)

        • Jack Scarce says:

          Thanks guys, these are the tips I'm looking for.
          ...dividing the number of minutes elapsed by the percent change is my task - "int" is the key this time

  6. Srikanth says:

    It doesnt work for greater than 24 hours
    It returns 1:30 for 25.5 hours. It should have returned 25:30

    Ideally I would right function as
    =QUOTIENT(A1,1)&":"&MOD(A1,1)*60

    • Paula says:

      Sorry, replied to wrong comment....

      ----
      I had the same issue. You can solve it by changing the format as described above:

      Right click cell > Format Cells > (In Number tab) > Custom > Then enter the code [h]:mm
      ([hh]:mm and [hhh]:mm are nice too if you want to show leading zeros)

  7. Daniel says:

    Clever use of MOD here to extract the decimal part of a number. Divide a number containing a decimal by 1 and return the remainder. Humm. Very clever.

  8. Tomer says:

    Thanks very much, extremely useful !

Leave a Reply