如何用另一个工作表中的新数据更新现有行?

J·库巴塞克(J. Kubassek)

我有一个包含两个工作表的Google表格(此处为示例)-表单和数据。我已经设置了表单,以便可以手动输入条目,然后单击“更新”按钮,数据将作为新行发送到数据表的底部,并且清除了“表单”字段,为下一个做好准备输入。

我正在尝试更进一步-如果单击UPDATE按钮,并且Part Number字段中包含一个已经存在于数据表A列中的值(这意味着它已经在某个时候输入了),不应添加行,但应使用新提交的数据来更新具有匹配部件号的现有行,而将任何未更改的字段保留为先前的值。

几年前,我已经在Excel中进行了设置并运行良好,但是Google表格完全是一个新的游戏,而且我无法找到有关此功能如何与Google表格一起使用的任何有用信息。

以下代码非常适合添加新数据:

function submitData() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formSS    = ss.getSheetByName("Form");
  var datasheet = ss.getSheetByName("Data");

  var values = [[formSS.getRange("B2").getValue(),
                 formSS.getRange("B3").getValue(),
                 formSS.getRange("B4").getValue(),
                 formSS.getRange("B5").getValue()]];

  datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 4).setValues(values);

  formSS.getRange("B2").clearContent(),
  formSS.getRange("B3").clearContent(),
  formSS.getRange("B4").clearContent(),
  formSS.getRange("B5").clearContent();

}

如何更新此代码,以使在表单工作表中提交的所有现有零件号更新数据表中的相应行,而不是将其作为新行输入?

日本PV

看看是否可行

function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form");
var dataSheet = ss.getSheetByName("Data");

var values = formSS.getRange("B2:B5").getValues().reduce(function(a, b) {
    return a.concat(b)
});
var partNum = values[0];
var row;
dataSheet.getDataRange().getValues().forEach(function(r, i) {
    if (r[0] === partNum) {
        row = i + 1
    }
})
row = row ? row : dataSheet.getLastRow() + 1;
var data = dataSheet.getRange(row, 1, 1, 4).getValues()[0].map(function (el, ind){
  return el = values[ind] ? values[ind] : el;
  })
dataSheet.getRange(row, 1, 1, 4).setValues([data]);
formSS.getRange("B2:B5").clearContent()
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用另一个JFrame中的数据更新JFrame?

来自分类Dev

如何更新从另一个表中的一个表删除的行?

来自分类Dev

更新另一个表中hstore列中的现有行

来自分类Dev

SQL-根据另一个表条目将新行插入到现有表中

来自分类Dev

如何用另一个表中的另一个值更新mysql列?

来自分类Dev

在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

来自分类Dev

MySQL:从另一个表中的值“修补”表中的现有数据

来自分类Dev

如何使用另一个表中的数据更新Python中的Oracle表

来自分类Dev

将新数据追加到另一个工作表中

来自分类Dev

使用来自SQL Server中另一个表的ID更新现有表的新外键列

来自分类Dev

如何根据另一个参考列中的数据值填充或更新Excel工作表中的列值

来自分类Dev

如何用另一个数据框更新一个熊猫数据框(更新旧数据并添加新数据)

来自分类Dev

如何更新NULL外键并在另一个表中引用同一键的新行?

来自分类Dev

如何基于另一个长度不同的另一个数据框的值在现有数据框上创建新列

来自分类Dev

如何通过查询另一个表中的数据选择一个表中的所有行

来自分类Dev

如何用另一个表中的数据(计算得出的)填充SQL列

来自分类Dev

如何更新一个表中的行,而另一个表中有重复项

来自分类Dev

如何用另一个数据集中的行替换Excel中的行

来自分类Dev

如何用另一个表的所有列的相同数据类型创建一个表?

来自分类Dev

如何用另一个表中的另一个值更新mysql列?

来自分类Dev

在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

来自分类Dev

如何将另一个表中的数据插入具有自动递增ID的现有表中?

来自分类Dev

需要更新另一个工作表中的数据EXCEL

来自分类Dev

在Excel中查找在另一个工作表中没有对应行的行

来自分类Dev

如何用另一个数据表更新一个数据表?

来自分类Dev

如何从另一个工作表自动更新一个工作表?

来自分类Dev

根据条件更新列并为每次更新在另一个表中创建一个新行

来自分类Dev

如何使用Doctrine更新另一个表中删除行的表行?

来自分类Dev

从另一个数据库导入表创建新表而不是将数据附加到现有表中

Related 相关文章

  1. 1

    如何用另一个JFrame中的数据更新JFrame?

  2. 2

    如何更新从另一个表中的一个表删除的行?

  3. 3

    更新另一个表中hstore列中的现有行

  4. 4

    SQL-根据另一个表条目将新行插入到现有表中

  5. 5

    如何用另一个表中的另一个值更新mysql列?

  6. 6

    在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

  7. 7

    MySQL:从另一个表中的值“修补”表中的现有数据

  8. 8

    如何使用另一个表中的数据更新Python中的Oracle表

  9. 9

    将新数据追加到另一个工作表中

  10. 10

    使用来自SQL Server中另一个表的ID更新现有表的新外键列

  11. 11

    如何根据另一个参考列中的数据值填充或更新Excel工作表中的列值

  12. 12

    如何用另一个数据框更新一个熊猫数据框(更新旧数据并添加新数据)

  13. 13

    如何更新NULL外键并在另一个表中引用同一键的新行?

  14. 14

    如何基于另一个长度不同的另一个数据框的值在现有数据框上创建新列

  15. 15

    如何通过查询另一个表中的数据选择一个表中的所有行

  16. 16

    如何用另一个表中的数据(计算得出的)填充SQL列

  17. 17

    如何更新一个表中的行,而另一个表中有重复项

  18. 18

    如何用另一个数据集中的行替换Excel中的行

  19. 19

    如何用另一个表的所有列的相同数据类型创建一个表?

  20. 20

    如何用另一个表中的另一个值更新mysql列?

  21. 21

    在Excel中,如何有条件地剪切一行数据并将其永久移动到另一个工作表?

  22. 22

    如何将另一个表中的数据插入具有自动递增ID的现有表中?

  23. 23

    需要更新另一个工作表中的数据EXCEL

  24. 24

    在Excel中查找在另一个工作表中没有对应行的行

  25. 25

    如何用另一个数据表更新一个数据表?

  26. 26

    如何从另一个工作表自动更新一个工作表?

  27. 27

    根据条件更新列并为每次更新在另一个表中创建一个新行

  28. 28

    如何使用Doctrine更新另一个表中删除行的表行?

  29. 29

    从另一个数据库导入表创建新表而不是将数据附加到现有表中

热门标签

归档