Pb pr combiner plusieur test et recherchev

Résolu/Fermé
djstom Messages postés 3 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 29 avril 2008 - 28 avril 2008 à 20:30
djstom Messages postés 3 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 29 avril 2008 - 29 avril 2008 à 11:39
Bonjour,

Je dispose de 2 onglets excel. Sur l'un se trouve un tableau avec des villes et leur code postal, une qtité de matériel et un prix total. Le code postal est inscrit dans 2 cellules différentes comme ci dessous :

A1 A2 A3 (qtité matériel) prix total
17 000 2 ?
17 010 3 ?

Dans le 2ième onglet je dispose d'un tableau (tarif) donnant pour chaque code postal un prix unitaire du matériel :

B13 C13 px unitaire
17 000 5€
17 010 10€

Pour pouvoir calculer le prix total je dois chercher dans le tableau tarif le prix unitaire correspondant à tel ou tel code postal et multiplier par la qtité. Et cela en s'assurant que les 2 parties du code postal correspondent.

Dans un cas plus simple, pour trouver le px unitaire j'ai fait une RECHERCHEV avec seulement la 1ere partie du cp.
Mais ds ce nouveau cas il y a des variantes en fonctions des 3 derniers numéros du cp.

Le problème vient pour combiner les 2 recherches pour les 2 parties du cp, le test qui dit qu'avec telle et telle partie du code on a ce prix unitaire là et que le calcul se fait. Si c'est pas le cas on peut renvoyer 0 ou n'importe quoi.


Si qqun peut m'aider ca serait super, j'ai passé l'aprem dessus. Merci d'avance et bonne soirée
A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
29 avril 2008 à 00:57
Avec cette formule je t'explicais comment récupérer le prix, à toi de multiplier par la quantité ensuite.

=SOMMEPROD(($A$1:$A$10=F1)*($B$1:$B$10=G1)*($C$1:$C$10))
($A$1:$A$10=F1) : vrai si 1ère partie du code postale correcte, faux sinon
($B$1:$B$10=G1) : vrai si 2nde partie du code postale correcte, faux sinon
($C$1:$C$10) : le prix

Sommeprod() fait un calcul matriciel : produit ligne à ligne et somme de tous les produits ensuite.
Et comme pour excel vrai=1 et faux=0
si une des 2 partie du code postal est faux le produit est 0,
si les 2 parties du code postal sont vrai alors on a 1 * 1 * prix recherché
et si on fait la somme de tous les produits calculés on a 0+0+0+0+prix recherché+0+0 = prix recherché

Enfin bref, essaie..
eric
1
djstom Messages postés 3 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 11:39
Salut éric,

Merci beaucoup ca marche nickel !!! Tu m'enlèves vraiment une épine du pied :)

C'est vraiment malin comme astuce, j'aurais jamais pensé à utiliser les caractéristiques du calcul matriciel pour ce genre de chose.

Merci bcp et bonne journée.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
28 avril 2008 à 23:20
Bonsoir,

Pour continuer à utiliser recherchev() il faudrait fusionner au moins ta liste de tarif pour avoir une clé unique du style 17010.
Sinon tu peux utiliser sommeprod() si c'est bien une valeur numérique qu'il faut ramener.

ex:
   A       B      C
code1   code2   prix
17       000    5
17       010    10
...      .....    ....

Avec tes code1 et code2 à rechercher le prix en F1 et G1 la formule serait:
=SOMMEPROD(($A$1:$A$10=F1)*($B$1:$B$10=G1)*($C$1:$C$10))

eric
0
djstom Messages postés 3 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 00:31
Salut éric et merci pour ta réponse,

Le pb c'est qu'en fait je recois un fichier extrait d'un logiciel, 
et c'est ce logiciel qui sépare le code postale des villes en 2 parties. 
Je retrouve également dessus les qtités de matériel achtées pr chaque ville.

Pr l'instant j'essaie de faire un fichier où qd je copie colle les données extraites du logiciel,
excel me calcul directement le prix total à droite dans une colone. 
Par exemple sur ces villes : 

  
                                         nb materiel     px total

Paris              75       000        3(matériels)       ? 
Paris15            75       015        2                  ?
La rochelle        17       000        10
Poitiers           86       000         1
Chatellerault      86       100         8

La formule pour le prix total serait toute prète et le résultat apparaitrait
 directement sur cette onglet quand je rentre les données du logiciel. 
La formule irait chercher les informations dont elle a besoin dans un second onglet
 où il y a les tarifs unitaire des matériels en fonction ds villes :

                                    px unitaire

Paris             75    000     10€ 
Paris15           75    015      2€    
La rochelle       17    000      20
Poitiers          86     000      5€
Chatellerault     86     100      4€

Pr résumé il faut que la formule ds la case prix total de l'onglet 1 reconnaissent
 les 2 cellules du code postale et qu'en fonction de ca elle aille chercher 
dans l'onglet tarif le prix unitaire associé et le multiplie par la quantité. 
Comme il peux y avoir deux villes en 75, ou en 86 com ds l'exemple 
il faut absolument faire la reconnaissance de la seconde partie du code postale.
 Après si je dois faire des opérations intermédiares dans de nuvelle colonne c'est pas grave.

Je suis pas sur d'avoir parfaitement bien compri ta formule, 
mais il me semble qu'avec je multiplierai les codes postaux par la qtité et le prix ? nan ?
0