0

我正在使用适用于java的Google电子表格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 

我想找到行的索引与用户“用户2”和时间银行(空值)。 之后,我想使用此行索引在该行中添加时间值。 是否有可能在不知道范围或索引的情况下按单元格值逐行搜索?

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

我通过谷歌文档,但根据我的需要找不到一个。 谢谢。

编辑:

我发现了一个公式来找到需要被更新单元格地址。

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

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

+0

@anonymous rabbit我使用google-api-services-sheets v4 for java – rsnhah

回答

1

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

尤其MATCH让你得到一个位置,你在一个范围内所需的值的偏移量,所以你可以得到补偿列1中包含值'User2'和OFFSET的单元格可以让您检查找到的单元格右侧的单元格2列中的值,这会为您提供Time列中的值以与之比较。从那以后,你也可以检查事物的单元坐标,然后可以分配一个新的值。这些查找功能允许您查找其余所需的范围或索引。

这只是为您提供一种方便的方法,为您的其他功能预先计算某些值,以便您的脚本可以直接访问sheet sheets内建函数输出的值。它节省了必须让你的工作表脚本通过一个值范围进行排序,但逻辑是一样的。 1)获取Column1的范围 2)Column1的值的搜索范围'User2' 3)如果匹配,检查偏移量(0,2)以获得右边的单元格引用2个空格并请求其单元格引用。 4)如果该引用为空,则为其分配一个时间戳。

如果你想要这个代码,它会花更长的时间来放在一起。

+0

有没有办法用google电子表格API v4 – rsnhah

+0

来评估使用Java代码的公式?不幸的是,我自己对同一问题的经验表明,目前不可能结婚这两个API。也许谷歌可能会在稍后解决。您可以在单元格表达式中使用公式,还可以在脚本中调用函数。我发现的最好的方法是使用单元格表达式来计算可以在脚本中使用的中间值。它只是有助于缩短一些搜索处理的时间,但最终你仍然必须发生相同的有效逻辑。 – b4n4n4p4nd4