Associer 2 formules (RechercheV et Grande Valeur)

Résolu
Bonjour,

Je possède un tableau avec en colonne A des dates (du 1er au 30 du mois), en deuxième colonne des durées (variant entre 80 et 200 durées par jour).

J'aimerais créer une formule de ce type:
Cherchant la grande valeur n°1 dans les jours du mois allant du 1er au 5 (sur une semaine précise, où le jour débutant la semaine serait défini dans une case de référence).
Cherchant la grande valeur n°2 dans les jours du mois allant du 1er au 5
Cherchant la grande valeur n°3 dans les jours du mois allant du 1er au 5
...

Les fonctions RechercheV et GRANDE.VALEUR seraient appropriées mais je ne vois pas comment les agencer.

Merci d'avance

7 réponses

Résumé de la discussion

Le sujet porte sur l’extraction des n plus grandes valeurs sur plage, avec des dates en colonne A et des durées en colonne B, sur les jours 1 à 5 définis par référence. Plusieurs contributions proposent d’utiliser GRANDE.VALEUR associée à RECHERCHEV pour cibler le rang recherché sur une plage de dates, mais des difficultés d’alignement et d’erreurs freinent la mise en œuvre. La solution validée repose sur une formule utilisant SOMMEPROD avec GRANDE.VALEUR, et ajustements tolérants via SIERREUR pour éviter les #N/A lorsque les numéros de semaine manquent. En pratique, la clé est la robustesse de la plage de données et la gestion des valeurs manquantes, ce qui peut nécessiter l’usage de SIERREUR et l’adaptation de DECALER.

