✕
0 / 63

Clean a bank description in Excel

A bank export hides the shop's name inside a longer description. In B2:B9, pull out the merchant as the bank wrote it: the part after the *, up to the / that comes before the city. In C2:C9, make it readable: a space for each underscore, and a capital only at the start of each word, like Bean There Cafe.

TEXTAFTER(A2, "*") keeps what comes after the *, and TEXTBEFORE(…, "/") what comes before the /. One line is a direct debit with no city and no /, and TEXTBEFORE gives #N/A when it can't find its delimiter. SUBSTITUTE(B2, "_", " ") swaps the underscores for spaces, and PROPER fixes the capitals.

44 Clean a bank description TEXTBEFORE, TEXTAFTER, PROPER Advanced

statement.xlsx
Ready

Click a cell while typing to insert it, drag to select a range, F4 adds $, Esc cancels.

Tap a cell while writing a formula to insert it, or slide across cells for a range. The strip above the keyboard has = ( ) : , $.

The TEXTBEFORE, TEXTAFTER, PROPER guide

Bank exports bury the merchant in a longer line: POS 0412 *BEAN_THERE_CAFE/LEEDS. TEXTBEFORE(TEXTAFTER(A2, "*"), "/") cuts out the name, and PROPER(SUBSTITUTE(B2, "_", " ")) turns it into Bean There Cafe.

AdvancedAbout 3 minutesBy Updated

Find the markers, not the positions

The lines don't line up: "POS 0412" is shorter than "CONTACTLESS 0398", so MID(A2, 11, 15) works for some rows and cuts the others in the wrong place. Look for something that is always next to the name. Here the name always follows a *, and a / comes before the city.

TEXTAFTER and TEXTBEFORE

=TEXTBEFORE(TEXTAFTER(A2, "*"), "/")

The inner part keeps everything after the *, "BEAN_THERE_CAFE/LEEDS". The outer part keeps everything before the /. Both work in Excel for Microsoft 365 and Excel for the web.

The line with no city

A direct debit such as DD *BRIGHTWATER_ENERGY has no /, and TEXTBEFORE returns #N/A when it can't find its delimiter. Three ways around it:

Without TEXTBEFORE

In older versions, use MID with FIND. The name starts one character after the * and stops one before the /:

=MID(A2, FIND("*",A2)+1, FIND("/",A2&"/") - FIND("*",A2) - 1)

The A2&"/" does the same job as match_end. The same pattern splits names in the first and last name challenge.

Make it readable

SUBSTITUTE(B2, "_", " ") swaps every underscore for a space. PROPER then puts a capital at the start of each word and makes the rest small. PROPER has quirks: "AND" becomes "And", and "MCDONALD" becomes "Mcdonald". Fix those by hand or with another SUBSTITUTE.

Common mistakes

FAQ

How do I extract text between two characters in Excel?
Use =TEXTBEFORE(TEXTAFTER(A2,"*"),"/") in Excel 365, or MID with FIND in older versions: =MID(A2,FIND("*",A2)+1,FIND("/",A2)-FIND("*",A2)-1).
Why does TEXTBEFORE return #N/A?
The delimiter isn't in that cell. Set match_end to 1 (the fifth argument) so the end of the text counts as the delimiter, or wrap the formula in IFERROR.
How do I replace underscores with spaces in Excel?
Use =SUBSTITUTE(A2,"_"," "). It replaces every underscore; add a fourth argument to replace only one of them.
How do I capitalize the first letter of each word?
Use =PROPER(A2). It also makes the other letters small, so check names such as McDonald afterwards.

