Cellwise Start free

Excel guide · 6 min read

How to abbreviate large numbers in Excel (K, M, B)

Quick answerSelect the cells, press Ctrl+1, choose Custom and type 0.0,,"M" to show 1,250,000 as 1.3M, or 0.0,"K" to show 45,300 as 45.3K. Each comma after the digits divides the display by 1,000 while the cell keeps its real value. If you need the short version as text, for a label or a sentence, use =TEXT(B2/1E6,"0.0")&"M".

Sample data

Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.

ABC
1AccountRevenueShort (TEXT)
2Northwind Traders12500001.3M
3Brightpath4530045.3K
4Tidewater Logistics38700000003.9B
5Oakline9999501000.0K
6Fjordsoft-2460000-2.5M
7Corner Cafe820820
8Harbor Freight Co1248000012.5M

Download this sheet as an Excel practice file (.xlsx)

Method 1: a custom number format (best for numbers you still calculate with)

A comma placed after the last digit placeholder in a number format scales the display down by 1,000. Two commas scale by a million, three by a billion. The letter in quotes is just text that is shown after the number. So 0.0,,"M" displays 1,250,000 as 1.3M, and 0.0,"K" displays 45,300 as 45.3K.

Nothing about the value changes. The formula bar still shows 1250000, SUM still adds the full amounts and sorting still works on the real numbers. That is why this is the method to use on any column you total, chart or filter.

Useful variants: $0.0,,"M" for currency ($1.3M), 0,"K" for whole thousands (45K), #,##0.0,"K" to keep a thousands separator on large K values (12,480.0K) and 0.0,,,"B" for billions (3.9B).

  1. Select the revenue cells, B2:B8.
  2. Press Ctrl+1 (Cmd+1 on a Mac) to open Format Cells.
  3. On the Number tab, choose Custom.
  4. In the Type box, type 0.0,,"M" and click OK.
  5. To reuse it later, it now sits at the bottom of the Custom list in this workbook.

One format that switches between K and M

A single code applies one scale to every cell, so 45,300 formatted with 0.0,,"M" shows as 0.0M. Custom formats accept up to two conditions in square brackets, which is enough for a K/M switch: [>=999950]0.0,,"M";[>=999.95]0.0,"K";0. Millions get M, thousands get K, and anything smaller is shown as a plain number.

Two limits come with it. There is no room for a third condition, so billions show as thousands of millions (3870.0M) unless you use a separate B format on those cells. And negative values fail both tests and drop to the last section, so -2,460,000 is not abbreviated. If your column has losses or billions, use the formula in the next sections instead.

The odd-looking 999950 is deliberate. With a cut-off of 1000000, 999,950 would be formatted as K and rounded to 1000.0K. Starting the M section at 999,950 shows it as 1.0M.

Method 2: TEXT, when you need the abbreviation as text

For chart titles, dashboard labels or sentences like "Revenue: $1.3M", build the text with a formula. Divide by the scale first, then let TEXT round to one decimal and add the letter. Excel's TEXT also accepts the comma codes from Method 1 (next section), but dividing makes the formula easier to read and check.

To join it into a sentence: ="Revenue: $"&TEXT(B2/1E6,"0.0")&"M". Keep the original number in its own cell and point the label at it, so the label updates when the figure does.

=TEXT(B2/1E6,"0.0")&"M"

Result: 1.3M

1.3M: 1,250,000 divided by a million is 1.25, which TEXT rounds to one decimal.

The same label with TEXT's comma codes

TEXT understands the scaling commas too, so you can skip the division and hand it the format code from Method 1. Inside a formula the quotes around the letter have to be doubled, because the whole code is already in quotes: "0.0,,""M""" is the code 0.0,,"M".

Both forms give the same text. =TEXT(B3,"0.0,""K""") returns 45.3K, =TEXT(B4,"0.0,,,""B""") returns 3.9B and =TEXT(B8,"#,##0,""K""") returns 12,480K. Pick the divide-first form if other people will edit the sheet, since B2/1E6 says what it does; pick the comma form when you are copying a code you already use as a number format.

=TEXT(B2,"0.0,,""M""")

Result: 1.3M

1.3M, the same result as =TEXT(B2/1E6,"0.0")&"M".

Method 3: one formula that picks K, M or B

When the numbers range from hundreds to billions, let IFS choose the scale by checking the biggest one first. ABS makes the test work on negative values too, so a loss of 2,460,000 still gets M. TRUE as the last test catches everything under 1,000 and shows it as is.

