# Categorize bank transactions in Excel

`=HUNCH.PICK` reads a raw transaction description like `AMZN Mktp US*2K3LH0` and returns one budget category from the list you give it. Amounts and dates never touch the formula; they stay exactly where they are, in ordinary Excel columns and formulas.

Updated 28 September 2026. Source: https://hunchsheet.app/formulas/categorize-bank-transactions-excel

## The formula

```
=HUNCH.PICK(A2:A11, "groceries|dining|transport|software and subscriptions|shopping|travel|fees and interest|other", "What budget category does this transaction belong to?")
```
In Google Sheets: `=HUNCHPICK(A2:A11, "groceries|dining|transport|software and subscriptions|shopping|travel|fees and interest|other", "What budget category does this transaction belong to?")`

Point it at the description column from your bank or card export, the one full of merchant codes and reference numbers. The formula reads the merchant name inside the noise and ignores the rest.

## Write categories that match your statement

Bank exports repeat the same handful of merchants every month once you have shopped somewhere twice, so the category list only needs to cover the kinds of spending you have. Add a description after a colon for anything your team might disagree on, such as `shopping: retail purchases, not groceries or dining`, so a bookstore and a supermarket do not land in the same bucket.

## Real outputs

Ten lines pulled from a small business card statement, with the model's answers as returned on 28 September 2026.

| Transaction description | Category |
| --- | --- |
| AMZN Mktp US*2K3LH0 | shopping |
| UBER *TRIP HELP.UBER.COM | transport |
| TST* CORNER BISTRO | dining |
| WHOLEFDS MKT 10345 | groceries |
| NETFLIX.COM | software and subscriptions |
| CHASE CREDIT CRD AUTOPAY | fees and interest |
| SQ *GREENLEAF CAFE | dining |
| DELTA AIR 0062134872 | travel |
| OVERDRAFT FEE | fees and interest |
| PAYPAL *MISCSHOP | shopping |

Nine of the ten land where you would expect, including two dining rows from different card processors, `TST*` and `SQ *`, both read correctly past the point-of-sale prefix to the merchant behind it. The one worth questioning is `CHASE CREDIT CRD AUTOPAY`: the model puts it under fees and interest, but a credit card autopay is usually money moving to pay the bill, not a fee at all. That is what happens when a category list has no transfer option: the model picks the closest label on the list instead of telling you none of them fit. Add a ninth option, such as `transfer: moving money between your own accounts, not a purchase`, and the same row would likely land there instead.

## Keep the math in Excel, not in the question

Hunch does not read the amount column and cannot compare dates, so leave both jobs to formulas that already do them well. Once column B holds a category, a normal SUMIF gives you spend by category for the statement:

```
=SUMIF(B2:B11, "dining", C2:C11)
```

A PivotTable on columns B and C turns the same output into a monthly report, and a plain filter on `category = "other"` is where to look first when a total does not add up. An "other" row means the description did not clearly match any category you gave it.

> Tip: Keep the exact same category list every month. Change one word in the list and last month's column is no longer comparable to this month's, even though both still look like a category.

## Limits

- The model reads the description text only. Amount, date, account and card-last-four stay in their own columns and their own formulas.
- Descriptions from different banks vary in format, but merchant names inside them are usually legible enough for a category pick.
- One credit per categorized row. Blank cells and exact duplicate descriptions inside one column are free, which matters here since the same merchant repeats often.
- Transaction text passes through to compute the answer and is not stored by Hunch.

## Setup in three steps

1. Sideload the add-in from [hunchsheet.app/excel](https://hunchsheet.app/excel).
2. Save your key once: `=HUNCH.SETKEY("hunch_...")`, then delete the cell.
3. Paste your exported description column into A2 and fill the formula down to match.

## See also

- [HUNCH.PICK reference](https://hunchsheet.app/docs/hunchpick) for the full argument list.
- [Text classification in Excel](https://hunchsheet.app/formulas/classify-text-excel), the general pattern behind this guide.
- [AI formulas in Excel](https://hunchsheet.app/formulas/ai-formulas-excel), an overview of all four formulas.

## Questions

### Does it use the transaction amount to decide the category?

No. The formula only sees the text you give it. If you want amount-aware rules, such as anything under $5 being a fee, add a normal IF alongside the category column.

### Which banks or card exports does this work with?

Any export with a description column: a CSV from a bank portal, a card statement PDF pasted into a sheet, or an export from accounting software. The formula only needs the merchant text in a cell.

### What happens to transactions that do not fit any category?

They come back as other, as long as other is in your list. Filter that column and either add a category for the pattern you find or leave the rare ones as they are.

### Is my transaction data stored anywhere?

No. Cell text passes through to compute the answer and is not stored by Hunch. Details are on the [privacy page](https://hunchsheet.app/privacy).

### Can I reuse the same categories across several months of statements?

Yes, and you should. Keep the category list identical between months so a pivot across the whole year groups correctly, and only categorize the new rows each time; the old ones stay cached.

