Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 extraire les 2 premiers chiffres d'une suite alphanumérique aléatoire- colonne Power query

LAPIN CRETIN

XLDnaute Nouveau
bonjour à tous,

je cherche à créer une colonne personnalisée sur power query a partir d'une colonne existante

dans cette colonne, il y a des suite alphanumériques
je souhaite avoir les 2 premiers chiffres dans chaque ligne correspondante de la colonne créée...mais je ne trouve pas la méthode pour y arriver

21LCDK234543 => résultat souhaité 21
19LCU3467=> résultat souhaité 19
LCD4334567=> résultat souhaité 43
PU19K45678=> résultat souhaité 19


j'ai vu qu'il existe des fonction d'extraction comme text.middle, mais elles ne sont utiles que si on a une régularité dans les expressions alphanumériques
donc je fais appel à vos lumières..
merci pour votre aide.
 
Solution
Bonjour à tous
Nom de la colonne à adapter
VB:
Text.Start(Text.Select(Text.Replace([Texte]," ",""),{"0".."9"}),2)
ou plus simple si pas d'espaces qui traînent
Code:
Text.Start(Text.Select([Texte],{"0".."9"}),2)

job75

XLDnaute Barbatruc
Bonjour LAPIN CRETON, Bruno, chris,

Un p'tit coup de VBA ne mange pas de pain :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, i&, x$, n As Byte, y$, j%
With [A1].CurrentRegion.Resize(, 2)
    tablo = .Value 'matrice, plus rapide
    For i = 2 To UBound(tablo)
        x = tablo(i, 1)
        tablo(i, 2) = "" 'RAZ
        n = 0
        For j = 1 To Len(x)
            y = Mid(x, j, 1)
            If IsNumeric(y) Then
                n = n + 1
                tablo(i, 2) = tablo(i, 2) & y
                If n = 2 Then
                    If Left(tablo(i, 2), 1) = "0" Then tablo(i, 2) = "'0" & y
                    Exit For
                End If
            End If
    Next j, i
    '---restitution---
    Application.EnableEvents = False 'désactive les évènements
    .Value = tablo
    Application.EnableEvents = True 'réactive les évènements
End With
End Sub
Et c'est très rapide.

Testé en recopiant le tableau A2:A6 sur 100 000 lignes, la macro s'exécute chez moi en 0,4 seconde.

A+
 

Pièces jointes

  • Classeur(1).xlsm
    17.7 KB · Affichages: 3
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…