我可以缩短这个公式并使其更快吗?

Can I shorten this formula and make it faster?

我有一个 Google Spreadsheet 可以导入我的银行交易。 (这里的语言是荷兰语)

我把这个公式放在单元格 P2 上,这样我就可以对交易进行分类。

=ArrayFormula(IFERROR(IFS(
E2:E="IOB";"Interne boekingen";
E2:E="GEA";"Geldautomaat"; 
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A;
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A;
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A;
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A;
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A;
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A;
REGEXMATCH(F2:F;Instellingen!$B);Instellingen!$A
);""))

所以在选项卡 Instellingen(设置)中,我在 col $B$2 中有正则表达式代码,在 col $A$2 中有描述。

下一个正则表达式代码在 instellingen!$B$3 中,说明在 Instellingen!$A$3 中,依此类推。

我可以缩短这个公式吗?

我在这个 sheet 上有大约 2000 行所以这个公式很慢,我能以某种方式解决这个问题吗?

这是我的 sheet 的精简版:Sheet

您可以编辑 sheet 顺便说一下

这可能不会更短,但会更快:

={"Alias"; ARRAYFORMULA(IF(LEN(A2:A); 
 IF(E2:E="IOB"; "Interne boekingen";
 IF(E2:E="GEA"; "Geldautomaat";
 IFERROR(VLOOKUP(IFERROR(REGEXEXTRACT(LOWER(F2:F); 
 REGEXEXTRACT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(QUERY(LOWER(
 SUBSTITUTE(Instellingen2!B2:B; " "; "♦"))&IF(LEN(Instellingen2!B2:B); "," ; )
 ; ; 999^99); ","; "|"); " "; ""); "♦"; " "); "(.*)\|$")));
 QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♂"&LOWER(TRIM(IFERROR(
 SPLIT(Instellingen2!B2:B; ","))))&"♀"&Instellingen2!A2:A; ; 999^99)); ; 999^99); 
 "♂")); "♀"); "where Col2 is not null"; 0); 2; 0)))); ))}

demo spreadsheet

而且还需要这样列出项目: