web-dev-qa-db-fra.com

Rechercher la valeur la plus proche (égale ou supérieure) dans une plage dans Google Spreadsheets

J'ai une plage avec une liste de valeurs (profondeurs). J'aimerais pouvoir sélectionner la ligne où la profondeur correspond à une valeur dans une cellule que je fournis. Si aucune valeur ne correspond, la valeur la plus élevée doit être sélectionnée.

Voici la gamme.

La solution que j’ai trouvée est d’avoir une zone temporaire dans laquelle je retourne l’ordre de la plage, puis j’utilise MATCH pour tirer parti du paramètre de tri -1.

Enfin, j’utilise INDIRECT pour extraire la valeur d’une cellule de la même ligne, mais d’une colonne différente.

=IF(ISNUMBER(A2),INDIRECT("SAC!F"&(MATCH(A2, SAC!$E$1:$E$23, -1))),)

Y a-t-il un meilleur moyen d'obtenir ce résultat?

Exemples:

  • Si la cellule a la valeur 6 (correspondance exacte), j'aimerais obtenir 1,6 (même ligne)
  • Si la cellule a la valeur 10 (pas de correspondance), j'aimerais obtenir 2,2 (arrondir à 12, puis obtenir le facteur)
4
Simone Carletti

Deux options à essayer:

=IF(ISNUMBER(A2),INDEX(SORT(SAC!F:F,SAC!E:E,0),MATCH(A2,SORT(SAC!E:E,SAC!E:E,0),-1)),)

=QUERY(SAC!E:F,"select F where E >= "&A2&" order by E limit 1",0)


Dommage que VLOOKUP n'accepte pas le paramètre de tri -1, sinon cela fonctionnerait:

=IF(ISNUMBER(A2),VLOOKUP(A2,SORT(SAC!E:F,1,0),2,-1),)

6
AdamL

Peut-être quelque chose comme:

=IFERROR(index(B:B,match(F4,A:A,0)),index(B5:B100,match(F4,A4:A99)))  

où F4 contient la valeur 6/10.

1
pnuts