【发布时间】:2020-01-02 18:36:01
【问题描述】:
我每天都在尝试将数据的子部分从一个谷歌表拉到另一个。拉取是基于日期的,这就是我挣扎的原因。
上下文 - 我有一个“工作簿 1”,每天记录不同 NBA 球队的价格数据。每天都会捕获数据并将其添加到表格的底部(因此最新的价格数据位于底部)。它在 K 列中带有日期标记,=today().. 标题为“Pull Date”。
我有一个单独的工作簿,我们将其称为 NBA 的“工作簿 2”,我想在其中包含来自工作簿 1 的相同价格数据,但仅限于过去 15 天(以使其更加灵活)。为此,我想让脚本每天早上将昨天的值从“工作簿 1”逐渐添加到“工作簿 2”(现在我将手动删除任何超过 15 天的行)。
目的 - 由于 Workbook 1 文件太大(可追溯到几个月前),我已在 Workbook 2 中的表格上构建了一份报告,并进行了为期两周的分析。
问题 - 我有一些来自不相关工作簿的旧代码,我将数据从一张表拉到另一张表,但它不是基于拉取日期的条件。对于此脚本,我希望我的“工作簿 2”工作簿从“工作簿 1”请求数据并将其添加到“工作簿 2”的工作表 1 的底部,但仅适用于包含昨天日期的行(或 =today()- 1)。包含昨天日期的行数是动态的,并且会随着时间的推移而缩小,所以我今天没有像上周那样移动相同的行数。
我的数组有 15 列宽,但行数每天都会变化。以下是我的出发点:
function runOne() {
var ss=SpreadsheetApp.openById('Workbook 1 sheet id');
var tsh=ss.getSheetByName('sheet 1');
???
我不知道如何有条件地提取昨天的数据并使行数动态化。获得正确的值后,我需要将其粘贴到“工作簿 2”中标题为“工作表 1”的选项卡底部。
我对脚本编写的经验很少,因此我们将不胜感激。我试图尽可能地澄清以上内容,但如果需要进一步澄清,请告诉我。
【问题讨论】:
-
您能分享一个指向示例电子表格的链接吗?
-
当然,here you go。这是一个小得多的样本(只有 156 行而不是 18,000 行),但概念和格式是相同的。我已经按拉日期排序。这是工作簿 1(主数据工作簿),但工作簿 1 和 2 的格式相同。工作簿 2 将调用工作簿 1 中的数据。
-
您看过表格
query功能吗?您可以在第一个工作簿的另一张工作表上使用它来过滤源数据。 support.google.com/docs/answer/3093343?hl=en -
共享电子表格的样本副本。
-
@cooper 我在上面的评论中分享了。点击链接。 (忘记标记你了)。
标签: javascript google-apps-script google-sheets