OVH Cloud OVH Cloud

Problème de formule

4 réponses
Avatar
Starwing
Bonjour à tous,

Voici mon problème,

En A1: 123456 En B1: 234567 En C1: 2005-01-01
Nombre entre 123456 et 234567

En A2: 234678 En B2: 345678 En C2: 2005-01-02
Nombre entre 234678 et 345678

En A3: 345689 En B3: 456789 En C3: 2005-01-03
Nombre entre 345689 et 456789

En A4: 456790 En B4: 567890 En C4: 2005-01-04
Nombre entre 456790 et 567890
...

En D1: 345750
En E1: La formule qui me trouve la date de la colonne C
si la valeur de D1 est situé entre les bornes de la
colonne A et B. Réponse souhaité: 2005-01-03
J'ai bien tenté la fonction "indirect(adresse", mais sans succès
J'espère que vous en aurez plus que moi!
Merci de votre gentillesse, vous allez me sauvez beaucoup de temps

Starwing

4 réponses

Avatar
JB
Bonjour,

J'ai supposé que A2 est égal B1+1,A3²+1,...:

A B C D
E
1 123456 234567 01/01/2005 345750 01/03/2005
2 234568 345678 01/02/2005
3 345679 456789 01/03/2005
4 456790 567890 01/04/2005

En E1: =INDEX(C1:C4;EQUIV(D1;A1:A44;1))

Cordialement JB
Avatar
PMO
Bonjour,

Une piste avec une fonction personnalisée.

1) Copiez le code ci-dessous dans un module standard
'**********
Function PMO_Starwing(Minis As Range, _
Maxis As Range, Dates As Range, _
Cible As Range) As Variant
Dim i&
For i& = 1 To Minis.Rows.Count
If Cible >= Minis(i&, 1) And _
Cible <= Maxis(i&, 1) Then
PMO_Starwing = Dates(i&, 1)
Exit Function
End If
Next i&
End Function
'**********

2) On reprend votre exemple.
Tapez la formule suivante en E1
=PMO_Starwing(A1:A4;B1:B4;C1:C4;D1)
A1:A4 représente la plage des Minis
B1:B4 représente la plage des Maxis
C1:C4 représente la plage des Dates
D1 représente la Cible (soit 345750 dans l'exemple)
Formatez la cellule E1 par un format date pour obtenir le
résultat sous forme de date valide. Sinon, en format standard,
on obtiendra un Long (soit 38412)

A NOTER
Les plage Minis, Maxis, Dates doivent avoir le même nombre
de lignes et être, chacune, sur une seule colonne.
La fonction est brute et aucune gestion d'erreur n'y est traitée.

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

Voici mon problème,

En A1: 123456 En B1: 234567 En C1: 2005-01-01
Nombre entre 123456 et 234567

En A2: 234678 En B2: 345678 En C2: 2005-01-02
Nombre entre 234678 et 345678

En A3: 345689 En B3: 456789 En C3: 2005-01-03
Nombre entre 345689 et 456789

En A4: 456790 En B4: 567890 En C4: 2005-01-04
Nombre entre 456790 et 567890
....

En D1: 345750
En E1: La formule qui me trouve la date de la colonne C
si la valeur de D1 est situé entre les bornes de la
colonne A et B. Réponse souhaité: 2005-01-03
J'ai bien tenté la fonction "indirect(adresse", mais sans succès
J'espère que vous en aurez plus que moi!
Merci de votre gentillesse, vous allez me sauvez beaucoup de temps

Starwing






Avatar
Starwing
Bpnjour Patrick,

C'est une très belle fonction et elle marche très bien aussi.
Je vais avoir deux possibilités pour calculer mes données.
Merci Patrick s'est très apprécié.

Starwing
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:
Bonjour,

Une piste avec une fonction personnalisée.

1) Copiez le code ci-dessous dans un module standard
'**********
Function PMO_Starwing(Minis As Range, _
Maxis As Range, Dates As Range, _
Cible As Range) As Variant
Dim i&
For i& = 1 To Minis.Rows.Count
If Cible >= Minis(i&, 1) And _
Cible <= Maxis(i&, 1) Then
PMO_Starwing = Dates(i&, 1)
Exit Function
End If
Next i&
End Function
'**********

2) On reprend votre exemple.
Tapez la formule suivante en E1
=PMO_Starwing(A1:A4;B1:B4;C1:C4;D1)
A1:A4 représente la plage des Minis
B1:B4 représente la plage des Maxis
C1:C4 représente la plage des Dates
D1 représente la Cible (soit 345750 dans l'exemple)
Formatez la cellule E1 par un format date pour obtenir le
résultat sous forme de date valide. Sinon, en format standard,
on obtiendra un Long (soit 38412)

A NOTER
Les plage Minis, Maxis, Dates doivent avoir le même nombre
de lignes et être, chacune, sur une seule colonne.
La fonction est brute et aucune gestion d'erreur n'y est traitée.

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

Voici mon problème,

En A1: 123456 En B1: 234567 En C1: 2005-01-01
Nombre entre 123456 et 234567

En A2: 234678 En B2: 345678 En C2: 2005-01-02
Nombre entre 234678 et 345678

En A3: 345689 En B3: 456789 En C3: 2005-01-03
Nombre entre 345689 et 456789

En A4: 456790 En B4: 567890 En C4: 2005-01-04
Nombre entre 456790 et 567890
....

En D1: 345750
En E1: La formule qui me trouve la date de la colonne C
si la valeur de D1 est situé entre les bornes de la
colonne A et B. Réponse souhaité: 2005-01-03
J'ai bien tenté la fonction "indirect(adresse", mais sans succès
J'espère que vous en aurez plus que moi!
Merci de votre gentillesse, vous allez me sauvez beaucoup de temps

Starwing








Avatar
JB
Bonsoir,

Solution avec fonction:

=SOMMEPROD((D1>¡:A4)*(D1<±:B4)*(C1:C4))

Cordialement JB