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