Regex 根据Google工作表中的选项列表替换单元格内容

Regex 根据Google工作表中的选项列表替换单元格内容,regex,google-sheets,google-sheets-formula,array-formulas,gs-vlookup,Regex,Google Sheets,Google Sheets Formula,Array Formulas,Gs Vlookup,多年来,我一直在使用一个很长的公式来帮助我实现我在这里要问的问题 基本上,每个月我都会下载我的信用卡对账单,并使用一系列公式进行汇总,以便更好地导入我的会计软件。我的公式所做的是读取每行中的描述,并根据该行的内容重写该描述 例如:在我的信用卡中,它可能会说“星巴克大街”,因此它会在列表中查找该信息,如果它找到“星巴克”,它会(在配方奶粉所在的单元格中)重写为“咖啡”。 因此,我得到的是: Column B > Original Description from Credit Card St

多年来,我一直在使用一个很长的公式来帮助我实现我在这里要问的问题

基本上,每个月我都会下载我的信用卡对账单,并使用一系列公式进行汇总,以便更好地导入我的会计软件。我的公式所做的是读取每行中的描述,并根据该行的内容重写该描述

例如:在我的信用卡中,它可能会说“星巴克大街”,因此它会在列表中查找该信息,如果它找到“星巴克”,它会(在配方奶粉所在的单元格中)重写为“咖啡”。 因此,我得到的是:

Column B > Original Description from Credit Card Statement
Column F > Keyword to be found
Column G > New description
问题是我使用了一个IF Search公式,该公式必须与该列表的大小一样长。它是可行的,但我想知道它是否可以简化。另一个“问题”是我不能使用arrayformula,因此将公式放在电子表格的顶部,它将扩展到整个语句

下面是一个例子:

有什么想法吗?

试试:

=ARRAYFORMULA(PROPER(IFNA(VLOOKUP(REGEXEXTRACT(PROPER(B2:B); 
 SORT(TEXTJOIN("|"; 1; PROPER(G2:G)); 1; 0)); G2:H; 2; 0); B2:B)))

在这里查看其他问题时,我找到了一个公式,至少可以使用Regexmatch在列表中查找关键字,它会显示它是真是假(匹配)。这是一个步骤,现在我需要使用匹配来替换文本。我在E列的电子表格中添加了它。
=ARRAYFORMULA(REGEXmatch(LOWER(B2:B);LOWER(TEXTJOIN(“|”;1;G2:G)))
还有一步。我成功地将数组公式与regexmatch一起使用,并复制了我最初使用的公式。它仍然很长,但至少我可以在上面使用数组公式,而不需要将公式复制到所有行。太棒了!:)非常感谢!