Fill it down beside the numbers and Brightpath shows 45.3K, Northwind 1.3M, Corner Cafe 820 and Fjordsoft -2.5M. IFS needs Excel 2019 or later; in older versions nest IF the same way: =IF(ABS(B4)>=1E9,...,IF(ABS(B4)>=1E6,...)).

=IFS(ABS(B4)>=1E9,TEXT(B4/1E9,"0.0")&"B",ABS(B4)>=1E6,TEXT(B4/1E6,"0.0")&"M",ABS(B4)>=1E3,TEXT(B4/1E3,"0.0")&"K",TRUE,TEXT(B4,"0"))

Result: 3.9B

3.9B for Tidewater's 3,870,000,000. Use "0.00" instead of "0.0" if you want 3.87B.

Rounding and negatives: the cases that look wrong

The rounding trap: Oakline's 999,950 is under a million, so the IFS formula picks K, and 999.95 rounded to one decimal is 1000.0K. Move each cut-off down to the point where rounding reaches the next unit: 999,950 for M, 999,950,000 for B and 999.5 for K. LET keeps the formula readable by naming the value and its absolute size once.

Negatives: TEXT keeps the minus sign, giving -2.5M. For accounting-style brackets, give TEXT a second section for negative numbers: =TEXT(B6/1E6,"0.0""M"";(0.0""M"")") returns (2.5M). The same two-section idea works in a custom number format: 0.0,,"M";(0.0,,"M").

Two format-code details. Put the letter in quotes (or after a backslash, as in 0.0,,\M): an unquoted M or m is read as a month or minute code. And if you try 0.# to drop the trailing .0, Excel shows whole numbers with a dangling decimal point, so 2,000,000 becomes "2.M". Stick with 0.0 for a consistent look.

=LET(n,B5,a,ABS(n),IFS(a>=999950000,TEXT(n/1E9,"0.0")&"B",a>=999950,TEXT(n/1E6,"0.0")&"M",a>=999.5,TEXT(n/1E3,"0.0")&"K",TRUE,TEXT(n,"0")))

Result: 1.0M

1.0M for Oakline's 999,950 instead of 1000.0K. The same formula still returns 12.5M for Harbor Freight and -2.5M for Fjordsoft.

Which to pick: format or TEXT

A number format changes only what you see. A TEXT result is text, so Excel stops treating it as a number. Column C holds the TEXT versions, and SUM ignores text completely. Sorting goes wrong too: text sorts character by character, so 12.5M lands above 3.9B and 45.3K, and 820 ends up last.

Use a custom number format on every cell you calculate with, sort or chart. Use TEXT only for display text built from a number. For chart axes you often need neither: in Format Axis > Axis Options, set Display units to Thousands or Millions, and Excel scales the axis and adds a units label.

=SUM(C2:C8)

Result: 0

0: every value in column C is text, so SUM finds nothing to add. =SUM(B2:B8) on the real numbers works.

Common mistakes

Using TEXT on the data column itself

The results are text, so totals return 0 and sorting is alphabetical. Keep the numbers and apply a custom format like 0.0,,"M" instead.

Rounding that shows 1000.0K

Values just under a million round up within the K unit. Start the M cut-off at 999,950 in the formula or in a conditional format.

Testing the size without ABS

-2,460,000 is less than 1,000, so a plain B2>=1E6 test treats a large loss as a small number. Test ABS(B2) instead.

Commas that do nothing on a different computer

The scaling character is your system's thousands separator. In versions that use a period as the separator, such as many German or Dutch setups, the code uses periods where this guide uses commas.

FAQ

How do I show numbers in millions in Excel?

Press Ctrl+1, choose Custom and type 0.0,,"M" (or $0.0,,"M" for currency). The two commas divide the display by a million; the stored value does not change.

How do I format numbers as thousands with a K?

Use the custom format 0,"K" for whole thousands or 0.0,"K" for one decimal. 45,300 shows as 45K or 45.3K.

Does formatting numbers in millions change the value?

No. A number format only changes the display. The formula bar shows the full number and every calculation uses it, so totals stay exact.

How do I turn 1.3M text back into a number?

You can strip the letter and multiply, as in =LEFT(C2,LEN(C2)-1)*1E6, but the rounding is permanent: 1.3M gives back 1,300,000, not 1,250,000. Keep the original numbers and build labels from them.

Can one format show K, M and B?

Not fully. A custom format allows only two conditions, so you can switch between K and M but not add B in the same code, and negatives are not abbreviated. For all three, use the IFS formula.

Functions used

Related guides

Updated