如果有人可以帮助我在谷歌表格上获得这个棘手的功能,我将非常感激。
每次扫描股票时,我都希望在谷歌表格上看到该股票 ID 旁边的时间戳。我正在使用 ESP32 将扫描的 ID (RFID) 发送到 Google Sheets。在我的 Google Sheets 电子表格中,我已经在一列中包含了所有现有的股票 ID。当扫描的 ID 发送到我的电子表格时,我想将这些扫描的 ID 与我的股票清单上的 ID 进行比较,并在股票 ID 旁边分配一个时间戳(如果在该时间段内扫描过)。
这是我想要实现的目标的一个例子。如果 B 列中的 ID 之一与 A 列中的 ID 匹配,则显示当前时间戳,否则不执行任何操作。 (请参阅附图)
2011 年 9 月 24 日 16:00 扫描 5 个 ID 并将其发送到电子表格 第一个扫描的ID
2011 年 9 月 24 日 17:00 扫描 4 个 ID 并将其发送到电子表格 第二个扫描ID
我设法使用应用程序脚本和 for 循环来解决这个问题,但我必须使用“新数据”作为触发器来在新 ID 进入时启动该函数。我认为这导致了一个令人讨厌的循环,并且需要大约 5 秒的时间才能完成返回 C 行每个单元格的值。
通过将单元格 A2 与 B 行的每个单元格进行比较,我也接近使用 google 表格本身来实现这一点,
=IF(OR(A2=B2,A2=B3,A2=B4,A2=B5),"timestamp")
。
不幸的是,
FALSE
覆盖之前的时间戳。如果可能的话,我希望能够单独在谷歌表格上完成此操作。
您可以通过添加两列来做到这一点:
列
D
保存时间戳,显示何时在列 B
中输入值。此列由脚本填充,例如我的 yetAnotherTimestamp_ 脚本。
列
E
通过在单元格 D
中使用以下公式将 A
中的键与 B
中的键进行匹配来查找 E1
中的时间戳:
=arrayformula(ifna(vlookup(A1:A, B1:D, columns(B1:D), false)))