当前位置: 首页 > 知识库问答 >
问题:

如果从其他电子表格-谷歌工作表中找到匹配项,则删除行

阎阳
2023-03-14

如果在电子表格1中找到匹配项,我想从电子表格2中删除任何行数据。在下图(电子表格1)中,我们SKUA10114

在下图(电子表格2)中,您可以看到位于J05A1位置的SKU A10114有2行条目。

因此,代码将仅删除位置J05A1的A10114的两行

如果A10114有不同的位置,它不会被删除

共有1个答案

皇甫德庸
2023-03-14

我相信你的目标如下。

  • 当重新定位工作表中列“A”和“F”的值包含在销售工作表中列“A”和“B”的值中时,您希望删除销售工作表中的行

为此,我想提出以下流程。

  1. 从重新定位工作表中检索值,并创建用于搜索值的对象
  2. 从销售工作表中检索值,并创建一个用于删除行的数组
  3. 删除行

当上述流反映到脚本中时,它将变成如下所示。

function myFunction() {
  const ss = SpreadsheetApp.getActive();
  
  // 1. Retrieve the values from `Relocation` sheet and create an object for searching values.
  const sheet1 = ss.getSheetByName('Relocation');
  const valuesSheet1 = sheet1.getRange("A1:J" + sheet1.getLastRow()).getValues()
  .reduce((o, [a,,,,,f]) => Object.assign(o, {[a + f]: true}), {});

  // 2. Retrieve the values from `Sales` sheet and create an array for deleting the rows.
  const sheet2 = ss.getSheetByName('Sales');
  const valuesSheet2 = sheet2.getRange("A2:B" + sheet2.getLastRow()).getValues()
  .reduce((ar, [a,b], i) => {
    if (valuesSheet1[a + b]) ar.push(i + 2);
    return ar;
  }, []).reverse();
  
  // 3. Delete rows.
  valuesSheet2.forEach(r => sheet2.deleteRow(r));
}
  • 当我在您的共享电子表格中看到您的脚本时,从脚本中的工作表名称中,我认为您的脚本可能与这个问题无关。所以我提出了上面的示例脚本。
  • reduce()
  • deleteRow(行位置)
 类似资料:
  • 我正在尝试从多个google电子表格中删除一个特定的表格。 我有一个主电子表格,从所有其他电子表格收集数据。从主电子表格中,我可以在其他电子表格中执行不同类型的操作,如添加工作表、重命名工作表、隐藏和锁定工作表。 但无法删除其他电子表格中的表格。查看了其他线程,但找不到任何解决方法。 这就是我到目前为止得到的。它停在这一排: "fname.delete表(本周);}" 我很感谢大家对我的帮助,因为

  • 可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV

  • 我有多个谷歌电子表格与预订数据,如预订号码,客户端名称,电子邮件,预订日期等。在所有工作表中,这些列的顺序并不相同。 我想在一个“主”电子表格中更新我所有“源”表中的所有数据。这意味着,一旦添加新行或更新现有行,数据将同步到主电子表格 实现这一目标的最佳方式是什么?Javascript或者是否存在一些现有的Google Sheets插件? 示例表1:快速船预订 示例表2:机场中转预订 主表 非常感

  • 试图复制整个电子表格,但我想没有api可以这样做。 基本上,我正在尝试做以下工作: 有一个电子表格,我想对其进行小的更改。 创建一个新的电子表格,将模板中的所有表格逐个复制到新的电子表格中(电子表格复制会更有效率) 创建新的电子表格工作正常,但从电子表格复制表格不起作用。 尝试了两种方法: 角: 给出以下错误: 对飞行前请求的响应未通过访问控制检查:无“访问控制允许原点” Google Sheet

  • B页中有图表,其中有源数据。我想以这样一种方式将图表导入到主电子表格B中,当图表在表格B中更改时,它也应该在主表格A中动态更改。 经过大量的研究,我能够找到以下内容: Importrange-只导入数据,而不是图表 复制图表本身并将其粘贴到主工作表A,但当图表在工作表B中动态变化时,它不会更改。 发布图表并将URL作为图像插入-如果主表A是google电子表格,则不起作用,但适用于google文档

  • 下面的代码来自这篇文章中关于将行值复制到新工作表(如果它存在于另一个工作表中)的答案。 现在,如果不是将重复值复制到第3页,而是要将它们从第1页和第2页中删除(如果在第3页中存在)。使用相同的电子表格,我有3张表格。将在前两张图纸上进行比较的唯一值是第一列“ID编号”。 给定所有3张表中存在的值,即784 | John Stiple | I.T Department,应删除表1和表2中的相同行值,