Recherche de valeurs dans un tableau
mstecluque
Messages postés
73
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour à tous,
Je rencontre un nouveau problème avec excel...
Je voudrais faire une recherche qui pour une case de mon tableau cherche sa dernière occurence dans les lignes précédentes, si occurence il y a.
J'ai tenté la rechechev, l'index(equiv) : le problème que je rencontre est le même, ça recherche dans toutes les lignes du tableau et prend la première trouvée.
SI quelqu'un peut m'aider, merci d'avance.
Je rencontre un nouveau problème avec excel...
Je voudrais faire une recherche qui pour une case de mon tableau cherche sa dernière occurence dans les lignes précédentes, si occurence il y a.
J'ai tenté la rechechev, l'index(equiv) : le problème que je rencontre est le même, ça recherche dans toutes les lignes du tableau et prend la première trouvée.
SI quelqu'un peut m'aider, merci d'avance.
6 réponses
-
Bonjour,
Merci de nous transmettre un fichier avec exemple pour une meilleur compréhension.
Tu pourras l'héberger ici : www.cjoint.com et nous fournir le lien donné.
Cordialement.-
-
Evidemment, la formule de la colonne D n'était plus la bonne quand j'ai copier mon fichier.
Ca complique la compréhension...
Du coup petite explication de mon doc :
Une commande (colonne A) peut être livrée en une ou plusieurs fois.
En colonne B, on a la quantité totale à produire.
En colonne C, on a la quantité livrée à un moment t.
En colonne D on a la quantité qu'il reste à livrer.
Et le bon fichier, avec à gauche ce qui devrait marcher, et à droite, le résultat espéré.
https://www.cjoint.com/c/EGhlFbjSO4C
Merci d'avance. -
Et comme je suis vraiment douée, ça fait donc deux fois que je mets le fichier sur cjoint, sans enregistrer avant...
https://www.cjoint.com/c/EGhlIWYmURC
-
-
Bonjour,
A mettre en D3 et à étirer en bas :
=SI(A3=A2;D2-C3;B3-C3)
Cordialement,
Excel-Worker-
C'est gentil mais les lignes concernant une même commande ne sont regroupées que dans mon exemple. En réalité j'ai des milliers de lignes et une commande peut avoir des occurences n'importe où.
Et non je ne peux pas trier les commandes pour qu'elles soient regroupées, ça serait trop simple sinon. Les lignes sont classées selon la date de facturation, non pertinantes pour l'exemple, donc inexistante dans mon doc.
Merci quand même
-
-
Bonjour à tous les deux
Peut être en passant par une macro
http://www.cjoint.com/c/EGhpIU1Zqmg
Cdlmnt -
Je ne sais pas si on peut vraiment éviter de passer par vba
Une autre possibilité, toujours par macro, et peut être un peu plus rapide, il faut voir ce que ça donne sur un gros fichier
Public Sub RALF() Dim li As Long, lifin As Long, comm As String, lili As Long Dim obj As Object, plage As Range Dim TR(), nbliT As Long, t As Single t = Timer With ActiveSheet lifin = .Range(coCO & Rows.Count).End(xlUp).Row nbliT = lifin - lideb + 1 ReDim TR(1 To nbliT) For li = lideb To lifin comm = .Range(coCO & li).Value Set plage = .Range(coCO & lideb - 1 & ":" & coCO & li - 1) Set obj = plage.Find(comm, , , xlWhole, , xlPrevious) If obj Is Nothing Then TR(li - 1) = .Range(coQP & li).Value - .Range(coQF & li).Value Else lili = obj.Row TR(li - 1) = TR(lili - 1) - .Range(coQF & li).Value End If Next li .Range(coRS & lideb).Resize(nbliT, 1) = Application.Transpose(TR) End With MsgBox "temps mis " & Timer - t & "s" End Sub
Bonne journée -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Plutôt que de traiter le fichier en totalité, on peut effectuer le calcul du RAL au fur et à mesure de la saisie des 3 colonnes commande, QP et QF
http://www.cjoint.com/c/EGilcuFg1SG -
De rien,
Si c'est fini, peux mettre le sujet à résolu (en dessous du titre de ton premier message)
Bon après midi