Formule avec plusieurs "SI"
Résolu
bod77
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
bod77 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
bod77 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite réaliser une formule avec plusieurs constante :
On a un jour J correspondant à une date et je souhaite :
si J < 30/06/2012 alors résultat "A" sinon
si 01/07/2012 < J < 31/12/2012 alors "B" sinon
si J >= 01/01/2013 alors "C"
Merci pour votre aide car là je patauge
Je souhaite réaliser une formule avec plusieurs constante :
On a un jour J correspondant à une date et je souhaite :
si J < 30/06/2012 alors résultat "A" sinon
si 01/07/2012 < J < 31/12/2012 alors "B" sinon
si J >= 01/01/2013 alors "C"
Merci pour votre aide car là je patauge
A voir également:
- Formule avec plusieurs "SI"
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Mise en forme conditionnelle excel formule si - Guide
- Formule mathématique - Télécharger - Études & Formations
4 réponses
Bonjour,
Avec une macro, c'est possible :
J = Colonne contenant les dates
I = Colonne contenant les résultats A, B ou C.
Je reste à votre disposition pour toute autre question.
Cordialement, Romain.
Avec une macro, c'est possible :
Sub test()
Dim rng As Range, cell As Range
Set rng = Range("J1:J" & Range("J" & Rows.Count).End(xlUp).Row) 'On peut ajuster la range en fonction des cases où se trouve les valeurs
Application.ScreenUpdating = False
For Each cell In rng.Cells
If CDate("01/07/2012") < cell.Value < CDate("31/12/2012") Then
cell.Offset(, -1).Value = "B"
End If
If cell.Value >= CDate("01/01/2013") Then
cell.Offset(, -1).Value = "C"
End If
If cell.Value < CDate("30/06/2012") Then
cell.Offset(, -1).Value = "A"
End If
If cell.Value = "" Then
cell.Offset(, -1).Value = ""
End If
Next
Application.ScreenUpdating = True
End Sub
J = Colonne contenant les dates
I = Colonne contenant les résultats A, B ou C.
Je reste à votre disposition pour toute autre question.
Cordialement, Romain.
Tu y es presque pourtant: quand tu écris du pseudo-code - comme tu le fais d'ailleurs très bien ici - la formule est à deux pas.
Excel ne connait pas "est compris entre", par contre il connait "est plus grand que ET est plus petit que". Dans ton cas:
Pseudo-code #2:
SI jour EST INFERIEUR OU EGAL A date-pivot1 ALORS A
SINON SI jour EST PLUS GRAND QUE date-pivot1 ET QUE jour EST PLUS PETIT OU EGAL A date-pivot2 ALORS B
SINON SI jour EST PLUS GRAND QUE date-pivot2 ALORS C
En Excel:
- avec jour dans la cellulle A1, date-pivot1 dans la cellule A2 et date-pivot2 dans la cellule A3
- B1 contient le résultat A, B2 le résultat B et B3 le résultat C
Excel ne connait pas "est compris entre", par contre il connait "est plus grand que ET est plus petit que". Dans ton cas:
Pseudo-code #2:
SI jour EST INFERIEUR OU EGAL A date-pivot1 ALORS A
SINON SI jour EST PLUS GRAND QUE date-pivot1 ET QUE jour EST PLUS PETIT OU EGAL A date-pivot2 ALORS B
SINON SI jour EST PLUS GRAND QUE date-pivot2 ALORS C
En Excel:
- avec jour dans la cellulle A1, date-pivot1 dans la cellule A2 et date-pivot2 dans la cellule A3
- B1 contient le résultat A, B2 le résultat B et B3 le résultat C
=SI(A1<=A2;B1;SI(ET(A1>A2;A1<=A3);B2;B3))
oulà cela devoient compliqué, on a pas la possibilité de faire cela avec une fomrule avec des SI.
j'avais fait de mon côté mais cela ne marche pas :
date se trouve en B17 :
=SI(DATEVAL(B17)<"30/6/2012";"A";SI(ET(DATEVAL(B17)>"01/07/2012";DATEVAL(B17)<="31/12/2012");"B";SI(DATEVAL(B17)>="01/01/2013";"C")))
j'avais fait de mon côté mais cela ne marche pas :
date se trouve en B17 :
=SI(DATEVAL(B17)<"30/6/2012";"A";SI(ET(DATEVAL(B17)>"01/07/2012";DATEVAL(B17)<="31/12/2012");"B";SI(DATEVAL(B17)>="01/01/2013";"C")))
Bonjour,
Pourquoi vous utilisez dateval ? A mon avis votre problème vient de la car cette fonction transforme votre date en texte. Et là la comparaison ne fonctionne plus.
Il faut garder les dates, et mettres les dates de fin juin et fin décembre dans des cellules.
Voici un exemple: https://www.cjoint.com/?0ByqwRfoQ9m
Pourquoi vous utilisez dateval ? A mon avis votre problème vient de la car cette fonction transforme votre date en texte. Et là la comparaison ne fonctionne plus.
Il faut garder les dates, et mettres les dates de fin juin et fin décembre dans des cellules.
Voici un exemple: https://www.cjoint.com/?0ByqwRfoQ9m