标签: importrange

9
推荐指数
1
解决办法
8254
查看次数

如何制作应用程序脚本以立即允许访问 Google 电子表格中的所有导入元素?

我必须使用谷歌电子表格。我正在使用一些模板电子表格,它们都包含很多指向其他电子表格的链接。问题是,每当我复制模板电子表格以使用大部分链接(使用 importrange 函数创建)时,我都需要再次授予它们访问权限 在此处输入图片说明

我想要做的是制作一个脚本,让我可以一次性导入所有链接。我试图制作一个应用程序脚本,但我找不到任何方法来访问带有“允许访问”按钮的文本框,以便我可以制作我的脚本。我的问题是:有没有办法以编程方式访问“允许访问”按钮?或者有没有其他方法可以解决我的问题并允许一键访问所有链接?

google-sheets google-apps-script importrange

7
推荐指数
1
解决办法
6630
查看次数

如何允许通过应用脚本访问importrange功能?

当您在电子表格中手动输入importrange函数时,您会收到一个弹出窗口,并且必须“允许访问”。弹出以允许访问importrange

但是,我试图找到一种通过脚本执行此操作的方法,因为我正在创建许多电子表格,每个电子表格都带有query-importrange函数(我“拥有”要导入数据的电子表格)。对于我来说,有太多东西无法通过弹出窗口手动“允许访问”并更新该功能以包括查询功能。

因此,我正在应用程序脚本中寻找一个函数调用,该函数调用可以执行与弹出窗口相同的操作。下面的代码段示例。

有人知道可以“允许访问”的功能吗?斯特凡

// create new spreadsheet file
...
var ss = createSpreadsheet(fileName);
var spreadsheet = SpreadsheetApp.open(ss);
var sheet = spreadsheet.getSheetByName("Sheet1");

// Add student as Viewer
spreadsheet.addViewer(studentEmail);

// Add ImportRange function 
var sheet = spreadsheet.getSheets()[0];
var cell = sheet.getRange("A1");
var filter = "select * where Col3='" + studentEmail + "'";
var qry = '=QUERY(importRange("' + fileKey + '","14-15S2!A1:AE");"' + filter + '";1)';
cell.setValue(qry);
// I need a function to 'allow access' here, so the function can be allowed access. …
Run Code Online (Sandbox Code Playgroud)

javascript google-sheets google-apps-script importrange

6
推荐指数
3
解决办法
7189
查看次数

IMPORTRANGE 功能不会刷新链接的 Google 工作表中的新条目

添加链接的电子表格后,我的 IMPORTRANGE 函数不会使用新数据刷新。相反,每当我想查看新信息时,我都必须再次剪切和粘贴所有公式。

我正在使用新版本的 Google 表格,我知道在使用 IMPORTRANGE 功能发布此表格时存在一些问题。

我目前有 24 列要导入的数据,原始电子表格会随着链接到表单而不断增长。这是我使用 IMPORTRANGE 的主要原因,因为它有助于保持原始电子表格以最大速度工作。

我想知道的是,有没有其他人遇到过这样的问题,如果有,是否有任何解决方法(在应用程序脚本/另一个功能中)?在最坏的情况下,是否有一个应用程序脚本可以清除电子表格并在打开/单击菜单时重新输入所有公式,因为每次创建新条目时更新每一列真的很痛苦。

编辑 -如果更改任何内容,我尝试导入的几乎所有单元格都是在原始电子表格中制​​定的- 编辑

google-sheets google-apps-script google-forms importrange

6
推荐指数
1
解决办法
2万
查看次数

如何使用Google电子表格中的ImportRange函数强制重新计算单元格?

我有一个电子表格目标,它使用ImportRange从另一个电子表格源获取一些数据,如

A6 = query(ImportRange("mykey", "Weekly!B:BI"), CONCATENATE("select * WHERE Col1='",B3,"'"), 0)
Run Code Online (Sandbox Code Playgroud)

select子句用于子选择与B3中的值匹配的数据 - 如果更改此单元格值,则"立即"更新导入.

如果有人在源电子表格中更改某些内容,我希望能够强制更新,以便我们在"立即"中看到它反映在目标中.目前这只发生在"一些未指定的时间之后",这一时间长达一分钟左右,而且对于我的目的来说太慢了.

