Поиск по значению GoogleSheet обусловлен приблизительным соответствием - PullRequest
1 голос
/ 14 апреля 2020

Надеюсь, вы справляетесь с заключением, где бы вы ни были.

У меня возникли некоторые трудности с операцией GoogleSheet, которую я хотел бы выполнить, и не могу найти подходящего решения в Интернете.

Я собираюсь сравнить значения (десятичные числа) в столбцах в двух отдельных таблицах (я назову столбец таблицы 1, столбец A и столбец таблицы 2 C) и получить соответствующее значение ячейки в другом столбце второго таблица (таблица 2, столбец E). Кроме того, поиск также обусловлен соответствующей датой (месяцем) значений в обеих таблицах (в столбце B таблицы 1 и столбце D таблицы 2). Я пришел сюда с простой формулой INDEX (MATCH ()), примененной ко всем строкам таблицы 1 листа:

=index(table2!A:E;match(A1&month(B1);table2!C:C&month(table2!D:D);0);5)

Суть в том, что значения в A и C иногда не совсем одинаковы, они могут иметь небольшую разницу в десятичных числах, но я все еще хочу, чтобы совпадение работало. Я пытался использовать STDEV(X;Y)<0,1 внутри INDEX (MATCH ()) или использовать такую ​​формулу IF(AND(X<=Y+0,1;X>=Y-0,1), но безуспешно.

Пожалуйста, дайте мне знать, если у вас есть предложения по выполнению эффективный поиск с двумя условиями с приблизительным соответствием для одного из них? (У меня есть базовые c знания функций QUERY, если это тоже можно сделать с помощью этого.)

Надеюсь, я был достаточно ясен. Большое спасибо!

1 Ответ

0 голосов
/ 14 апреля 2020

Вместо Roundup и Rounddown использование Round и Abs работало для меня.

Не работает последовательно.

 = index($F$2:$H;match(ROUNDDOWN(-$B2;1)&month($A2);ROUNDDOWN($G$2:$G;1)&month($F$2:$F);0);3)

Это работало для меня. =index($F$2:$H;match(ROUND(abs($B2);1)&month($A2);ROUND($G$2:$G;1)&month($F$2:$F);0);3)

Посмотрите, работает ли это для всех ваших данных. Возможно, вам придется включить условие if, если значения могут быть отрицательными / положительными в вашей левой таблице.

Без условия условие также может работать -

index($F$4:$H;match(ROUNDup(abs($B4);$B$1)&month($A4);ROUNDup(abs($G$4:$G);$B$1)&month($F$4:$F);0);3)
...