A voir également:
- Excel formule dernière occurence help!!
- Formule excel - Guide
- Liste déroulante excel - Guide
- Formule moyenne excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel si et - Guide
8 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
12 avril 2008 à 18:08
12 avril 2008 à 18:08
Bonjour,
proposition ci joint:
https://www.cjoint.com/?emshkQJP8j
Bon WE
Michel
proposition ci joint:
https://www.cjoint.com/?emshkQJP8j
Bon WE
Michel
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
12 avril 2008 à 18:11
12 avril 2008 à 18:11
Rassure toi, la reponse ne me parait pas simple a moi non plus et pourtant j'utilise Excel de maniere intensive depuis tres longtemps.
Dans ce cas, je ne vois pas d'autre solution que d'ajouter une colonne dans ton premier tableau afin d'indiquer ou se trouve la derniere occurence.
Ce qui donnera le resultat suivant
Le tableau suivant utilise alors les formules :
Est ce que cela te conviens ?
Dans ce cas, je ne vois pas d'autre solution que d'ajouter une colonne dans ton premier tableau afin d'indiquer ou se trouve la derniere occurence.
A B C +---------+----+-------------------------------+ 1 | No Jour | Nb | Dernier | +---------+----+-------------------------------+ 2 | 99 | 6 | =SI(NB.SI(A2:A$9;A2)=1;B2;"") | +---------+----+-------------------------------+ 3 | 99 | 5 | =SI(NB.SI(A3:A$9;A3)=1;B3;"") | +---------+----+-------------------------------+ 4 | 99 | 7 | =SI(NB.SI(A4:A$9;A4)=1;B4;"") | +---------+----+-------------------------------+ 5 | 100 | 9 | =SI(NB.SI(A5:A$9;A5)=1;B5;"") | +---------+----+-------------------------------+ 6 | 100 | 5 | =SI(NB.SI(A6:A$9;A6)=1;B6;"") | +---------+----+-------------------------------+ 7 | 101 | 8 | =SI(NB.SI(A7:A$9;A7)=1;B7;"") | +---------+----+-------------------------------+ 8 | 102 | 3 | =SI(NB.SI(A8:A$9;A8)=1;B8;"") | +---------+----+-------------------------------+ 9 | 102 | 2 | =SI(NB.SI(A9:A$9;A9)=1;B9;"") | +---------+----+-------------------------------+
Ce qui donnera le resultat suivant
A B C +---------+----+---------+ 1 | No Jour | Nb | Dernier | +---------+----+---------+ 2 | 99 | 6 | | +---------+----+---------+ 3 | 99 | 5 | | +---------+----+---------+ 4 | 99 | 7 | 7 | +---------+----+---------+ 5 | 100 | 9 | | +---------+----+---------+ 6 | 100 | 5 | 5 | +---------+----+---------+ 7 | 101 | 8 | 8 | +---------+----+---------+ 8 | 102 | 3 | | +---------+----+---------+ 9 | 102 | 2 | 2 | +---------+----+---------+
Le tableau suivant utilise alors les formules :
A B +---------+--------------------------------------+ 1 | No jour | Nb | +---------+--------------------------------------+ 2 | 99 | =SOMME.SI(Feuil1!A$1:A$9;A2;C$1:c$9) | +---------+--------------------------------------+ 3 | 100 | =SOMME.SI(Feuil1!A$1:A$9;A3;C$1:c$9) | +---------+--------------------------------------+ 4 | 101 | =SOMME.SI(Feuil1!A$1:A$9;A4;C$1:c$9) | +---------+--------------------------------------+ 5 | 102 | =SOMME.SI(Feuil1!A$1:A$9;A5;C$1:c$9) | +---------+--------------------------------------+
Est ce que cela te conviens ?
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
12 avril 2008 à 18:17
12 avril 2008 à 18:17
Excellente solution michel_m.
Ne pas oublier les $ cependant.
Ne pas oublier les $ cependant.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
12 avril 2008 à 18:59
12 avril 2008 à 18:59
Exact, les 2 formules deviennent:
Tri sans doublons (D1 doit resté vide)
=SI(MIN(SI(A$1:A$100>D1;A$1:A$100))=0;"";MIN(SI(A$1:A$100>D1;A$1:A$100)))
dernière occurence
=SI(D2="";"";INDEX(B$1:B$100;MAX(SI(A$1:A$1000=D2;LIGNE(A$1:A$1000)))))
formules matricielles
Merci Santiago
Bonne soirée à tt le monde
Tri sans doublons (D1 doit resté vide)
=SI(MIN(SI(A$1:A$100>D1;A$1:A$100))=0;"";MIN(SI(A$1:A$100>D1;A$1:A$100)))
dernière occurence
=SI(D2="";"";INDEX(B$1:B$100;MAX(SI(A$1:A$1000=D2;LIGNE(A$1:A$1000)))))
formules matricielles
Merci Santiago
Bonne soirée à tt le monde
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tout dabord merci à tous les deux pour vos réponses.
Réponse à Michel_m:
je t'avouerais que je n'arrive pas bien à saisir le sens de la "syntaxe" de la formule, et n'ayant pas réussi à l'aapliquer à ma feuille de calcul, je me suis servi de la tienne pour y incorporer mes propres données ( :-p ) donc ce probleme est résolu.
Cependant pourquoi la deuxieme colonne de ton deuxieme tableau renvoie la valeur 0 alors qu'elle devrait renvoyer 2 (derniere occurence) ?
Réponse à santiago69:
Ton deuxieme tableau renvoie la derniere occurence pour le jour 99 dans toute la colonne (colonne 2 tableau 2) !!
Question à tous deux:
Ne saisissant pas bien les sens des syntaxes de l'un et de l'autre, je crois avoir compris que chacune de vos formules n'était valable que pour une plage de données déja remplie et dont on connait donc la taille. Pas possible donc pour moi de faire un copier/coller pour des futures plages pas encore remplies. ??...
J'espère que mon charabia n'en est pas vraiment pour vous... en vous remerciant encore de votre aide....
Réponse à Michel_m:
je t'avouerais que je n'arrive pas bien à saisir le sens de la "syntaxe" de la formule, et n'ayant pas réussi à l'aapliquer à ma feuille de calcul, je me suis servi de la tienne pour y incorporer mes propres données ( :-p ) donc ce probleme est résolu.
Cependant pourquoi la deuxieme colonne de ton deuxieme tableau renvoie la valeur 0 alors qu'elle devrait renvoyer 2 (derniere occurence) ?
Réponse à santiago69:
Ton deuxieme tableau renvoie la derniere occurence pour le jour 99 dans toute la colonne (colonne 2 tableau 2) !!
Question à tous deux:
Ne saisissant pas bien les sens des syntaxes de l'un et de l'autre, je crois avoir compris que chacune de vos formules n'était valable que pour une plage de données déja remplie et dont on connait donc la taille. Pas possible donc pour moi de faire un copier/coller pour des futures plages pas encore remplies. ??...
J'espère que mon charabia n'en est pas vraiment pour vous... en vous remerciant encore de votre aide....
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
12 avril 2008 à 19:49
12 avril 2008 à 19:49
La formnule de mon deuxieme tableau est :
Et rassure toi, nos formules marchent meme si tu insere des nouvelles lignes.
Je te conseille la solution de michel_m.
Tu peux cependant lui apporter la correction suivante (si michel_m me permet) :
N'oublie pas que ce sont des formules matricielles. c'est a dire qu'apres les avoir modifie, tu dois valider avec Shift+Ctrl+Enter plutot qu'avec un simple Enter.
Ensuite tu peux remplir ton tableau 1 a l'infini et recopier vers le bas ton tableau 2 a l'infini.
En revanche, tes calculs seront beaucoup plus lents (mais je pense que ca ira avec les donnees que tu as)
A B +---------+---------------------------------------------+ 1 | No jour | Nb | +---------+---------------------------------------------+ 2 | 99 | =SOMME.SI(Feuil1!A$1:A$9;A2;Feuil1!C$1:C$9) | +---------+---------------------------------------------+ 3 | 100 | =SOMME.SI(Feuil1!A$1:A$9;A3;Feuil1!C$1:C$9) | +---------+---------------------------------------------+ 4 | 101 | =SOMME.SI(Feuil1!A$1:A$9;A4;Feuil1!C$1:C$9) | +---------+---------------------------------------------+ 5 | 102 | =SOMME.SI(Feuil1!A$1:A$9;A5;Feuil1!C$1:C$9) | +---------+---------------------------------------------+
Et rassure toi, nos formules marchent meme si tu insere des nouvelles lignes.
Je te conseille la solution de michel_m.
Tu peux cependant lui apporter la correction suivante (si michel_m me permet) :
D2 =SI(MIN(SI(A:A>D1;A:A))=0;"";MIN(SI(A:A>D1;A:A))) E2 =SI(D2="";"";INDEX(B:B;MAX(SI(A:A=D2;LIGNE(A:A)))))
N'oublie pas que ce sont des formules matricielles. c'est a dire qu'apres les avoir modifie, tu dois valider avec Shift+Ctrl+Enter plutot qu'avec un simple Enter.
Ensuite tu peux remplir ton tableau 1 a l'infini et recopier vers le bas ton tableau 2 a l'infini.
En revanche, tes calculs seront beaucoup plus lents (mais je pense que ca ira avec les donnees que tu as)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
12 avril 2008 à 21:10
12 avril 2008 à 21:10
Bonsoir,
Je ne crois pas (à vérifier) que les formules matricielles fonctionnent avec des colonnes entières (A:A) il faut donc écrire par exemple A$1:A$36000 par exemple (ca permet 100 numéro par jour!)
D££, sur les forums, on te livre des maquettes: j'ai pris 100 comme j'aurai pu écrire 500 ou 1000 ou 65536... je commence en A1, mais chez toi c'est peut EF567... a toi d'adapter (et ainsi de progresser) car la communauté forum ne propose pas de solutions PAC (Prêt A Cuire)
Cependant, estime, comme dans toute appli, la charge maximum avec environ 15% d'extension surtout avec des matricielles qui sont très longues avec des grands tableaux; il vaut mieux alors passer par du VBA et voir qui est le + rapide..
Amicalement
Michel
Je ne crois pas (à vérifier) que les formules matricielles fonctionnent avec des colonnes entières (A:A) il faut donc écrire par exemple A$1:A$36000 par exemple (ca permet 100 numéro par jour!)
D££, sur les forums, on te livre des maquettes: j'ai pris 100 comme j'aurai pu écrire 500 ou 1000 ou 65536... je commence en A1, mais chez toi c'est peut EF567... a toi d'adapter (et ainsi de progresser) car la communauté forum ne propose pas de solutions PAC (Prêt A Cuire)
Cependant, estime, comme dans toute appli, la charge maximum avec environ 15% d'extension surtout avec des matricielles qui sont très longues avec des grands tableaux; il vaut mieux alors passer par du VBA et voir qui est le + rapide..
Amicalement
Michel