我有一个每月电子表格,它依赖于上个月的数据。我想动态导入这些值,而不是剪切和粘贴它们。这可能吗?我该怎么办?

评论

顺便说一句,我知道这是有可能的,就像我曾经做过的那样,但是我再也找不到信息或我做的工作表了。如果找到它,我将发布更新。

#1 楼

IMPORTRANGE()似乎是您想要的功能。

从Google电子表格功能列表中:


Google Spreadsheets允许您引用
电子表格中的另一个工作簿
您当前正在使用ImportRange函数进行编辑。 ImportRange
使您可以将一个或多个单元格值
从一个电子表格拉到另一个电子表格。要
创建自己的ImportRange公式,
输入= importRange(spreadsheet-key,
range)。对于使用逗号
进行十进制分隔的语言,请使用
分号代替逗号来
分隔公式中的参数。

Spreadsheet-key是STRING这是
电子表格中的键值
URL。

范围是一个STRING,表示要导入的单元格的
范围,
可选地包括工作表名称
(默认为第一张工作表)。如果愿意,还可以
使用范围名称。

鉴于两个参数是
STRING,则需要将它们用
引号括起来或引用单元格其中包含
字符串值。

例如:

= importrange(“ abcd123abcd123”,“ sheet1!A1:C10”)“ abcd123abcd123”是
目标电子表格的URL上“ key =“属性中的值和
“ sheet1!A1:C10”是希望导入的范围。
br />
= importrange(A1,B1)单元格A1包含字符串ABCD123ABCD123,单元格B1包含sheet1!A1:C10

注意:要使用ImportRange,您需要
需要作为查看器或合作者添加到
,而ImportRange正在从中提取数据。
否则,您将收到以下错误:
“ #REF!错误:找不到请求的电子表格键,工作表标题或单元格
范围。”当然,


“键”是Strin电子表格的网址中的g与key=参数匹配。

我只是通过创建两个电子表格对其进行了测试。在第一个单元格A1中,我放置了一个字符串。在第二个单元格的A1中,我输入=importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1"),它显示了第一个电子表格中的字符串。 (您的键显然会有所不同。)

(该函数的格式可能取决于您的语言环境。在法国,该公式不适用于逗号,因此您需要将其替换为分号:=importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1")

注释:


Google当前为每个电子表格设置了50个“跨工作簿参考公式”的硬限制。来源:Google文档,表格和幻灯片大小限制。 (h / t JJ Rohrer)
“新的” Google电子表格(即将成为标准)删除了50个“跨工作簿参考公式”的50个限制(Google支持)(h / t Jacob Jan Tuinstra)
在“新” Google表格中,您还将整个URL用作密钥(Google支持)(h / tPunchlinern)


评论


@Al:是的!而已!谢谢。

–杰夫·耶茨(Jeff Yates)
2010年7月1日于16:21

+1哇!我没有意识到有一个在线版本。另一个选择是使用Google Apps脚本。创建一个使用SpreadsheetApp.openById([ID])。getRange()的函数,并设置一个本地范围。

–伊文·普莱斯
2012年2月16日在8:09

可能值得注意的是,(每个电子表格?)您最多只能使用其中的50个(Google的硬性限制):support.google.com/drive/answer/37603?hl = zh-CN

– JJ Rohrer
13-10-10在3:34

在新版Google电子表格(很快将成为标准)中,已删除了50个限制:support.google.com/drive/answer/3093340?hl = zh-CN

–雅各布·扬·图恩斯特拉(Jacob Jan Tuinstra)
2014年4月1日在21:58

另外,在新的Google表格中,您将整个URL用作键。此外,当您首次输入该功能时,系统还会提示您授予对所请求工作表的访问权限。

– Punchlinern
15年2月21日在21:10

#2 楼

仅供参考,如果您要引用其他电子表格中的其他工作表,则不应重新引用工作表名称:

使用



=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")

评论


谢谢。您应该将此添加为其他答案的注释,甚至只是编辑该答案。

–studgeek
2013年11月1日19:10

#3 楼

在新界面中,您只需能够在单元格中键入=,然后转到另一页并选择所需的单元格即可。如果要手动执行此操作或使用旧界面,则只需执行=Sheet1!A1,其中Sheet1是工作表的名称,而A1是您关心的工作表上的单元格。这与Microsoft Excel相同。

评论


如果工作表名称中包含空格,请使用“此其他工作表”!

– akira
2010年7月1日在14:35

正如我在问题中所问的,从完全不同的文档中呢?

–杰夫·耶茨(Jeff Yates)
2010年7月1日14:46

@jeff抱歉;您没有在正文中提及“文档”,由于某种原因,在我的脑海中,我以为是“床单”。据我所知,您不能动态链接到另一个文档。但是您可以使用多个工作表,而不是多个文档,这时您可以执行我建议的操作。正是由于这个原因,这就是我经营自己的每月财务的方式。

–本杰明·波拉克(Benjamin Pollack)
2010年7月1日在15:09

没关系:)我知道有一种方法可以完成,因为我实际上是自己完成的,但是我已经忘记了,也找不到我做过的工作表。

