如何在目标matrix中使用通配符匹配文本
我想将交易types分配给信用卡交易列表。 types取决于每个事务的描述,这是一个文本值。 我使用INDEX
MATCH
来查找从事务描述到types映射的描述索引表中的types。
这是问题:我想避免描述索引表中非常类似的条目列表。 我已经有超过十个条目包含子string“亚马逊”。 因此,我考虑在MATCH
使用通配符,以便包含子string“amazon”(或类似)的所有事务映射到相同的types。 不幸的是, MATCH
仅在search值中支持通配符,而不是在目标matrix中。 因此,维护使用通配符匹配模式的描述索引表似乎是不可能的。
可以这样做吗?
考虑下面的示例表。 我想匹配Description
与Pattern
来findType
。
交易表
| Description | Amount | |-------------------|--------| |Amazon Merchant XY | 100.00 | |Amazon online //> | 89.99 | |Amazon.com | 32.64 |
查找表
| Pattern | Type | |-----------|--------------| |*amazon* |Shoping | |*itunes* |Entertainment |
以下是您的解决scheme:
=INDEX($F$2:$F$3,MAX(ROW($A$1:$A$2)*IF(ISERROR(FIND($E$2:$E$3,A2)),0,1)))
这需要inputCtrl + Shift + Enter而不是Enter 。
它适用于以下设置:
说明
IF(ISERROR(FIND($E$2:$E$3,A2)),0,1)
循环遍历查找表,并创build一个1和0的数组,取决于在A2的情况下是否在stringA2中find查找值,数组将是{1,0}
将这个string乘以ROW($A$1:$A$2)
有效地为您提供INDEX
函数可以使用的行位置: {1,0}*{1,2} = {1,0}
不是A4的情况下,我们会有这样的事情: {0,1}*{1,2} = {0,2}
所以采取这个MAX
给你的数字1或2取决于哪一个string被发现,你可以使用它作为正常的INDEX
函数。 请注意,使用MAX
函数意味着如果您有多个匹配项,它将在列表中取最低的匹配项。