Question compliquée

Bonjour !

Voilà, ça fait deux heures que je me débat sur Excel et je viens demander votre aide.

Je vous explique mon problème : j'ai un tableau de douze colonnes avec beaucoup de données. Ce que je veux faire, c'est récupérer la première valeur de la colonne F pour laquelle L est différent de 0 sur la même ligne, lorsque la colonne A a pour valeur "X" et la colonne C a pour valeur "Y"
Voilà donc la formule que j'ai voulu utiliser :

=INDEX('F:F;MIN(SI(A:A="X" & C:C="Y" & L:L<>0;LIGNE(L:L);9^9)))

Et là, Excel me renvoie une valeur complètement aberrante qui ne correspond pas du tout à ce que je recherche (genre, la valeur devrait être comprise environ entre 1 et 20 et là j'obtiens 28491).
Je précise que j'ai des cellules vides dans ma colonne L, que je ne peux pas remplacer par des 0.
Quelqu'un aurait une idée d'où l'erreur peut venir ? Est-ce que c'est à cause des cellules vides ?

Merci beaucoup.

4 réponses

  1. Contributeur
    macro rapide pour 70000 lignes
    Option Explicit
    Option Base 1
    '-------------------
    Sub trouver_E_si_ACL()
    Dim Derlig As Long
    Dim T_colAC, T_colL, Lig As Long, Reponse As Date

    Application.ScreenUpdating = False
    With ActiveSheet
    Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
    T_colAC = .Range("A1:C" & Derlig)
    T_colL = Application.Transpose(Range("L1:L" & Derlig))

    For Lig = 1 To UBound(T_colL)
    If T_colL(Lig) <> 0 Then
    If T_colAC(Lig, 1) = "X" Then
    If T_colAC(Lig, 3) = "Y" Then
    Reponse = .Cells(Lig, "F")
    Exit For
    End If
    End If
    End If
    Next
    End With

    MsgBox "date répondant aux conditions: " & Reponse & " ligne " & Lig
    End Sub

    1. _Merci beaucoup pour la réponse. Je me suis débrouillé avec un autre logiciel finalement, mais j'essaierai et je vous dirai si ça marche :)
  2. Contributeur
    Bonjour
    la ou les valeurs dans F:F sont de quel type=texte ou nombre ?

    combien de lignes environ ?

    1. Bonjour michel_m,

      dans la colonne F les valeurs sont des dates. Et il y a environ 70000 lignes...
  3. Bonjour,

    Tu peux essayer avec
    =INDEX(F:F;EQUIV(1;(A:A="X")*(C:C="Y")*(L:L<>0);0))
    formule matricielle à valider en appuyant sur CTRL+MAJ+ENTREE.

    A+
    1. Merci beaucoup pour vos réponses, j'étais persuadé que "&" était un opérateur logique ^^"
      Malheureusement ça ne marche toujours pas avec la formule que tu as proposée :( il me renvoie un #N/A.
      Je crois que je vais faire différemment, Excel ne me paraît vraiment pas pratique pour ce genre de manips. Merci beaucoup pour votre aide en tout cas.
    2. Merci beaucoup pour la réponse. Je me suis débrouillé avec un autre logiciel finalement, mais j'essaierai et je vous dirai si ça marche :)
  4. Bonjour,

    Regarde du côté du & qui ne correspond pas au ET logique.

    Cordialement