0

J'utilise google spreadsheet API v4 pour java.Comment faire une recherche dans l'index des lignes à l'aide de la valeur de la cellule

ma feuille de calcul ressemble à quelque chose comme ça -

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 

Je veux trouver index de ligne avec l'utilisateur « User2 » et la banque du temps (valeur vide). Après cela, je voudrais utiliser cet index de ligne pour ajouter la valeur de temps dans cette rangée. Est-il possible de rechercher des valeurs ligne par cellule sans connaître la plage ou l'index?

Dans l'exemple ci-dessus, il ne devrait me renvoyer que le second index de la dernière ligne car il correspond aux critères (User = 'User2' et Time = ''). ou mieux encore, existe-t-il une API de recherche et de remplacement, qui trouvera les critères de ligne (User = 'User2' et Time = '') et remplacera la valeur Time de '' à '3:30'? Je suis passé par google docs, mais je ne pouvais pas trouver un selon mes besoins. Merci.

Edit:

J'ai trouvé une formule pour trouver l'adresse de cellule qui doit être mis à jour.

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

Par exemple utilisé dans cette question, cette formule retournera l'adresse '$ C $ 4', ce qui est attendu. J'ai testé cela en évaluant cette formule dans une feuille de calcul manuellement. Est-il possible d'utiliser l'API V4 de la feuille de calcul Google pour évaluer cette formule à l'aide du code Java?

+0

@anonymous rabbit J'utilise google-api-services-sheets v4 pour java – rsnhah

Répondre

1

Je pense que vous voulez utiliser une combinaison de fonctions de recherche: https://support.google.com/docs/topic/3105472?hl=en&ref_topic=3046366

En particulier, MATCH vous permet d'obtenir une position décalée de la valeur que vous voulez dans une gamme, vous pouvez donc obtenir le décalage les cellules de la colonne 1 contenant les valeurs 'User2', et OFFSET pourrait vous permettre de vérifier la valeur dans les colonnes de la cellule 2 à droite de la cellule trouvée, ce qui vous donnerait la valeur dans la colonne Time à comparer. Depuis lors, vous avez également vérifié les coordonnées de la cellule, vous pouvez alors attribuer une nouvelle valeur. Ces fonctions de recherche vous permettent de trouver la plage ou l'index dont vous avez besoin pour le reste. Cela vous permet simplement d'avoir certaines valeurs précalculées pour vos autres fonctions afin que votre script puisse accéder directement aux valeurs générées par les fonctions intégrées des feuilles. Cela évite d'avoir à faire trier votre script de feuilles dans une plage pour une valeur, mais la logique est la même. 1) Obtenir la plage pour Colonne1 2) Plage de recherche de la Colonne1 pour la valeur 'Utilisateur2' 3) En cas de correspondance, vérifier le décalage (0,2) pour obtenir la référence de cellule 2 espaces vers la droite et demander sa référence de cellule. 4) Si cette référence est vide, assignez-lui un horodatage.

Si vous voulez le code pour cela, il me faudra un peu plus de temps pour mettre ensemble.

+0

Y at-il de toute façon pour évaluer la formule en utilisant le code Java avec google spreadsheet API v4 – rsnhah

+0

Malheureusement, ma propre expérience avec le même problème suggère qu'il n'est pas actuellement possible de se marier les deux API. Peut-être que google pourrait aborder plus tard. Il y a des formules que vous pouvez utiliser dans les expressions de cellule, et il y a des fonctions que vous pouvez appeler dans le script. La meilleure approche que j'ai trouvée est d'utiliser les expressions de cellules pour calculer les valeurs intermédiaires dont vous pouvez tirer parti dans vos scripts.Cela permet simplement de raccourcir certains processus de recherche, mais en fin de compte, vous devrez toujours avoir la même logique efficace. – b4n4n4p4nd4