–杰夫·耶茨(Jeff Yates)
2010年7月1日在15:31

这无法回答发布的问题-它是在讨论同一文档中的其他工作表。

–布伦丹
18年7月26日在14:52

#4 楼

我使用插入->定义新范围找到了这种语法
引用其他电子表格的范围:

整个列:“名称中带有空格的电子表格”!A:A
整个B栏:“名称中包含空格的电子表格”!B:B

等。
那么您可以将其用作:
=COUNTIF('First Page'!B:B, "valueToMatch")


评论


也可以在电子表格外部引用吗?

–雅各布·扬·图恩斯特拉(Jacob Jan Tuinstra)
2012年12月30日20:11在

@JacobJanTuinstra您是什么意思在电子表格之外?

–汤姆·罗格罗(Tom Roggero)
2012年12月31日13:51

好吧,IMPORTRANGE函数可以从另一个电子表格导入数据。设置范围仅意味着(可能)在电子表格中。那就是我在外面的意思。

–雅各布·扬·图恩斯特拉(Jacob Jan Tuinstra)
2012年12月31日下午14:11

这不能回答发布的问题-只是描述如何引用同一文档中的另一张纸。

–布伦丹
18年7月26日在14:53

@brendan使用IMPORTRANGE就像Jacob所说的。

–汤姆·罗格罗(Tom Roggero)
18年7月29日在3:57

#5 楼

这是我的操作方法(重新实现了'importrange()'):


打开脚本编辑器(“工具”->“脚本”->“脚本编辑器”)
提供这样的功能(不做任何检查,就必须改进,但您已经有了一般的想法):

function REMOTEDATA(inKey, inRange) {

  var outData;  
  var ss = SpreadsheetApp.openById(inKey);

  if (ss) {
     outData = ss.getRange(inRange).getValues();
  }

  return outData;
}



使用此公式在电子表格中:

=SUM(REMOTEDATA("key", "SheetName!A1:A10"))


“ key”是文档的密钥,可以在文档URL的“ key = xyz”参数中找到。

“电子表格服务”的文档提供了有关该主题的更多信息。

评论


自己实现而不使用现有功能的好处是什么?

–杰夫·耶茨(Jeff Yates)
2010年7月1日在16:22

@Jeff Yates:没有,我只是在不知道importrange()的情况下实现了它。运动精神,你知道吗?只是因为我可以:)

– akira
2010年7月1日在18:45



不幸的是,电子表格自定义函数无法再使用SpreadsheetApp.openById()或SpreadsheetApp.openByUrl()->developers.google.com/apps-script/guides/sheets/…打开其他电子表格

– Francesco Vadicamo
16年3月30日在21:11

#6 楼

我通过使用Query进行了非常简单的操作,例如,我有2张工作表ABC和XYZ,我想将A1到C30的范围从Abc导入到XYZ,单击要显示范围的单元格,并编写以下代码:

=QUERY(ABC!A1:C30)

注意:如果工作表名称中包含空格,那么您当然可以这样写:

=QUERY('ABC 1'!A1:C30)

评论


OP询问如何从另一个文档导入单元格。 QUERY可以这样做吗?

– Vidar S. Ramdal
2012年11月6日14:08

@ VidarS.Ramdal可以,但是需要importrange(“ abcd123abcd123”,“ sheet1!A1:C10”)例如= query(importrange(“ abcd123abcd123”,“ sheet1!A1:C10”));-)

–负责人
2014年6月2日18:05