Копировать строку, если Sheet1 A содержит часть Sheet2 C

Итак, я пытаюсь вытащить данные подряд с отдельного листа (лист2!), если часть столбца А имеет дату, которая находится на листе1! С1.

Col A ex: «Сборка 251, пятница, 12 июня, 03:03:49 2015»

Col C1 ex: «Пт, 12 июня» (дата меняется каждые пару дней)

Я пробовал эти формулы, но они не работают. Ошибки, которые я получаю, «завершены безрезультатно»; "фильтр ошибок имеет несоответствующие размеры диапазона"; "Колонка А отсутствует"; "ошибка синтаксического анализа формулы"

=filter("'GitHub-Changelog'!A", ("'GitHub-Changelog'!A" = 'x64 RSS Data'!C2))

=QUERY('GitHub-Changelog'!A:F,"select * where A contains '(TRANSPOSE(" "&C1:C&" "))'")

=FILTER('GitHub Changelog'!A,MMULT(SEARCH(TRANSPOSE(" "&'x64 RSS Data'!C1:C&" ")," "&'GitHub-Changelog'!A1:A&" "),SIGN(ROW('GitHub-Changelog'!A1:A))))

Я не уверен, почему я не получаю результатов, дата указана в A. Если я использую этот =QUERY('GitHub-Changelog'!A:F,"select * where A contains 'Fri Jun 12'"), он печатает одну строку, по какой-то причине он просто не читает C1; и мне нужно, чтобы он был динамическим, чтобы соответствовать всем изменениям C1.

* Настоящая будущая идеальная цель - сравнить Лист1!C с Листом2!A, если часть A содержит C, а затем скопировать всю строку (Лист2!A:F) в одну ячейку (Лист1!E). В духе IF Sheet2!A contains sheet1!C1 then copy (sheet1!E=Sheet2!D&C&B, но я считаю, что для этого нужно написать полный сценарий, поэтому я пока не уверен, как это сделать, но научусь; по одному (просто подумал, что поделюсь лучшей версией того, чего я пытаюсь достичь).

Вот лист, над которым я работаю: https://docs.google.com/spreadsheets/d/1lPOwiYGBK0kSJXXU9kaQjG7WNHjnNuxy25WCUudE5sk/edit?usp=sharing. Он извлекает несколько страниц на разных листах, а затем очищает страницы данных. План состоит в том, чтобы иметь лист обновлений, который ищет в журнале изменений информацию о дате текущей сборки и помещает эти данные рядом со сборкой. Таким образом, на последнем листе будут показаны самые последние изменения сборки + фиксации для этой ночной сборки. Вот где эта функция используется, чтобы очистить журнал изменений за ту же дату.


person hakarune    schedule 13.06.2015    source источник


Ответы (2)


Посмотрите, работает ли это:

=query('GitHub-Changelog'!A:F; "where A contains '"&C1&"' ")

где C1 (на том же листе, что и формула) — это ячейка, содержащая дату (например, пятница, 12 июня).

person JPV    schedule 13.06.2015
comment
Так что мне не нужно select* в формуле, просто запрос? - person hakarune; 14.06.2015
comment
Вот лист, над которым я работаю: https://docs.google.com/spreadsheets/d/1lPOwiYGBK0kSJXXU9kaQjG7WNHjnNuxy25WCUudE5sk. Он извлекает несколько страниц на разных листах, а затем очищает страницы данных. План состоит в том, чтобы иметь лист обновлений, который ищет в журнале изменений информацию о дате текущей сборки и помещает эти данные рядом со сборкой. Таким образом, на последнем листе будут показаны самые последние изменения сборки + фиксации для этой ночной сборки. Вот где эта функция используется, чтобы очистить журнал изменений за ту же дату. - person hakarune; 15.06.2015
comment
Я не могу открыть этот файл. Можете ли вы добавить ссылку в свой пост? - person JPV; 15.06.2015
comment
Добавил ссылку в пост. Не знаю, почему это не работает в комментариях - person hakarune; 16.06.2015
comment
Привет, значение в D1 является числовым значением. Попробуйте преобразовать его в текст следующим образом: =query('GitHub-Changelog'!A:F, где A содержит '&to_text(D1)&' ) - person JPV; 16.06.2015

Вам не нужно окружать диапазон знаком «».

Кроме того, вы можете использовать Find() в своем фильтре, чтобы проверить, присутствует ли эта дата в строке.

Вот рабочая формула фильтра:

=FILTER('GitHub-Changelog'!A:F, Find('x64 RSS Data'!C1,'GitHub-Changelog'!A:A))
person Akshin Jalilov    schedule 16.06.2015