更新:

根据下面的答案和评论,我在Source中添加了一个函数UpdateTarget,该函数从on edit trigger*调用:

function UpdateTarget() {
  try {
    var ss = SpreadsheetApp.openById("targetID");
  }
  catch(err)
  {
    Browser.msgBox(err);
  }
  var sheet = ss.getSheetByName("Weekly");
  sheet.getRange("A4").setValue("=query(ImportRange("sourceID", "Weekly!B:BI"), CONCATENATE("select * WHERE Col1='",B3,"'"), 0) ");
  SpreadsheetApp.flush();
}
Run Code Online (Sandbox Code Playgroud)

这似乎更有效,但我可能有一个脚本,如果我沿着这条路线走下去,将更新的值直接写入目标.

我真的希望Target成为其他用户可以复制的模板,并且可以从主源中提取特定的"实时"数据,我不愿意在Source中实现需要在添加新目标时进行维护的脚本.

我认为我真正需要的是一种重新陈述公式的方法,这取决于可以编辑的单元格并触发重新计算 - 但是对结果没有影响?

(*旁白:我发现openByID函数返回"Action not allowed"异常,除非通过显式触发器调用 - onEdit禁止编辑其他电子表格 - 请访问https://developers.google.com/apps-script/understanding_triggers).

google-sheets google-apps-script importrange google-sheets-formula

5
推荐指数
1
解决办法
8957
查看次数

使用importrange将多个电子表格合二为一

我找到了这个主题的多个主题,没有人回答我的问题.

问题:我想将多个电子表格的数据汇总到一个电子表格中.

  • 电子表格1有一行字符串A2:A500
  • 电子表格2有一行字符串A2:A500
  • 电子表格3应该有两行(Spreadsheet1!A2:A500和Spreadsheet2!A2:A500).

不应以不同方式处理重复项.我希望它们看起来像它们出现在不同的纸张中一样频繁.

问题:是否可以在不编写脚本或使用jQuery的情况下执行此操作?例如,使用IMPORTRANGE?

什么行不通:我尝试使用IMPORTRANGE如下:

ARRAY{IMPORTRANGE("key-of-spreadsheet1","list!A2:A500"), IMPORTRANGE("key-of-spreadsheet2", "list!A2:A500")}
Run Code Online (Sandbox Code Playgroud)

这会导致错误.

谢谢您的帮助.

google-sheets array-formulas importrange google-sheets-formula

5
推荐指数
2
解决办法
3万
查看次数

忽略空单元格的导入范围函数

我想从另一个 Google 工作表导入一个范围,但要忽略空单元格,以便数据背靠背打印(相对于导入空单元格会产生很大的间隙)。这是我的公式(为了保密而更改了 Google 链接):

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/dalsfjasfdjjasfd/edit#gid=76574001",
 "Course_Schedule!F2:F77")
Run Code Online (Sandbox Code Playgroud)

换句话说,大约结果的导入范围是: 空白单元格、空白单元格、25、43、空白单元格

当我希望它是: 25, 43

google-sheets google-query-language google-sheets-query importrange google-sheets-formula

5
推荐指数
1
解决办法
1万
查看次数

查询返回错误无法解析函数 QUERY 参数 2 的查询字符串:NO_COLUMN

我目前正在使用以下电子表格

https://docs.google.com/spreadsheets/d/13KfjUhWSB-BjGyC1G8f8i8o4SPd1kFFLkjN7D6VY8Lk/edit#gid=993210576

