0

我正在为 java 使用谷歌电子表格 API v4。

我的电子表格看起来像这样 -

    User    Message       Time
--------------------------------

    User1    My Message    10:30
    User2    User2 msg     3:40
    User3    User3 msg     1:30
    User2    User2 msg       
    User4    User4 msg     4:00 

我想用用户 'User2' 和时间银行(空值)查找行索引。之后,我想使用此行索引在该行中添加时间值。是否可以在不知道范围或索引的情况下逐行搜索单元格值?

在上面的示例中,它应该只返回倒数第二行索引,因为它与条件匹配(User='User2' 和 Time='')。甚至更好的是,是否有任何查找和替换 API,它将查找行条件(User='User2' 和 Time='')并将时间值从 '' 替换为 '3:30'?

我浏览了谷歌文档,但找不到我需要的文档。谢谢。

编辑:

我找到了一个公式来查找需要更新的单元格地址。

=ADDRESS(MATCH("User2",A1:A4000),3)

例如在这个问题中使用,这个公式将返回 '$C$4' 地址,这是预期的。我通过手动评估电子表格中的这个公式来测试这个。有没有办法使用 Google 电子表格 API V4 使用 Java 代码评估这个公式?

4

1 回答 1

1

我认为您想使用查找功能的组合: https ://support.google.com/docs/topic/3105472?hl=en&ref_topic=3046366

特别是, MATCH 可以让您在某个范围内获得所需值的位置偏移量,因此您可以获得 column1 中包含值“User2”的单元格的偏移量,而 OFFSET 可以让您检查单元格 2 列中的值以找到的单元格的右侧,它将为您提供要比较的时间列中的值。从那时起,您还将检查该事物的单元格坐标,然后您可以分配一个新值。这些查找函数允许您找到其余部分所需的范围或索引。

这只是为您提供了一种方便的方法来为您的其他函数预先计算某些值,以便您的脚本可以直接访问工作表内置函数输出的值。它不必让您的工作表脚本对一个值的范围进行排序,但逻辑是相同的。1) 获取 Column1 的范围 2) 在 Column1 的范围内搜索值 'User2' 3) 如果匹配,检查 offset(0,2) 以获取单元格引用右侧 2 个空格并询问其单元格引用。4) 如果该引用为空,则为其分配一个时间戳。

如果你想要这个代码,我会花更长的时间来整理。

于 2017-10-12T12:14:58.703 回答