Импорт данных между электронными таблицами, где столбец = значение?
Примечание: мой вопрос похож на функцию 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")