champs croisés, remplacer valeur

beru59

XLDnaute Nouveau
Bonjour,

Pour transférer une base DBF en base sql, j'utilise excel pour préparer les champs avant transfert.
J'ai un souci avec deux champs.
Ils sont actuellement sous la forme:
champs1, champs2
rouge, voiture
bleu, voiture
vert, arbre
rouge, route

Ils doivent prendre la forme:
champs1, champs2
1, 1
2, 1
3, 2
1, 3

Quelle fonction (ou autre méthode) utilisée pour remplacer:
rouge par 1
bleu par 2
vert par 3
et
voiture par 1
arbre par 2
route par 3

Sachant que j'ai dans le 1er champs, 400 enregistrements
et dans le 2e, 400 aussi
J'espère être clair.
Merci
Beru
 

bcharef

XLDnaute Accro
Re : champs croisés, remplacer valeur

Bonsoir Beru,
Bonsoir à toutes et à tous.

Essaye de consulter le fichier ci-joint, dans l'espérance qu'il te conviendra.

A te lire.

Cordialement.

Bcharef
 

Pièces jointes

  • Beru.xls
    15 KB · Affichages: 90

beru59

XLDnaute Nouveau
Re : champs croisés, remplacer valeur

Bonsoir,

Merci de ton fichier. Ca a l'air de fonctionner.
Tu es génial.
Je vais un peu plus approfondir.
Puis-je me permettre encore une question?
En fait j'aimerais comprendre la formule:

=+RECHERCHEV(A2;$F$2:$G$859;2;0)

Le + , c'est quoi
$ à quoi correspond ce signe?
A quoi correspond 2;0
dans $G$859 , 859 correspond au dernier numéro affecté à la dernière entrée de la liste du champs 2. C'est bien ça?

Au fait, est-il indispensable que les deux listes (champs1 et 2) soit dans la même colonne (F en l'occurrence) ?

Beru
 

bcharef

XLDnaute Accro
Re : champs croisés, remplacer valeur

Rebononsoir Beru,
Rebonnsoir à toutes et à tous.

En réponse à tes questions:

1- Tu peux le supprimmer le signe +, il ne porte aucune incidence sur les résultats, du fait qu'ils (les résultats) doivent être positifs,

2- le signe $,

Tutorial Excel: référence absolue et relative

3-La fonction recherche

Recherche Excel: fonctions rechercheV() et rechercheH()

Au fait, est-il indispensable que les deux listes (champs1 et 2) soit dans la même colonne (F en l'occurrence) ?

Non , c'est à ton choix, soit sur des colonnes de la même feuille ou bien sur une autre feuille.

A te lire et bon courage, et en cas de besoin n'hésiter pas.

Cordialement.

Bcharef
 
Dernière édition:

beru59

XLDnaute Nouveau
Re : champs croisés, remplacer valeur

Je crois que j'ai compris l'essentiel.
J'ai avancé et bien progressé dans excel.

Je bute sur un autre souci:
Je voudrais supprimer des doublons tout en concantenant un champs.
J'explique; J'ai par ex

champs1; champs2
rouge; voiture
rouge; maison
rouge; arbre
vert; route
vert; maison

Et je voudrais obtenir
champs1, champs2
rouge; voiture - maison - arbre
vert; route - maison

J'utilise la fonction concatener mais j'obtiens:
champs1; champs2
rouge; voiture
rouge; voiture - maison
rouge; voiture - maison - arbre
vert; route
vert; route- maison

Et quand je fais un filtre élaboré en supprimant les doublons, c'est l'enregistrement en tête qui est retenu et non le dernier.
Y a-t-il une astuce?

Beru
 

chris

XLDnaute Barbatruc
Re : champs croisés, remplacer valeur

Bonjour
Sans exemple, pas facile mais une des solutions avec les couleurs en colonne A et les données triées par couleur et la mention concaténée au fur et à mesure vers le bas :
ajouter une colonne avec la formule
=SI(A2=A3;0;1)
Ensuite extraire en se basant sur le chiffre 1 dans cette colonne.
 

beru59

XLDnaute Nouveau
Re : champs croisés, remplacer valeur

Merci.
J'ai testé ça marche.

Il me reste un souci j'obtiens (avant suppression desdoublons):

champs1; champs2
rouge; &
rouge; &&
rouge; &&& voiture & maison & arbre
vert; &
vert; && route & maison

(car j'ai pris le & pour mettre entre deux textes concatener.)

Comment supprimer le signe tout en gardant quelques chose pour séparer les textes concaténer.
L'idéal serait un passage à la ligne.

Beru
 

chris

XLDnaute Barbatruc
Re : champs croisés, remplacer valeur

Re

Ce que je comprends mal par rapport à ton exemple c'est les & isolés qui semblent indiquer l'absence de valeur dans la colonne F.

Si c'est le cas :
=SI(F2="";H1;SI(B2=B1;CONCATENER(H1;SI(H1<>"";CAR(10);"");F2);F2))
à partir de la ligne 2
et en ligne 1
=SI(F1="";"";F1)
 
Dernière édition:

chris

XLDnaute Barbatruc
Re : champs croisés, remplacer valeur

Bonjour

Chez moi cela marche mais il réajuster la taille des lignes pour voir le résultat.

Pour joindre un fichier (moins de 48k donc zippé si nécessaire) voir en dessous de la zone de rédaction (en mode ajouter une réponse) le bouton gérer les pièces jointes : utiliser parcourir pour sélectionner le fichier puis envoyer en ayant vérifié que la taille n'a pas bloqué l'upload.
 

beru59

XLDnaute Nouveau
Re : champs croisés, remplacer valeur

Ca ne marche pas;
C'est mieux ainsi

J'ai juste changer:
=SI(F2="";H1;SI(B2=B1;CONCATENER(H1;SI(H1<>"";CAR( 10);"");F2);F2))
pour
=SI(F2="";"";SI(B2=B1;CONCATENER(H1;SI(H1<>"";" | ";"");F2);F2))

A qui correspond car(10) ?
 

Pièces jointes

  • test-concatener-en -fin.zip
    23.5 KB · Affichages: 15
  • test-concatener-en -fin.zip
    23.5 KB · Affichages: 13
  • test-concatener-en -fin.zip
    23.5 KB · Affichages: 15

Discussions similaires

  • Question
Microsoft 365 Formules
Réponses
2
Affichages
455

Statistiques des forums

Discussions
312 466
Messages
2 088 678
Membres
103 918
dernier inscrit
comite des fets allonzier