All challenges

  1. 01Starter, 3 min Add it upSUM
  2. 02Starter, 3 min Find the averageAVERAGE
  3. 03Starter, 3 min Smallest and largestMIN, MAX
  4. 04Starter, 3 min Count what's thereCOUNT, COUNTA, COUNTBLANK
  5. 05Starter, 3 min Write once, fill downRelative references
  6. 06Core, 3 min Lock it with $Absolute references
  7. 07Starter, 3 min Percent of a totalPercentages
  8. 08Starter, 3 min Make the numbers readableNumber formats
  9. 09Core, 3 min Up or down by how much?Percent change
  10. 10Core, 3 min What you see vs what's storedROUND
  11. 11Core, 3 min The typical valueMEDIAN
  12. 12Core, 3 min Select to the end in one moveCtrl + Shift + arrow
  13. 13Starter, 3 min Sort without breaking rowsSort
  14. 14Starter, 3 min Filter to what mattersFilter
  15. 15Starter, 3 min Copy and paste a formulaCtrl+C, Ctrl+V
  16. 16Core, 3 min Paste values onlyPaste Special → Values
  17. 17Core, 3 min Highlight what's over targetConditional formatting
  18. 18Core, 3 min Spot the duplicatesDuplicate Values rule
  19. 19Core, 3 min Pass or fail?IF
  20. 20Core, 3 min Both or either?AND, OR
  21. 21Core, 3 min Exactly one of the twoXOR
  22. 22Core, 3 min Grade bands with nested IFNested IF
  23. 23Core, 3 min Count the ones that matchCOUNTIF
  24. 24Core, 3 min Add up the ones that matchSUMIF
  25. 25Core, 3 min Use a cell as the conditionCriteria in a cell
  26. 26Core, 3 min Partial matches with * and ?SUMIF, COUNTIF with wildcards
  27. 27Core, 3 min Count with two conditionsCOUNTIFS
  28. 28Core, 3 min Add up with two conditionsSUMIFS
  29. 29Core, 3 min Look it upVLOOKUP
  30. 30Core, 3 min Find the right bracketVLOOKUP approximate match
  31. 31Core, 3 min XLOOKUP, the modern wayXLOOKUP
  32. 32Core, 3 min Where is it in the list?MATCH
  33. 33Advanced, 3 min INDEX and MATCH togetherINDEX + MATCH
  34. 34Advanced, 3 min Lock just the row or the columnMixed references
  35. 35Advanced, 3 min Growth per year (CAGR)CAGR with ^
  36. 36Core, 3 min Use a rate from another sheetReferences to other sheets
  37. 37Core, 3 min Catch the error, not the bugIFERROR
  38. 38Core, 3 min Which invoices are missing?Compare two lists
  39. 39Core, 3 min Reconcile the ledger with the bankXLOOKUP or VLOOKUP + IFNA
  40. 40Core, 3 min Join text together&, CONCAT, PROPER
  41. 41Core, 3 min Split first and last namesLEFT, MID + FIND
  42. 42Core, 3 min Stray spaces that break a countTRIM
  43. 43Core, 3 min Flag the bad entriesTRIM, LEN, EXACT
  44. 44Advanced, 3 min Clean a bank descriptionTEXTBEFORE, TEXTAFTER, PROPER
  45. 45Core, 3 min Mistake hunt: #N/A everywhereFixing #N/A
  46. 46Core, 3 min Mistake hunt: hard-coded numbersReferences instead of typed numbers
  47. 47Core, 3 min Mistake hunt: numbers stored as textNumbers stored as text
  48. 48Core, 3 min One of each, then the totalsUNIQUE
  49. 49Core, 3 min Your first pivot tablePivot tables
  50. 50Advanced, 3 min Which category went up most?SUMIFS, change, lookup
  51. 51Core, 3 min How many days late?Date arithmetic
  52. 52Core, 3 min Turn text into real datesDATEVALUE
  53. 53Advanced, 3 min Month ends and working daysEOMONTH, NETWORKDAYS
  54. 54Core, 3 min Renewal datesEDATE
  55. 55Core, 3 min Days overdue and aging bandsDate difference, aging bands
  56. 56Core, 3 min How many late orders?Pick the tool
  57. 57Core, 3 min Sales per repPick the tool
  58. 58Core, 3 min Whose part is it?Pick the tool
  59. 59Core, 3 min Who gets the bonus?Pick the tool
  60. 60Core, 3 min Each region's sharePick the tool
  61. 61Advanced, 3 min Case: the supplier reportCase, five steps
  62. 62Advanced, 3 min Case: the monthly budgetCase, five steps
  63. 63Advanced, 3 min Case: the reorder listCase, five steps

The whole course, in order.

The challenges teach one move each. The course puts them in order and makes you do each one twice, the second time on data you haven't seen.

$29 One time. No subscription. Early-access price. Get Pro for $29

Secure checkout on Stripe.

  • CourseAll 63 ready lessons in order, plus every one we add. The first 5 are free. Each formula lesson ends with a second round on new data, no hints.
  • TestsYour score on the interview practice tests is free. Pro adds the full report: what went wrong on each task, and the lesson for it.
  • 14 daysNot what you hoped for? Full refund within 14 days, no questions. Refunds

Pro isn't open right now

Checkout is closed for the moment, so nothing was charged. Leave your email and we'll write once when it opens. The price is $29, one time.

One email when Pro opens. Unsubscribe in one click. Privacy

Continue

Sign in or create an account

No password. Your solved challenges then follow you to any device.

Signing in sets one cookie that keeps you signed in. Privacy