Fonction EQUIV + INDEX sur des dates différentes

Bonjour,

Je vous montre ci-joint une partie du fichier pour respecter la confidentialité.

Ce fichier est une note d'honoraire automatique personnalisée à chacun de mes patients,

Mon raisonnement est de lister l'ensemble des actes réalisés auprès de chaque patients, chaque acte est daté et a un prix unitaire. Ma base est située dans l'onglet Novembre.

Ma colonne B de l'onglet novembre représente la date de chaque acte. Tandis que la colonne C du même onglet représente le nom des patients.

Voici ci-dessous la formule réalisée pour extraire dans l'onglet Novembre les dates, actes et prix unitaire de chaque patient. L'idée étant de suivre ma compta en tenant mon livre des recettes et en réalisant une facture pour chaque patient rapidement.

capture d ecran 2022 12 07 a 17 42 16

Le problème est que lorsque je copie la première ligne de la ligne vers le bas pour obtenir l'ensemble des actes, dates et prix unitaires rapportés à chaque patient, j'ai un copier coller de la première formule qui ne respecte plus les informations contenues dans ma source. Comme ci-dessous, on le voit aisément sur l'affichage des 4 dates, cela est correspond bien au nombre d'acte pour ce patient mais les dates et les actes ne sont pas bon puisque ce patient avait des séances de durée différentes et donc de prix différents.

capture d ecran 2022 12 07 a 17 39 36

Sauriez-vous ou j'ai fais une erreur ?

Vous remerciant par avance.

Cordialement.

bonjour

pas d'equiv qui ne renvoie que la 1ere valeur ; mais

=si(h17="";"";index(Novembre!b$12:b$124;petite.valeur(si(Novembre!c$2:c$124='11Fact'!$13;ligne(Novembre!c$2:c$124)-1;"");ligne(a1))))

a tirer vers le bas (après avoir eventuellement validé avec les 3 touches Ctrl Maj Entrée selon ta version )

voir si il ne faut pas rajouter un $ a 11 fact I13

Merci pour votre aide,

J'obtiens un #VALEUR!

Qu'en pensez-vous ?

Voici le code :

=SI(H17="";"";INDEX(Novembre!B$12:B$124;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!L$13;LIGNE(Novembre!C$2:C$124)-1;"");LIGNE(A1)))

re

1)il te manque une) a la fin

2) met Petite Valeur en surbrillance et cliques sur fx pour voir ce qui retourne ;a l'occasion c'est ton L13 qui fait capoter

3) si petite valeur renvoie une matrice {........} cest bon , tu valides avec les 3 touches citées plus haut , si dans cette matrice ,il y a des #na c'est que les valeurs de la colonne C ne sont pas toutes au format numerique

sinon met un fichier test avec des val bidon

cordialement

Alors je suis totalement coincé

voici le fichier anonymisé.

Cordialement.

Bonjour,

Pas évident ton fichier avec toutes les cellules fusionnées, qui sont généralement une plaie dans Excel.

Comme l'a dit tulipe_4, salutations, EQUIV ne renvoie que la première valeur trouvée. Pour obtenir les autres il faut passer par une formule matricielle.

En adaptant celle fournie par tulipe_4 je te propose :

