在 Excel 中对银行交易进行分类

Mat*_*att 5 excel array-formulas

我有一个 Excel 格式的银行交易导出列表,我想尽可能快速、简单地对其进行分类。我怀疑仅使用数组公式就可以做到这一点,但 VBA 函数同样有用。

场景

我的电子表格标题如下所示:

| A    | B           | C      | D        |
==========================================
| Date | Description | Amount | Category |
------------------------------------------
Run Code Online (Sandbox Code Playgroud)

日期、描述和金额均由我的银行预先填写。我在 D 列中填写每笔交易的类别。

这很好,但很耗时,因为每个类别都必须单独手动输入。

需求

我希望根据动态生成和应用的规则,在我未输入手动类别的行中自动填充类别。

我想要的输出如下所示:

| A        | B             | C       | D           | E         | F           |
==============================================================================
| Date     | Description   | Amount  | Manual cat. | Rule      | Auto cat.   |
------------------------------------------------------------------------------
| 04/08/12 | Starbucks NYC |  -$5.42 | Coffee      | starbucks | Coffee      |
| 04/09/12 | Wal-Mart 468  | -$54.32 | Supermarket | wal-mart  | Supermarket |
| 04/10/12 | Starbucks SF  |  -$3.68 |             |           | Starbucks   |
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我已在 D 列中输入“手动”类别。无论我在何处执行此操作,我都会在 E 列中输入分类“规则”。然后 Excel 使用我的条目自动填充 F 列,

逻辑很简单:

  • 当我输入手动类别时,Excel 会执行两件事:

    1. 在 F 列中填充我的手册类别。
    2. 使用 E 列中输入的文本创建规则。
  • 当 Excel 遇到包含我的规则之一中使用的文本的描述时,它会填充 F 列中的相关类别。

好处

这将使快速浏览交易列表、添加类别和相关规则变得非常简单。没有类别的交易将在规则适用的情况下自动填充,在规则不适用的情况下留空。可以纠正应用了给出错误类别的规则的交易,并提供新规则。

迄今为止我最好的尝试

我创建了一种仅使用公式来执行此操作的方法,但它具有三个缺点:

  1. 它需要创建与事务一样多的列。
  2. 没有方便的方法来列出类别和相关规则。
  3. 无法更改规则的应用顺序。

Ton*_*ore 0

我对信用卡账单做了类似的事情。我使用 VBA 是因为我发现描述不一致并且需要不同的技术来对它们进行分类。

我使用的方法是有一个工作表,我称之为规则,其中包含:

Organisation     Category
Starbucks NYC    Coffee shop
Starbucks SF     Coffee shop
Wal-Mart 468     Supermarket
Run Code Online (Sandbox Code Playgroud)

注意,我每个分支都有一行。如果您经常旅行但缺乏一致性,就别无选择,这是一种痛苦。

在声明的 D 列中,我输入=VLOOKUP(B2,Rule!A:B,2,FALSE)并复制下来。

每个月都有新组织被分类为“#N/A”。我要么输入一次性分类,要么将组织添加到工作表规则中。