2015-08-15 3 views
0

Я пытаюсь объединить столбцы из разных листов Google на основе строк (ID) в одном столбце на обоих листах. Это обычно легко обрабатывается Vlookup, но объем данных, которые у меня есть, заставляет эту функцию останавливаться даже при относительно небольшом объеме данных.Объединить столбцы на основе строк

Я надеялся, что функция QUERY сможет управлять заданием, но У меня возникли трудности с синтаксисом для моего QUERY, и он возвращает необычный результат, который я не могу взломать.

=ArrayFormula(IF(A2:A,(QUERY(ParsedResponses!B2:Q,"select D,E where D matches '"&B2:B&"'")),IFERROR(1/0))) 

Приведенная выше формула, кажется, в соответствии с первым набором строк тонких затем повторяет, что для длины колонны, но не соответствующие строки ряд за рядом, как хотелось бы его !!

Примером моего листа является here. Формула находится в C2 листа 1. Фактический набор данных намного больше (100 столбцов на> 20 000 строк), но этот образец должен продемонстрировать мою проблему.

У меня не было большого опыта написания пользовательских функций, но это было бы хорошим решением для меня, а не для вышеупомянутого подхода?

ответ

0

Я не знаю, если вы пытались ВПР в ArrayFormula, но, возможно, дать этому попытку в E2

=ArrayFormula(if(len(B2:B), IFERROR(vlookup(B2:B, ParsedResponses!D2:E, 2, 0)),)) 
+0

Спасибо за ответ - это была именно формула, что я использовал, однако она занимает более 5 мин для обработки 10 строк данных (около 100 столбцов). Я надеялся найти более эффективное обходное решение, которое можно запустить в разумные сроки. Я не уверен, почему vlookup так много борется с объединением этих данных, но было бы идеально, если бы оно работало в течение нескольких секунд. –

Смежные вопросы