Sorting Text in Excel using Formulas

Share

Facebook
Twitter
LinkedIn

Sorting text is such a day to day activity that it always surprises me why Excel hasn’t provided a simple spreadsheet formula for doing it. Of course you can use the sorting menu command (menu > data > sort) but this requires manual steps (or VBA). Most of the times we get raw textual data from various sources and we need it to be sorted. While fooling with the COUNTIF() formula, I have realized a powerful yet little known feature that can be exploited to sort text using formulas.

sorting-text-using-excel-formulas

We all know that countif() can be used to find the number of cells in a given range matching a criteria. But do you know that you can use COUNTIF() to find the number of cells in a range greater than or less than a particular value?

Well, that is the trick to sorting text. How?

For eg. assume range A1:A10 has c,b,d,f,h,j,e,a,i,g in them. When you write =countif(a1:a10,"<c") you will get 2 as the result.There are 2 cells with value less than “c”. In other words, the sort order of “c” in the given cells is 3 (since it has 2 cells less than “c”)

You can use this on your own list to fetch the alphabetical sort order of each text value like this:

excel-countif-sorting-text-formulas

Essentially the sort order formula looks like this: =countif(SORT RANGE, "<="&CURRENT CELL)

Once you have the sort order, arranging the cells in that order is a piece of cake. We just use VLOOKUP to do our job, like this: =VLOOKUP(1,SORT ORDER TABLE,2,FALSE). (PS: if you are worried about unique cells, which you should, then use this formula instead, =VLOOKUP(small(SORT ORDER COLUMN,1),SORT ORDER TABLE,2,FALSE)

What the heck is above formula doing? It is running a vlookup on the table containing original cells and their sort order to fetch the cell with sort order 1 (or the smallest sort order). Replace the 1 with 2 to get the next cell in the alphabetical order.

Download the workbook with alphabetical text sorting using formulas and see this in action.

Bonus tip: Instead of rewriting the vlookup formula with 2, 3, 4 as lookup value you can use excel's row() function to generate those running numbers for you. You just need to subtract correct value from the row().

Also read: Shuffling a list of cells in random order using formulas, More analytics / text processing tweaks

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.

8 Responses to “What is LAMBDA? 4 Practical examples to REALLY understand it”

  1. ExcelGeek says:

    Thanks so much for this, it's utterly brilliant!

    Silly question - I assume LAMDA will work with dynamic arrays?

    • Peter Bartholomew says:

      Very much so. Many of the new functions like MAP only make sense in the context of dynamic arrays and Lambda functions.

  2. ALI says:

    As usual, very informative material. Easy to understand and apply!
    Thanks for making everyone awesome!

  3. Sunanda Das says:

    Easy to understand Lambda function through this tutorial. Thanks Chandoo.

  4. Anant says:

    I have Officce 365 (updated), but I can't see LAMBDA function. 🙁

  5. Anant says:

    I dont see "Office Insider" option in my excel 365.

  6. David N says:

    Another option for First Monday...
    =LAMBDA(anydate,WORKDAY.INTL(EOMONTH(anydate,-1),1,"0111111"))

Leave a Reply