Formule précise pour plusieurs conditions

Isaiasnj Messages postés 58 Statut Membre -  
PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je réalise une tableau avec plusieurs conditions, or j'arrive pas a sortir le résultat souhaité sur quelques ligne.

Quelqu'un pourra me donner un coup de main sur la mon formule?

ci-joint le fichier

https://www.cjoint.com/c/ILpwkvP4ahG

Je vous remercie

Isa.

4 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour,

    Pour traiter tous les cas de figures et pour une question de clarté afin d'obtenir toutes les réponses complètes et précises, complétez ce tableau de vérité. Mettez les résultats souhaités en face chaque cas.
    https://mon-partage.fr/f/kMAqLsPc/

    Image du tableau à remplir


    Cdlt
    1
    1. Isa
       
      Bonjour,

      Ci-dessous les fichier remplir, pour info il n’aura pas de cellules vides sur B C & D

      https://www.cjoint.com/c/ILqloYikIoS

      Cdt
      isa
      0
  2. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     
    Salutations à tous,

    Peut-être cette formule à tenter

    =SI(ET(NBVAL(B2;D2)>0;A2="OD Urgent");"par Air";SI(ET(NBVAL(B2;D2)>0;OU(A2="OD Promo";A2="OD Basic"));"A mettre en prépa le dispo";SI(ET(NBVAL(B2;D2)>0;A2="Amfila");"PLA dispo";SI(ET(NBVAL(B2;D2)=0;A2="OD Urgent");"Aérienne sans stock";SI(ET(NBVAL(B2;D2)=0;OU(A2="OD Promo";A2="OD Basic"));"Pas de stock";SI(ET(NBVAL(B2;D2)=0;A2="Amfila");"PLA";""))))))

    https://www.cjoint.com/c/ILqgV3UpdcW

    Cordialement
    1
  3. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Voici avec une fonction personnalisée

    en F2 saisissez la formule et étirez vers le bas:
    =Res(A2;B2;C2;D2)


    le code utilisé dans un module standard:
    Function Res(Ord As String, Ok As Long, Mis As Long, Par As Long) As String
        Select Case Ord
            Case Is = "OD Urgent"
                If Ok = 0 And Mis = 0 And Par = 0 Then
                    Res = ""
                ElseIf Ok = 0 And Mis <> 0 And Par = 0 Then
                    Res = "Aérienne sans stock"
                Else
                    Res = "Par Air"
                End If
                
            Case Is = "OD Promo", "OD Basic"
                If Ok = 0 And Mis = 0 And Par = 0 Then
                    Res = ""
                ElseIf Ok = 0 And Mis <> 0 And Par = 0 Then
                    Res = "pas de stock"
                Else
                    Res = "A mettre en prépa le dispo"
                End If
            
            Case Is = "Amfila"
                If Ok = 0 And Mis = 0 And Par = 0 Then
                    Res = ""
                ElseIf Ok = 0 And Mis <> 0 And Par = 0 Then
                    Res = "pas de stock"
                Else
                    Res = "PLA Dispo"
                End If
        End Select
    End Function
    


    Juste une petite remarque, il y a un désaccord entre la demande d'origine et le tableau de vérité concernant Amifila avec Missing seul . C'est "pas de stock" ou "PLA"

    le fichier:
    https://mon-partage.fr/f/r5zoC5as/

    CDlt
    1
    1. Isa
       
      Bonjour,

      Il semble parfait votre fonction, je pourrais bien l'ajouter à une macro, pour la dernière remarque si missing donc juste PLA ça suffira

      Merci à tous pour les pour ces consignes
      Cdt
      Isa
      0
  4. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     
    Re,

    Salutations Frenchie83

    Vu le tableau complété en réponse 3 ;
    Ça confirme qu'il ne faut tenir compte que de la présence ou non d'une valeur en B ou D ;
    C n'est pas à prendre en compte sauf pour le cas ou les trois cellules sont vides.

    J'ai donc corrigé ma formule :

    =SI(ET(B2="";C2="";D2="");"";SI(ET(NBVAL(B2;D2)>0;A2="OD Urgent");"par Air";SI(ET(NBVAL(B2;D2)>0;OU(A2="OD Promo";A2="OD Basic"));"A mettre en prépa le dispo";SI(ET(NBVAL(B2;D2)>0;A2="Amfila");"PLA dispo";SI(ET(NBVAL(B2;D2)=0;A2="OD Urgent");"Aérienne sans stock";SI(ET(NBVAL(B2;D2)=0;OU(A2="OD Promo";A2="OD Basic";A2="Amfila"));"Pas de stock";""))))))

    https://www.cjoint.com/c/ILqmQVWutZW

    Cordialement
    1