注意:我的问题类似于Googe Spreadsheets的ImportRange功能。
Google Spreadsheets或Microsoft Excel是否可以根据单元格值导入数据?
例如,我可以将Sheet1的内容复制到列B ==“foo”的另一张表中吗?
目标(Sheet1):
目标表只应复制第2行和第4行,因为这些是唯一包含“foo”
的行编辑:
对于Google文档,我期待这样的事情:
=ImportRange("spreadsheetkey", QUERY('sheetname'!A6:E10, "SELECT A, B = 'foo'"))
但我无法让它发挥作用。
答案 0 :(得分:1)
您可以按照您的说法执行此操作,但不是在ImportRange中使用Query,而是在Query中使用ImportRange,因此:
= QUERY((ImportRange(“spreadsheetkey”,“sheetname!A6:E10”)),“选择列号,如Col1,Col2等其中_Criteria用于选择,例如(B包含'foo ')按排序,如果你想要“)
答案 1 :(得分:0)
首先,在一个额外的列(例如,列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对话框......
答案 2 :(得分:0)
您需要使用其中的importrange包装查询,如下所示:
=QUERY(importrange("spreadsheet key","sheetname!A6:E10"), "SELECT A where B='foo'")
答案 3 :(得分:0)
您可以使用FILTER函数来做到这一点:
=FILTER(IMPORTRANGE("spreadsheet_url", "'sheet_name'!A6:E10"),
IMPORTRANGE("spreadsheet_url", "'sheet_name'!B6:B10")="foo")