Bobot (l’IA à votre service)
  1. Bon on reprend avec quelque chose de plus simple.

    En colonne A les numéros de semaines
    En colonnes B des durées

    Sachant que le nombre d'entrées par n° de semaine est variable (entre 200 et 700), il faut mixer la formule GRANDE.VALEUR et RECHERCHEV pour un n° de semaine ciblé mais je n'y arrive pas.
    2
    1. Contributeur
      Bonjour
      pas tout compris, mais si vos dates sont en A et la valeur à ressortir en B

      =RECHERCHEV(GRANDE.VALEUR(A:A;1);A:B;2;0)

      ou limiter les champs aux hauteurs utiles:

      =RECHERCHEV(GRANDE.VALEUR(A1:A10;1);A1:B10;2;0)

      et enfin s'il y a risque de ne pas trouver la valeur, pour éviter un affichage #N/A:

      =SI(ESTERREUR(GRANDE.VALEUR(A:A;1));"";RECHE.....))

      Bien entendu, ajuster le 1 du code grande valeur au rang cherché.

      crdlmnt
      0
      1. Contributeur
        En complément après relecture de votre demande
        s'il faut ajuster un champ de 5 lignes en fonction d'une date placée dans une cellule (Z1 pour l'exemple)

        la formule devient

        =RECHERCHEV(GRANDE.VALEUR(DECALER(A1;EQUIV(Z1;A:A;0)-1;;5);1);DECALER(A1;EQUIV(Z1;A:A;0)-1;;5;2);2;0)

        attention les deux codes décaler ne sont pas identiques à la fin

        Cette formule vous renverra la valeur B de la ligne de la plus grande valeur de A sur la hauteur incluant la date en Z1 et 4 lignes suivantes

        crdlmnt

        Errare humanum est, perseverare diabolicum
        0
        1. Merci pour ce retour rapide.
          Je regarde de mon côté et revient vers vous en cas de souci.
          0
        2. Bonjour,

          Je pense qu'il ne s'agit pas d'un champ de 5 lignes, mais plutôt de 400 à 1000 lignes... Comme je l'ai compris, "1" apparaît de 80 à 200 fois en colonne A avec des valeurs en B. Idem jusqu'à 30 (ou 31??).
          Si le fichier est modifié en indiquant quel jour correspond au premier de la semaine et s'il faut trouver les GRANDE.VALEUR autant insérer les numéros de semaine.

          A+
          0
      2. Voici en visuel mon tableau

        Colonne A Colonne B (secondes)
        ..... ..........
        02/09/2013 152
        02/09/2013 151
        02/09/2013 4897
        02/09/2013 864
        02/09/2013 4856
        02/09/2013 21
        02/09/2013 1545
        03/09/2013 156456
        03/09/2013 15461
        03/09/2013 1556
        03/09/2013 145
        04/09/2013 12
        04/09/2013 103
        04/09/2013 454
        04/09/2013 4561
        04/09/2013 1546
        05/09/2013 545
        05/09/2013 1451
        05/09/2013 452
        06/09/2013 122
        06/09/2013 13
        06/09/2013 464
        06/09/2013 65
        06/09/2013 98
        09/09/2013 794
        09/09/2013 87
        09/09/2013 965
        09/09/2013 485
        09/09/2013 2325
        ......

        Il faudrait recherche la plus grande valeur n°1 ou plus sur la semaine du 02/09 au 06/09. A noter que le nombre de données par jour est totalement aléatoire et que les weekends ne sont pas présent.
        De plus le jour de début de la semaine qui m'intéresse peut être noté dans une cellule fixe à part à modifier pour obtenir les grandes valeurs d'une nouvelle semaine ensuite.

        Merci d'avance
        0
        1. Sinon est-il aisé d'associer le numéro de semaine du calendrier aux dates correspondantes ?
          Cela simplifierait grandement comme l'adit Zoul67 mon problème initial.
          0
        2. Sur mon Excel anglais, c'est WEEKNUM, mais sur les versions anciennes d'Excel, il fallait ruser :
          =ENT(MOD(ENT((date-2)/7)+0,6;52+5/28))+1
          0
        3. C'est bon j'ai trouvé en utilisant =ENT((N2-SOMME(MOD(DATE(ANNEE(N2-MOD(N2-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)
          Basé sur la norme ISO France des numéros de semaine.
          0
      3. Si c'est uniquement pour le maximum, tu es rendu à ça : https://forums.commentcamarche.net/forum/affich-6844803-excel-formule-max-et-min-avec-condition
        Il s'agit d'une formule matricielle qui ne m'enthousiasme pas franchement, mais bon...
        0
        1. Formule matricielle ?
          Et pourquoi devoir activer cela via ctrl + entrée + majuscules simultanées

          Merci toutefois.
          Bon je teste...
          0
        2. Le truc c'est que ce n'est pas que pour le maximum, car je dois relevé les 10 premieres grandes valeurs.
          Mais cette formule peut peut-être s'adapter.
          0
        3. L'activation est justement due à la caractéristique matricielle.
          C'est pour ça que ça ne me plaît pas.
          Tu peux utiliser une fonction personnalisée VBA aussi...
          0
        4. Impossible à adapter avec Grande.Valeur malheureusement.

          Je ne comprends toutefois pas pourquoi je n'arrive pas à associer RECHERCHEV et GRANDE.VALEUR car ce serait la clé à mon problème.

          Note -> Je veux éviter à tout prix de passer via les macros.
          0
        5. Si tu ne veux que le MAX, je ne vois pas pourquoi utiliser grande valeur. RechercheV ne renvoie (au moins de base) qu'une ligne.
          Je me suis inspiré d'un autre fil pour te proposer un truc qui - si c'était mon boulot - me plairait : =SOMMEPROD(MAX((A:A=H1)*(B:B)))
          Si tu colles ça en I1 et que en H1, tu mets le numéro de semaine, apparemment ça fonctionne (et pas de formule matricielle !)

          NB : Sur les anciennes versions d'Excel tu ne peux pas utiliser les colonnes entières, il te faut restreindre à A1:A65536 par exemple
          0
      4. Bonjour,
        J'ai travaillé avec la fonction Decaler et calculé les dates selon la semaine et l'année.
        https://www.cjoint.com/?3IfmixXcJJJ
        La formule de Vaucluse avec Indirect parait beaucoup plus buvable!
        Il faudrait mixer.
        0