Могу ли я сократить эту формулу и сделать ее быстрее? - PullRequest
1 голос
/ 15 мая 2019

У меня есть таблица Google, которая импортирует мои банковские транзакции.(здесь используется нидерландский язык)

Я поместил эту формулу в ячейку P2, чтобы можно было классифицировать транзакции.

=ArrayFormula(IFERROR(IFS(
E2:E="IOB";"Interne boekingen";
E2:E="GEA";"Geldautomaat"; 
REGEXMATCH(F2:F;Instellingen!$B$2);Instellingen!$A$2;
REGEXMATCH(F2:F;Instellingen!$B$3);Instellingen!$A$3;
REGEXMATCH(F2:F;Instellingen!$B$4);Instellingen!$A$4;
REGEXMATCH(F2:F;Instellingen!$B$5);Instellingen!$A$5;
REGEXMATCH(F2:F;Instellingen!$B$6);Instellingen!$A$6;
REGEXMATCH(F2:F;Instellingen!$B$7);Instellingen!$A$7;
REGEXMATCH(F2:F;Instellingen!$B$8);Instellingen!$A$8
);""))

Итак, на вкладке Instellingen (Настройки) у меня есть код регулярного выражения в столбце$ B $ 2 и описание в столбце $ A $ 2.

И следующий код регулярного выражения в instellingen! $ B $ 3 и описание в Instellingen! $ A $ 3 и т. Д.

МожетЯ сокращаю эту формулу?

И у меня есть около 2000 строк на этом листе, так что эта формула очень медленная, могу ли я как-то решить это?

А вот урезанная версия моего листа: Лист

  • Вкладка импорта представляет собой импортированный текст из банка
  • Инстеллинген (настройки) Вот коды регулярных выражений с описаниями
  • Overzicht (Обзор) это формула запроса в A1 и G2 имеет формулу массива

, которую вы можете редактировать листом между прочим

1 Ответ

1 голос
/ 17 мая 2019

это может быть не короче, но быстрее:

={"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)))); ))}

0

демонстрационная таблица

и это также требует, чтобы сделать список элементов следующим образом:

0

...