在其中,我使用 IMPORTRANGE 从另一个工作表导入数据,并编写一个 QUERY 来将 B 列中的单元格(对应于特定零件编号)与导入工作表的 D 列中找到的相应切割数量相匹配。我写的查询如下。

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1kFK-ZW8QjtsLYY5twdoMNTdqobGNWIV8nAFBRdouE28/edit#gid=473793446", 
 "FABRICATION LOG!A78169:K"), "Select Col3 where Col4 = "&B3&" limit 1", 0)`
Run Code Online (Sandbox Code Playgroud)

并返回错误消息:

无法解析函数 QUERY 参数 2 的查询字符串:NO_COLUMN:WFR332703

我已将 ImportRange 用于上面链接的电子表格的sheet1 中链接到的工作表,并允许访问,因此不存在错误。

Sheet1 用于显示 IMPORTRANGE 返回的值,以便我可以手动查找我期望获得的值。现在,对于其中一些单元格,我预计不会获得值,因为这些单元格不会出现在我要导入的工作表中。但对于其他人,我期待一个数值,但不会返回。我怀疑这可能与数据类型之间不匹配有关,因为 b 列中的条目都是字母和数字,但这只是一种预感,没有实际事实支持。如果有人有任何建议,我们将不胜感激。

google-sheets google-query-language google-sheets-query importrange google-sheets-formula

5
推荐指数
1
解决办法
4万
查看次数

将字符串转换为 Google 电子表格中的公式

我\xc2\xb4d 花了 10 多个小时阅读并尝试不同的选项,但没有成功。

\n

我有这个字符串(这实际上是其他公式生成的字符串)

\n
QUERY({IMPORTRANGE(A1;$D$1);IMPORTRANGE(A2;$D$1);IMPORTRANGE(A3;$D$1);IMPORTRANGE(A4;$D$1)};"select Col13, sum(Col1), sum(Col2), sum(Col3), sum(Col4), sum(Col5), sum(Col6), sum(Col7), sum(Col8), sum(Col9), sum(Col10), sum(Col11), sum(Col12) group by Col13";0)\n
Run Code Online (Sandbox Code Playgroud)\n

我希望它被理解为一个公式。\n例如我尝试这个函数:

\n
function doConvert(formula) {\n  // Strip leading "=" if there\n  if (formula.charAt(0) === '=') formula = formula.substring(1);\n  return eval(formula);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但我得到:

\n
\n

错误/语法错误:Falta ":" detr\xc3\xa1s del ID de propiedad。

\n

(在英语中,属性 ID 后面缺少“:”。

\n
\n

任何其他解决方案都会很棒。

\n

google-sheets google-apps-script google-sheets-query importrange google-sheets-formula

5
推荐指数
1
解决办法
9248
查看次数

触发函数和importrange

我有一个谷歌应用程序脚本,将谷歌表单中提交的信息与使用importrange函数带入谷歌电子表格的信息进行比较.如果我手动运行该脚本,但如果它从表单提交触发器运行,它会报告它没有使用importrange从单元格中获取正确的信息.有没有办法绕过这个,就像我可以添加一个快速功能强制导入范围更新?我已经尝试添加最多10分钟的等待时间,但它没有改变结果.

谢谢

triggers google-sheets google-apps-script importrange

3
推荐指数
1
解决办法
3185
查看次数

IMPORTRANGE中的VLOOKUP

我在Google电子表格上尝试此功能但没有成功,以便在vlookup后收集表格中的值:

=importrange("otherurl";cell("address";vlookup(value("201608"),"All_nodevice!$A$16:$C$1000",2,false)))
Run Code Online (Sandbox Code Playgroud)

我得到一般错误.importrange是否支持这种功能?

- 编辑 - 为了提供更多细节,我需要做的是从左侧值为201608的另一张纸的ceil中提取数据.由于importange想要一个12美元的ceil指针,我想做了以下的步骤:

  1. 用查找值搜索
  2. 将结果转换为ceil指针

希望以这种方式更加清晰.

google-sheets gs-vlookup google-sheets-query importrange google-sheets-formula

2
推荐指数
1
解决办法
2万
查看次数

向下拖动IMPORTRANGE的公式,将最后一个值改为增量值

我在 Google 表格中有一个 IMPORTRANGE 公式,并希望将其应用到下面的其余单元格中。当我向下拖动公式时,它保持不变:

=importrange("1jhXCPi6RUf8MD7XoYgQsH-E0x768UtVxE3XY_kBrbkE","OCT!F2")
Run Code Online (Sandbox Code Playgroud)

如何拖动公式并使其自动增加值(OCT!F2应更改为OCT!F3up to OCT!F118)?

当我把这个公式拖下来的时候,我希望它是这样的。

=importrange("1jhXCPi6RUf8MD7XoYgQsH-E0x768UtVxE3XY_kBrbkE","OCT!F3")
Run Code Online (Sandbox Code Playgroud)

google-sheets importrange google-sheets-formula

2
推荐指数
1
解决办法
1万
查看次数

ARRAY_LITERAL,数组文字缺少一行或多行的值

我正在根据其他 19 个 Google 表格的数据制作一份报告。我正在使用QUERY,但我对此有点陌生,不确定我做得是否正确。

我正在尝试使用下面的内容,但似乎以某种方式给出了上述错误。我找不到解决方法。

=QUERY({
 IMPORTRANGE("1TRKveEBEitHDkos3WX0pPI6WUVL1gHMzdIkeB6s-dJc", "Data!A1:DL");
 IMPORTRANGE("1FONS-hdcUXnLj4UMAsixLL1CVNfL_WdxMbs68ylsyaU", "Data!A1:DL");
 IMPORTRANGE("1pE4O-rO5Fg-AmjMGQlb_m2KbeMV1ZT4ylaE5qfT_aaQ", "Data!A1:DL");
 IMPORTRANGE("1fMyrxa3rxec_8CMOsl2qbLFqht8Z2_SjvShT-WJ-ld8", "Data!A1:DL");
 IMPORTRANGE("1SC8E_0Qg9zurGwl0NsisQZO1gJyimMLXvCxRaPrqjic", "Data!A1:DL");
 IMPORTRANGE("1rtRAf7T2lY_f_R95-L9B4Mn4sn2a9oVHLour-iJfNMM", "Data!A1:DL");
 IMPORTRANGE("1UhBnBRiqPWf444Eyk26hwTEg27ErNvCE2bviRdikLCI", "Data!A1:DL");
 IMPORTRANGE("1AVr4ZMOcTBCkUkI6AaO73B0N8AeiEWyHwhyt56iJYPo", "Data!A1:DL");
 IMPORTRANGE("1n4p51IPq7m4wgjJiMTHZCKDnoR5udxIwUGY1mgJ6kNo", "Data!A1:DL");
 IMPORTRANGE("1tomsqwtJE60j-AAmt5yWFmvHunQQYjVuQmPz0tAmx-s", "Data!A1:DL");
 IMPORTRANGE("1gsyd7m867UkX20Ueha4EqSc6Uc4pSzwc-fe-gYxey5c", "Data!A1:DL");
 IMPORTRANGE("1KjUVM8nkO0pfJrSed-laSzDAu8S-amPkg6cqSRYWQ2I", "Data!A1:DL");
 IMPORTRANGE("1m2MV6VY7sb3zBTuoEQZWJHTxo7moDKtYV-PYJTnES38", "Data!A1:DL");
 IMPORTRANGE("1p9dAD60KjpsOp69OBQazeg9ktzTWvtbjXLfzmMUHNLk", "Data!A1:DL");
 IMPORTRANGE("15V2rMfnbk5UEPeUa6MtaD8ljm-xbmXBM2WzZrUhDzVU", "Data!A1:DL");
 IMPORTRANGE("1DevNq8TbkDhVBkeHPegaHpxaNgvlGtPZExzueN8cpyk", "Data!A1:DL");
 IMPORTRANGE("1sXQABwo5NXiz166cruJM5Is4JWKVXzoYS3hh6IcXVj4", "Data!A1:DL");
 IMPORTRANGE("1sOBkqGVKl6xn89uRvN-TLlU1TFMJUxD_s8TgmowkLK8", "Data!A1:DL");
 IMPORTRANGE("1t8CdrQiJq1h15OIlF5yaRy1AxHyZ_mnEzfSUDEyPSM8", "Data!A1:DL")},
 "SELECT Col85,Col86,Col87,Col88,Col89,Col90,Col91,Col92,Col93,Col94,Col95,Col96,Col97,Col98,Col99,Col100,Col101,Col102,Col103,Col104,Col105,Col106,Col107,Col108,Col109,Col110,Col111,Col112,Col113,Col114,Col115 
  WHERE Col85 IS NOT NULL")
Run Code Online (Sandbox Code Playgroud)

google-sheets array-formulas google-sheets-query importrange google-sheets-formula

1
推荐指数
1
解决办法
1万
查看次数