Power Query: Extraire une information dans une cellule multi-lignes

Bonjour,

Dans mon fichier Excel, voir attaché, j'ai une cellule Formations sur plusieurs lignes ( de 1 à 8) comme l'exemple ci-dessous:

Formations
Br. AMU - 123456 - 01/06/1993 - 07/12/2025
Br. Blabla1 - 458796 - 12/02/2021 -
Br. Blabla2 - - 21/03/2015 -
Formation Form1- Blabal3 - - 30/01/2022 -
Formation Form2 - - 01/06/1991 -

Je cherche à extraire via PQ dans une nouvelle colonne "N° Br AMU", le numéro qui correspond dans l'exemple à "123456", uniquement si "Br. AMU" est dans cette cellule.

Sinon, la cellule "N° Br AMU" est vide.

Le format, quand la donnée est présente dans la cellule est toujours le même: "Br. AMU - N° - Date début - Date fin", mais les dates ne sont pas toujours remplies.

Merci d'avance pour votre aide et belle journée.

Bonjour à tous !

Pour une source (tableau structuré) nommée "tSource" :

let
  Source = Excel.CurrentWorkbook(){[Name = "tSource"]}[Content], 
  Numéro = Table.AddColumn(
    Source, 
    "Numéro", 
    each 
      let
        t = Text.Split([Formations], " "), 
        p = List.PositionOf(t, "AMU")
      in
        if p > 0 then t{p + 2} else null
  )
in
  Numéro

Bonjour JFL, n'étant pas autant avancé que vous, serait il possible d'ajouter le code à mon fichier pour que je puisse le transposer dans le mien?

Merci d'avance

Bonjour à tous de nouveau !

En retour votre classeur :

Remarque :

Un simple copier/coller de la requête suffisait.

Il est souvent nécessaire de se tromper, de commettre des erreurs pour gagner en autonomie alors..... tentez ! que Diable....

Bonjour, merci ça marche, sauf 2 lignes, car dans ces deux cas, la cellule contient aussi "AMU" sur une autre ligne mais qui n'a rien à voir...

je vois dans la formule que vous utilisez "AMU" pour localiser le N°, j'ai essayé de la modifier, mais je ne trouve pas.

Il faudrait que la recherche soit sur "Br. AMU", comme ci-dessous. Je suppose que c'est la ligne d'après qu'il faut modifier...

p=List.PositionOf(t,"Br. AMU")
in if p>0 then t{p+2} else null)

Bonjour à tous de nouveau !

Une autre approche ?

Une autre approche ?

Hello,

Tout simplement

Hello,

Sur base du fichier de JB je simplifierai même ainsi

= Table.AddColumn(Source, "Numéro", each Text.BetweenDelimiters([Formations], "Br. AMU - ", " "))

@+

Bonjour à tous,

J'ai toujours l'habitude de proposer du PowerQuery quand quelqu'un demande une formule...

En ce vendredi 13, j'ai envie de faire l'inverse

=SIERREUR(GAUCHE(SUBSTITUE(DROITE(A2;NBCAR(A2)-(TROUVE("Br. AMU - ";A2)-1));"Br. AMU - ";"");6);"")

Note : fonctionne avec 6 numéros aprés "Br. AMU..." et elle est adaptée pour une version Excel < à 365.

Bonjour BAROUTE78, JB_ et JFL, merci, ça fonctionne du tonnerre et la formule est si simple quand on connait les syntaxes...

JB_ , je n'ai pas testé la formule pour le moment, je suis sur qu'elle fonctionne, mais c'est effectivement une formule PQ que je cherchais , même un vendredi 13...

Mais elle servira surement à d'autres.

Merci, à la prochaine et bon WE

Bonsoir à tous !

Bien...

Je vous remercie de ce retour.

----> Ne pas oublier de passer le sujet en mode résolu !

Rechercher des sujets similaires à "power query extraire information multi lignes"