Formule Compliqué

Bonjour,

J'ai parcouru le forum sans trouver ma recherche.

Je sollicite votre aide pour la créer.

J'ai besoin de concaténer plusieurs cellule ( ABCD ) en une seul

Le problème est que c'est aléatoire, des fois c'est 3 cellule, des fois c'est 2, des fois 1. Le tout sur 10000 lignes.

Merci de votre aide

A

B

C - > ABC

A

B

C

D - > ABCD

A

B

C - > ABC

A

B - > AB

A - > A

A - > A

Salut,

Quand tu dis que c'est aléatoire, c'est vraiment aléatoire ou bien il s'agit en fait d'une règle (peut être compliqué) qui fait que parfois c'est 1, 2 ou 3 lignes.

Si c'est le premier cas, il va être dur de faire qque chose du fait de la partie aléatoire.

par contre dans le 2nd cas, il faut regarder.

Est-ce que tu as un bout de fichier pour mieux comprendre ton problème et sur quelle version de excel est-ce que tu es (il y a pas mal d'évolution des fonctions de concaténation dans les différentes version d'excel).

Hello, Merci de ta réponse rapide,

En effet j'ai préparer un exemple ici, le caractère "£" est le marqueur à prendre en compte pour debuter une nouvelle série de cellule a concaténer.

En effet il y a maximum 5 cellules a concaténer sans ordre défini, parfoi 2, parfois 3, parfois 5 ...

Je suis sur Excel 2016

7exemple.xlsx (8.18 Ko)

Alors J'ai réussi a obtenir quelque chose , mais j'ai besoin d'isoler maintenant une seul cellule.

tu comprendra plus dans le fichier en PJ:

6exemple.xlsx (8.25 Ko)

Bonjour frisoo,

Voyez si la solution proposée dans le fichier joint peut vous aider

Salut Frisoo,

Salut l'équipe,

bien incapable d'exécuter cela en formule!

En VBA, par contre...

Un double-clic démarre la macro.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tTab, vItem
'
Cancel = True
tTab = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row).Value
For x = 1 To UBound(tTab, 1)
    If InStr(tTab(x, 1), "£") > 0 Then
        If vItem <> "" Then tTab(x - 1, 2) = vItem
        vItem = Split(tTab(x, 1), "£")(1)
    Else
        vItem = vItem & " " & tTab(x, 1)
    End If
    If x = UBound(tTab, 1) Then tTab(x, 2) = vItem
Next
Range("A1").Resize(UBound(tTab, 1), 2).Value = tTab
'
End Sub

Bon, nous passerons sur l'absence de contexte réel...

A+

2frisoo.xlsm (14.46 Ko)

Merci pour vos aides précieuse,

J'ai réussi à arriver à ce que je voulais.

Rechercher des sujets similaires à "formule complique"