在较大的文本字符串中查找特定文本

在较大的文本字符串中查找特定文本

我正在 Windows 10 上的 Excel 2016 中开发个人财务预算和现金流应用程序,需要帮助开发一组公式:

  1. 从与该类型交易的相应行标签标题匹配的较长文本字符串中提取特定短语(当然,一次一个)。
  2. 根据相关交易的匹配行标签和交易描述,对所有类似交易进行小计。

我创建了“行标签”作为一种手段,以帮助将银行交易与适当的预算类别联系起来。我的数据来源是现金流电子表格和从我的金融机构下载的交易(XL 格式)。以下是我确定的有关银行交易描述的一些标准:

  1. 所需短语的长度根据交易类型和交易实体的不同而不同。
  2. 与特定实体的所有交易都在整个文本字符串的某个位置包含精确的短语。
  3. 标识字符串可以出现在描述字符串中的任何位置(几乎就像随机的一样)。
  4. 并非所有交易描述都以与以下示例相同的字符开头。
  5. 由于任何给定短语的首字母可能是单独短语的首字母,因此尝试使用 FIND 来识别和分类多个交易可能会导致不同的交易被错误地分组在一起并进行小计。

以下是一些交易及其描述以及我试图将交易与之匹配的相应行标签的示例。敏感数据已被删除,并且两个描述字符串的总长度不同。

FORD MTR            Withdrawal ACH FORD MTR CHGO TYPE: ONLINE PMT ID: XXXXXXXXX

BANK OF AMERICA     Withdrawal ACH BANK OF AMERICA TYPE: ONLINE PMT ID: XXXXXXXXX

INFINITE ELECTRIC   Online Payment XXXXXXXXXX To INFINITE ELECTRIC

如果我能找到一种方法将类似的交易绑定到其适当的行标签,我相信我可以使用 SUMIF 或类似函数的形式来对预算工作表中每个行标签的类似交易进行小计。我想我已经提供了足够的信息,但是……如果需要更多信息,请告诉我。提前非常感谢。

答案1

也许最优雅的解决方案是编写一个利用正则表达式模式匹配的 VBA 函数,这样您就可以传递行标签的值并返回交易类型或其他相关详细信息。如果您不习惯这种方法,或者更喜欢使用 Excel 公式,那么您可以通过为要解析的每种交易类型(提款、付款、存款、转账等)设置列来实现。然后,您必须确定每种交易类型需要解析哪些数据。然后,您可以使用 Excel 的文本公式(SEARCH、FIND、MID 等)来解析出您想要的内容。

例如,如果你想从退出类型交易,假设实体始终在行标签中跟随“提款”一词,则您的公式将是(行标签中的A10):

=IF(ISERR(SEARCH("提款",A10,1)),"",MID(A10,SEARCH("提款",A10,1)+LEN("提款")+1,FIND(":",A10,1)-LEN("提款")-2))

类似的公式可用于解析付款 ID 或其他类型的行标签。

相关内容