Импорт данных между электронными таблицами, где столбец = значение?

Примечание: мой вопрос похож на функцию ImportRange в Googe Spreadsheets.

Возможно ли в таблицах Google или Microsoft Excel импортировать данные на основе значений ячеек?

Например, можно ли скопировать содержимое Sheet1 на другой лист, где столбец B == "foo"?

Цель (Лист1):

введите описание изображения здесь

На листе назначения должны быть скопированы только строки 2 и 4, поскольку они содержат только "foo"

Редактировать:

Для Документов Google я ищу что-то вроде этого:

=ImportRange("spreadsheetkey", QUERY('sheetname'!A6:E10, "SELECT A, B = 'foo'")) Однако я не могу заставить его работать.

3 ответа

Вы можете сделать это так, как вы сказали, но вместо использования запроса в ImportRange вы используете ImportRange в запросе, поэтому:

= QUERY ((ImportRange ("ключ таблицы", "имя листа!A6:E10")), "Выберите номера столбцов, такие как Col1,Col2 и т. Д. Где _Criteria для выбора, например, (B содержит 'foo') порядок, по которому столбец, если вы хотите")

Вам нужно обернуть запрос с помощью importrange внутри него так:

=QUERY(importrange("spreadsheet key","sheetname!A6:E10"), "SELECT A where B='foo'")

Вы могли бы сделать что-то вроде этого:

Сначала в дополнительном столбце (например, столбце D) укажите строки / ячейки, которые нужно скопировать:

range("D" & range("A" & activesheet.rows.count).end(xlup).row).formula= "=IF(B:B=""foo"", NA(),"""")

затем используйте SpecialCells, чтобы выбрать ячейки в столбце A, и B, где столбец D показывает NA#

range("D1:D6").specialcells(xlcelltypeformulas, xlerrors).offset(0,-2).copy
othersheet.range("A1").pastespecial xlpasteall

это должно помочь вам начать работу с кодом

Конечно, вы также можете сделать это без VBA, просто вставьте формулу, используйте F5, диалог SpecialCells...

Вы можете сделать это с помощью функции ФИЛЬТР:

=FILTER(IMPORTRANGE("spreadsheet_url", "'sheet_name'!A6:E10"),
IMPORTRANGE("spreadsheet_url", "'sheet_name'!B6:B10")="foo")