En B17 :
=SIERREUR(INDEX(Novembre!B:B;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")
en C17 :
=SIERREUR(INDEX(Novembre!D:D;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")
en F17 :
=SIERREUR(INDEX(Novembre!E:E;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")

Attention formules matricielles à valider par Ctrl+Maj+Entrée, elles se mettent alors automatiquement entre accolades {}

De plus sur ta version d'Excel (2010 -2011 pour MAC ?) la validation matricielle ne peut probablement pas se faire sur cellules fusionnées. Si c'est le cas il faut défusionner la cellule, valider la formule matricielle, refusionner ensuite et recopier vers le bas.

Ton fichier à tester :

Cordialement

bonjour

voila

puisque il s'agit de facture acquittée , j'ai rajouté la condition "Payée" ; le fichier est prévu pour 250 lignes dans Novembre je t'ai epargné un nommage ou un tablo automatique pour ne pas trop compliquer

cordialement

17pmot.xlsx (47.65 Ko)

Vous êtes supers !

Merci pour vos contributions !

Bonne continuation à cette super communauté :)

Bonjour,

Encore merci pour vos participations.

Enfaite, la possibilité d'automatiser la facturation en fonction de données préalablement saisie dans un onglet est un gain de temps énorme.

Désormais, je me demandais si vous connaissiez une solution pour pouvoir sélectionner rapidement un onglet ou un autre ?

Comme je reparti mes recettes dans un onglet par mois, l'idée étant de pouvoir réaliser une facture pour un patient de n'importe quel mois.

Au plaisir de vous lire,

Cordialement.

bonjour

un essai en utilisant Indirect pour cibler l'onglet (choix dans liste )

attention à l'orthographe lors de la rédaction du nom d'onglet (privilégier un cop/col du mois de la liste dans données )

cordialement

13pmot-mensuel.xlsx (94.80 Ko)

Merci pour ton retour tulipe_4 !

Grace à toi je vois que c'est possible. En revanche, je bute car nous ne partons pas du même code.

Ma facture automatique est totalement fonctionnelle avec le code d'Als35 :

En B17 : =SIERREUR(INDEX(Novembre!B:B;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"") en C17 : =SIERREUR(INDEX(Novembre!D:D;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"") en F17 : =SIERREUR(INDEX(Novembre!E:E;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")

Par exemple, voici le code de mes premières lignes de colonne sur mon fichier :

Pour la colonne des dates

=SIERREUR(INDEX(Novembre!B:B;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")

Pour la colonne des actes

=SIERREUR(INDEX(Novembre!D:D;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")

Pour la colonne du montant

=SIERREUR(INDEX(Novembre!E:E;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")

Dans ce code, je pointe vers l'onglet Novembre et c'est ce qui me bloque, ta proposition me semble carrément adaptée. Saurais-tu comment l'adapter à ce code ?

Merci d'avance

Si cela peut permettre d'ajouter de l'eau au moulin,

Et bien sûr si je comprends bien, il faudrait que le numéro de facture change automatiquement en fonction du mois sélectionné. Car il sera très probablement différent pour un même patient d'un mois à l'autre. Ce ne résout pas le soucis mais je me suis dis que ce serait bon de le poser là :)

re

bah tu remplaces tout les Novembre! ...... par INDIRECT (la cel du mois choisi &"! la plagevoulue")

nota dans la formule , il me semble que c'est plutôt LIGNE(c2:c$124)-1 car sans le -1 tu decales tout d'une ligne

et il n'est pas conseillé de mouliner une colonne entière (B:B)

comme visiblement tu recherches par Patient

Avant tout, merci pour votre intervention, je vois bien que votre réponse est logique mais mon faible niveau sur excel me rend la compréhension de ce que vous écrivez assez ardu.

J'ai tout d'abord tenter de changer toutes occurence "novembre" par ce que vous m'indiquez et j'ai des erreurs en pagaille, donc j'ai du commettre des erreurs.

Dans la situation qui est la mienne, je vois deux éléments variables :

- le numéro de facture en fonction du mois

Dépend du patient et du mois sélectionner

- Le code pour aller chercher la date, les actes et le montant des actes.

Dépend aussi du patient et du mois sélectionner

Ainsi si je prends la fonction me permettant de trouver mon numéro de facture, actuellement c'est :

=INDEX(Novembre!A2:A124;EQUIV(I13;Novembre!C2:C124;0))

Par ailleurs, pour la colonne des dates j'ai

=SIERREUR(INDEX(Novembre!B:B;PETITE.VALEUR(SI(Novembre!C$2:C$124='11Fact'!I$13;LIGNE(Novembre!C$2:C$124);"");LIGNE($A1)));"")

Pour l'instant j'ai ajouté une liste déroulante qui pointe vers une les différents mois mais je suis bloqué.

re

une tentative

Merci tulipe_4 c'est parfait !!!!

Puis-je me permettre de solliciter votre aide sur le "compteur de ligne" en H16 qui pointe lui aussi sur l'onglet novembre

Son code est

=NB.SI((Novembre!A2:A124);'11Fact'!G13)

Et j'aimerai donc y ajouter une fonction indirect par dessus.

Sauriez-vous y ajouter la fonction indirect ?

Euréka, j'ai trouvé !

=NBVAL(INDIRECT(A2:A250;G13);G13)

Merci encore pour toutes vos interventions !

Rechercher des sujets similaires à "fonction equiv index dates differentes"