Microsoft 365 RESOLU Récupération plusieurs informations dans une cellule et remplir un autre tableau

richard31

XLDnaute Occasionnel
Hello les experts ! J'ai un groooos souci. (données anonymisées)
Voilà j'ai un fichier Excel sous Excel WEB donc pas accès au VBA. un onglet source "Données Générales" et un onglet cible "Supervision". Jusque là tout va bien ^^. Dans l'onget source j'ai ça (n° commence en colonne B6):

Contrôle Supervision OUI / NONInformations techniques
175-2OUIREF-
tXXX-
X82tXXXX-
11.111.1.111-
Serveur xxxx-
administration fonctionnelle XXX-
RHEL 8.6

ESSAI-
XXX1-
XXXssdXXX-
11.111.1.111-
Serveur Archivage xxx-
CentOS release 7.9

En cible je veux ça si en colonne "Contrôle Supervision OUI / NON" je trouve "OUI" :
Niveau de produitRDS:nom complet:Adresse IP:Détails:OS:
REFtXXXX82tXXXX11.111.1.111Serveur administration fonctionnelle XXXRHEL 8.6
ESSAIXXX1XXXssdXXX11.111.1.111Serveur Archivage xxxCentOS release 7.9

Comment faire sans VBA ? Sans le faire en copier coller en transposant ? J'ai séparé les infos avec un - un espace entre les deux groupes. Mais franchement je me fais des nœuds dans le cerveau pour aller lire les infos et les coller sur la cible si j'ai OUI en colonne "Contrôle Supervision OUI / NON" .
je sais même pas si cela est possible en formule sans VB. pffffff
 

Pièces jointes

  • Test.xlsx
    13.5 KB · Affichages: 6

Cousinhub

XLDnaute Barbatruc
Re-,
D'après ce que j'ai pu lire entre-temps, PQ serait dispo...
PS, une peu de laisser-allez dans les séparatifs?
Pourquoi un tiret entre xxxx et administration?
"Serveur xxxx-
administration fonctionnelle XXX"
Mébon, c'est comme tu veux...
Bon courage
 

richard31

XLDnaute Occasionnel
Re-,
D'après ce que j'ai pu lire entre-temps, PQ serait dispo...
PS, une peu de laisser-allez dans les séparatifs?
Pourquoi un tiret entre xxxx et administration?
"Serveur xxxx-
administration fonctionnelle XXX"
Mébon, c'est comme tu veux...
Bon courage
les séparateurs c'était pour essayer de lire en recherchant les symboles, sinon j'ai accès à Power BI par contre Ce serait peut être la solution mais connait pas .. y ala fonction TRANSPOSE que je regarde
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Comme ceci?
Ta plage de données a été modifiée en Tableau Structuré nommé "T_Data" (une image dans le fichier)
Tu mets tes vraies données dans ce TS, puis dans l'onglet "Supervision", tu vas dans le ruban "Données", et tu cliques sur le bouton "Actualiser tout"..
Reviens si ça ne fonctionne pas (et même si ça fonctionne.... 🤪 )
Bonne fin d'apm
 

Pièces jointes

  • PQ_ex_Web.xlsx
    56.1 KB · Affichages: 3

richard31

XLDnaute Occasionnel
Bonjour,
Comme ceci?
Ta plage de données a été modifiée en Tableau Structuré nommé "T_Data" (une image dans le fichier)
Tu mets tes vraies données dans ce TS, puis dans l'onglet "Supervision", tu vas dans le ruban "Données", et tu cliques sur le bouton "Actualiser tout"..
Reviens si ça ne fonctionne pas (et même si ça fonctionne.... 🤪 )
Bonne fin d'apm
Super tu assure grave ! mo je vais me pencher sur Power Query du coup et essayer de comprendre comment tu as fait car j'y pige rien ^^ MERCI !!!
 

richard31

XLDnaute Occasionnel
Super tu assure grave ! mo je vais me pencher sur Power Query du coup et essayer de comprendre comment tu as fait car j'y pige rien ^^ MERCI !!!
Hello Du coup me suis penché sur Power Query . Très intéressant. Mais pas facile quand on connait pas. J'ai adapté ta solution à mon fichier source qui n'était pas le même. je sais charger les données et sélectionner les colonnes. Rajouter une étape de filtre mais par contre cette ligne de commande : = Table.ExpandListColumn(Table.TransformColumns(#"Colonnes supprimées", {{"Informations techniques", Splitter.SplitTextByDelimiter("#(lf)#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Informations techniques")

= Table.SplitColumn(Fract_Lignes, "Informations techniques", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Niveau de produit", "RDS", "Nom complet", "Adresse IP", "Détails", "OS"})

Franchement chaud ^^ en premier il va chercher la fonction Splitter.SplitTextByDelimiter qu'on trouve en second sur une autre étape avec le séparateur que j'ai indiqué "-" mais comment tu trouves ces fonctions et du coup savoir comment ça fonctionne ?
 

Cousinhub

XLDnaute Barbatruc
Hello,
Ravi que tu te sois penché sur ce formidable outil.
Pour les 2 étapes que tu cites, je n'ai "pratiquement" utilisé que le ruban de l'éditeur PQ.

Étape "Fract_Lignes" :

1718872876630.png

Ruban "Transformer", "Fractionner la colonne" / "Par délimiteur"
(J'ai remarqué qu'il y avait un double retour à la ligne pour différencier les REF)
Donc :
Tu choisis "Personnalisé", puis dans "options avancées", tu choisis "Fractionner en Lignes", et enfin, en bas, tu prends l'option "Diviser en utilisant....", et enfin "Saut de ligne"
Le caractère "#(lf)" va se copier tout seul dans la case sous "--Personnalisé--"
1718873016357.png


Cependant, ce n'est pas suffisant, car il s'agit d'un DOUBLE saut de ligne
Donc, dans la barre de formules (qui affiche :)
PowerQuery:
= Table.ExpandListColumn(Table.TransformColumns(FiltreOUI, {{"Informations techniques", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Informations techniques")
Tu rajoutes un saut de ligne :
PowerQuery:
...SplitTextByDelimiter("#(lf)#(lf)"....
Pour la 3ème étape, toujours le "Fractionner la colonne", mais cette fois-ci tout simplement en choisissant le tiret.
Et tant que tu y es, tu modifies directement dans la barre de formules les noms de colonne que PQ va donner automatiquement aux nouvelles colonnes.
Et voilà...
PS, pour afficher la barre de formules, dans l'éditeur PQ :

1718873547376.png

Bon courage
 

Statistiques des forums

Discussions
313 002
Messages
2 094 318
Membres
105 991
dernier inscrit
cherif