Concatener plusieurs cellules, avec une variable quand aux cellules
tacounet
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
DjiDji59430 Messages postés 4253 Date d'inscription Statut Membre Dernière intervention -
DjiDji59430 Messages postés 4253 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai beau tourner le problème dans tous les sens, je n'en vois pas la solution...
Je cherche à concaténer (pour pouvoir trier ultérieurement) des données qui se trouvent dans un tableau à 4 colonnes, avec des informations réparties sur plusieurs lignes (ce nombre de lignes est variable), dans mes colonnes B et C.
Ces informations proviennent d'un copier/coller depuis un site aéronautique, et contiennent des données classées par "paragraphes".
Chaque paragraphe commence dans la première ligne de la colonne A par "-";"+"; ou "*".
En colonne B, j'ai une référence, qui me servira à trier ultérieurement,
En colonne C, j'ai plusieurs lignes (nombre variable) que je voudrais soit regrouper en une cellule pour les trier ensuite, soit déplacer dans les colonnes suivantes au sein de ma ligne contenant "-" et ma référence.
En colonne D, j'ai bricolé un truc pour afficher un caractère spécifique (°) à la "fin" de mon paragraphe, avant que ça recommence en A avec un "-";"+"; ou "*".
Je cherche donc à regrouper sur une ligne ce qui se trouve entre "-";"+"; ou "*", et "°".
J'ai lu que rien n'est impossible avec Excel, mais là, j'avoue, je sèche complètement...
Je n'entend rien au langage VBA, même si j'arrive à reproduire certaines choses quand je tombe sur un exemple qui ressemble à ce que je cherche.
La formulation, c'est de la logique pure et simple, mais je ne vois pas comment mettre ça en forme.
In fine, le plan est de sortir un fichier CSV qui me permettra d'afficher sur un fond cartographique les informations (il y a des coordonnées dans le tas) des lignes en B...
Si une âme charitable passait dans le coin...
https://www.dropbox.com/scl/fi/52883hwq1l2vvo9zesz88/4-colonnes.xlsx?dl=0&rlkey=uuw47oz7ij8avliflpxoojkz1
Merci et bon week-end.
Stéphane
J'ai beau tourner le problème dans tous les sens, je n'en vois pas la solution...
Je cherche à concaténer (pour pouvoir trier ultérieurement) des données qui se trouvent dans un tableau à 4 colonnes, avec des informations réparties sur plusieurs lignes (ce nombre de lignes est variable), dans mes colonnes B et C.
Ces informations proviennent d'un copier/coller depuis un site aéronautique, et contiennent des données classées par "paragraphes".
Chaque paragraphe commence dans la première ligne de la colonne A par "-";"+"; ou "*".
En colonne B, j'ai une référence, qui me servira à trier ultérieurement,
En colonne C, j'ai plusieurs lignes (nombre variable) que je voudrais soit regrouper en une cellule pour les trier ensuite, soit déplacer dans les colonnes suivantes au sein de ma ligne contenant "-" et ma référence.
En colonne D, j'ai bricolé un truc pour afficher un caractère spécifique (°) à la "fin" de mon paragraphe, avant que ça recommence en A avec un "-";"+"; ou "*".
Je cherche donc à regrouper sur une ligne ce qui se trouve entre "-";"+"; ou "*", et "°".
J'ai lu que rien n'est impossible avec Excel, mais là, j'avoue, je sèche complètement...
Je n'entend rien au langage VBA, même si j'arrive à reproduire certaines choses quand je tombe sur un exemple qui ressemble à ce que je cherche.
La formulation, c'est de la logique pure et simple, mais je ne vois pas comment mettre ça en forme.
In fine, le plan est de sortir un fichier CSV qui me permettra d'afficher sur un fond cartographique les informations (il y a des coordonnées dans le tas) des lignes en B...
Si une âme charitable passait dans le coin...
https://www.dropbox.com/scl/fi/52883hwq1l2vvo9zesz88/4-colonnes.xlsx?dl=0&rlkey=uuw47oz7ij8avliflpxoojkz1
Merci et bon week-end.
Stéphane
Configuration: Windows / Chrome 93.0.4577.63
A voir également:
- Concatener plusieurs cellules, avec une variable quand aux cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Concatener deux cellules excel - Guide
- Verrouiller cellules excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Afficher cellules masquées excel ✓ - Forum Excel
7 réponses
Bonjour à tous,
Une proposition :
https://www.cjoint.com/c/KIlosz8z2BY
Crdlmt
Une proposition :
https://www.cjoint.com/c/KIlosz8z2BY
Crdlmt
Bonjour DjiDji59430,
Je me suis penché sur ta formule "TRANSPOSE/DECALER", et bien que je n'en saisisse pas toute la subtilité (ça va venir, je me fais confiance) je chercherais, (du coup on en veut toujours plus...), à y ajouter une condition "si contient ") LF", alors rien"...
Mais je ne sais pas trop où ajouter le § si(nb.si(D3;"*) LF*";"") §.
Du coup, je tatonne, mais la méthode de la découverte donne parait-il de bons résultats.
Encore merci
Je me suis penché sur ta formule "TRANSPOSE/DECALER", et bien que je n'en saisisse pas toute la subtilité (ça va venir, je me fais confiance) je chercherais, (du coup on en veut toujours plus...), à y ajouter une condition "si contient ") LF", alors rien"...
Mais je ne sais pas trop où ajouter le § si(nb.si(D3;"*) LF*";"") §.
Du coup, je tatonne, mais la méthode de la découverte donne parait-il de bons résultats.
Encore merci
Salut,
Dans ton fichier, à partir de la colonne E, tu reprends, cellule après cellule au sein de la ligne, chaque ligne de la colonne D.
C'est exactement ce que je cherchais à faire, mais du coup, il arrive qu'il y ai des données qui ne m'interesse pas (le "A) LFCT" de la cellule D3) par exemple, mais qui n'apparaissent pas systématiquement dans chaque paragraphe.
Du coup, j'essaie de modifier ta formule
=SI(ET($C3=$B3;D3<>"");TRANSPOSE(DECALER($D3;0;0;NB.SI($C$2:$C$8116;$C3);1));"")
en SI D* contient ") LF"; n'affiche rien; sinon applique la formule.
Le gros soucis de mon projet, c'est que je pars de données aéronautiques quotidiennes, dont je ne maitrise pas le formatage, qui ne sont pas systématiquement identiques, et dont chaque paragraphe contient des informations dont je peux avoir, ou non, besoin.
L'idée est de pouvoir regrouper sur une ligne, et, par la suite, de faire le tri dans les colonnes...
Cdlt
Dans ton fichier, à partir de la colonne E, tu reprends, cellule après cellule au sein de la ligne, chaque ligne de la colonne D.
C'est exactement ce que je cherchais à faire, mais du coup, il arrive qu'il y ai des données qui ne m'interesse pas (le "A) LFCT" de la cellule D3) par exemple, mais qui n'apparaissent pas systématiquement dans chaque paragraphe.
Du coup, j'essaie de modifier ta formule
=SI(ET($C3=$B3;D3<>"");TRANSPOSE(DECALER($D3;0;0;NB.SI($C$2:$C$8116;$C3);1));"")
en SI D* contient ") LF"; n'affiche rien; sinon applique la formule.
Le gros soucis de mon projet, c'est que je pars de données aéronautiques quotidiennes, dont je ne maitrise pas le formatage, qui ne sont pas systématiquement identiques, et dont chaque paragraphe contient des informations dont je peux avoir, ou non, besoin.
L'idée est de pouvoir regrouper sur une ligne, et, par la suite, de faire le tri dans les colonnes...
Cdlt
Bonjour,
si cela peut aider, voici une macro qui va supprimer les "A) LFCT et descendre de 2 lignes le contenu de la colonne B pour l'aligner avec la colonne C:
@+ Le Pivert
si cela peut aider, voici une macro qui va supprimer les "A) LFCT et descendre de 2 lignes le contenu de la colonne B pour l'aligner avec la colonne C:
Option Explicit Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1") NoCol = 3 'lecture de la colonne C For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) If Left(Var, 2) = "A)" Then FL1.Cells(NoLig, NoCol).ClearContents 'supprime A) FL1.Cells(NoLig + 2, NoCol - 1).Value = FL1.Cells(NoLig, NoCol - 1).Value 'descend 2 lignes colonne B FL1.Cells(NoLig, NoCol - 1).ClearContents End If Next Set FL1 = Nothing End Sub
@+ Le Pivert
Bonjour à tous,
J'ai éliminé les "mauvais" LF, mais il restait des A) EGJB
Du coup, j'élimine les A)espace
https://www.cjoint.com/c/KInrazp0taY
Crdlmt
J'ai éliminé les "mauvais" LF, mais il restait des A) EGJB
Du coup, j'élimine les A)espace
https://www.cjoint.com/c/KInrazp0taY
Crdlmt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour messieurs,
Je répond rapidement (je suis au boulot, SAMU hélico, et en préalerte pour une intervention...)
Effectivement, ce que j'ai rapidement regardé de vos 2 réponses semble combler mon souhait...
Je regarde plus en détail au plus vite, et je reviens vers vous dès que possible.
Merci beaucoup.
Je répond rapidement (je suis au boulot, SAMU hélico, et en préalerte pour une intervention...)
Effectivement, ce que j'ai rapidement regardé de vos 2 réponses semble combler mon souhait...
Je regarde plus en détail au plus vite, et je reviens vers vous dès que possible.
Merci beaucoup.
Bonsoir,
Pardon pour tout à l'heure, la journée d'astreinte a commencé très (trop?) calmement, et tout s'est enchainé rapidement.
C'est terminé pour aujourd'hui, je vais pouvoir me pencher plus avant sur la proposition de DjiDji59430, que je remercie chaleureusement, de même que Le Pingou, pour vos aides rapides.
Je vais maintenant m'attaquer a comprendre les différentes formules et continuer sur cette lancer pour pouvoir, étape par étape, arriver au .csv qui sera exploitable pour moi dans mon appli de navigation et dans mes SIG.
Encore merci et bonne soirée.
PS, si vous passez dans le secteur d'Amiens (80) ou d'Orthez (64), prévenez moi...Si possible, nous partagerons un café/bière/soda (au choix) ensemble.
Stéphane
Pardon pour tout à l'heure, la journée d'astreinte a commencé très (trop?) calmement, et tout s'est enchainé rapidement.
C'est terminé pour aujourd'hui, je vais pouvoir me pencher plus avant sur la proposition de DjiDji59430, que je remercie chaleureusement, de même que Le Pingou, pour vos aides rapides.
Je vais maintenant m'attaquer a comprendre les différentes formules et continuer sur cette lancer pour pouvoir, étape par étape, arriver au .csv qui sera exploitable pour moi dans mon appli de navigation et dans mes SIG.
Encore merci et bonne soirée.
PS, si vous passez dans le secteur d'Amiens (80) ou d'Orthez (64), prévenez moi...Si possible, nous partagerons un café/bière/soda (au choix) ensemble.
Stéphane
Bonsoir DjiDji59430, bonsoir à tous.
Un immense merci pour le document. Comment puis-je obtenir une traduction de la formule utilisée? Car j'avoue humblement, je n'y comprends rien.
J'essaie de partir de votre document initial, pour l'adapter de manière "pérenne" à mon besoin.
Comme expliqué plus haut, je récupère quotidiennement (quand je suis de service) des données aéronautiques qui se présentent, après un copier/coller judicieux, sous la forme que j'ai transmis.
Je fais un premier copier/coller entre le site d'informations, et une feuille de mon document excel, et je voudrais via formule, que votre feuille aille chercher, dans la feuille d'à coter, les données de la colonne B (ref) et de la colonne D (texte).
Ca, c'est bon, j'y arrive. Mais au bout d'un certain nombre de lignes (la 417 pour être précis) les cellules D417, E417, F417... me renvoient systématiquement la cellule C417.
Je pense que cela fonctionne avec une logique "en ligne", alors que j'ai plutôt tendance à raisonner "en colonne".
Je vais reprendre à zéro (enfin presque) en m'appuyant sur votre nouvelle feuille de calcul
Encore mille mercis.
Bonne soirée
Un immense merci pour le document. Comment puis-je obtenir une traduction de la formule utilisée? Car j'avoue humblement, je n'y comprends rien.
J'essaie de partir de votre document initial, pour l'adapter de manière "pérenne" à mon besoin.
Comme expliqué plus haut, je récupère quotidiennement (quand je suis de service) des données aéronautiques qui se présentent, après un copier/coller judicieux, sous la forme que j'ai transmis.
Je fais un premier copier/coller entre le site d'informations, et une feuille de mon document excel, et je voudrais via formule, que votre feuille aille chercher, dans la feuille d'à coter, les données de la colonne B (ref) et de la colonne D (texte).
Ca, c'est bon, j'y arrive. Mais au bout d'un certain nombre de lignes (la 417 pour être précis) les cellules D417, E417, F417... me renvoient systématiquement la cellule C417.
Je pense que cela fonctionne avec une logique "en ligne", alors que j'ai plutôt tendance à raisonner "en colonne".
Je vais reprendre à zéro (enfin presque) en m'appuyant sur votre nouvelle feuille de calcul
Encore mille mercis.
Bonne soirée
Bonsoir,
=SI(ET(LC3=LC2;LC(-1)<>"");SI(ESTERREUR(CHERCHE("A) ";LC(-1)));TRANSPOSE(DECALER(LC4;0;0;NB.SI(L2C3:L8116C3;LC3);1));TRANSPOSE(DECALER(L(1)C4;0;0;NB.SI(L2C3:L8116C3;LC3)-1;1)));"")
La colonne(1) ajoutée permet de mesurer le nombre de lignes entre 2 ref. C'est ce nombre qui détermine la longueur de la plage créée par décaler. Cette plage verticale est transposée en plage horizontale par la fonction transpose.
Reste le A)espace
la fonction cherche regarde dans la première cellule (colonne E) si cette occurrence existe, sinon, elle renvoie "erreur".
Si c'est vrai, la plage verticale va commencer une cellule plus bas (D3==>D4) et sa longueur sera diminuée de 1, (;NB.SI(L2C3:L8116C3;LC3)-1) sinon, on transpose toute la plage.
Crdlmt
=SI(ET(LC3=LC2;LC(-1)<>"");SI(ESTERREUR(CHERCHE("A) ";LC(-1)));TRANSPOSE(DECALER(LC4;0;0;NB.SI(L2C3:L8116C3;LC3);1));TRANSPOSE(DECALER(L(1)C4;0;0;NB.SI(L2C3:L8116C3;LC3)-1;1)));"")
La colonne(1) ajoutée permet de mesurer le nombre de lignes entre 2 ref. C'est ce nombre qui détermine la longueur de la plage créée par décaler. Cette plage verticale est transposée en plage horizontale par la fonction transpose.
Reste le A)espace
la fonction cherche regarde dans la première cellule (colonne E) si cette occurrence existe, sinon, elle renvoie "erreur".
Si c'est vrai, la plage verticale va commencer une cellule plus bas (D3==>D4) et sa longueur sera diminuée de 1, (;NB.SI(L2C3:L8116C3;LC3)-1) sinon, on transpose toute la plage.
Crdlmt