Transformer une colonne en vrai tableau avec Excel

Cette formule sert à rassembler toutes les valeurs de Tableau1[Réponse], puis à les découper en un vrai tableau, en utilisant ; et CAR(10) comme séparateur :

=FRACTIONNER.TEXTE(JOINDRE.TEXTE(CAR(10);VRAI;Tableau1[Réponse]);";";CAR(10))

Ce qu’elle fait, étape par étape :

  1. JOINDRE.TEXTE(CAR(10);VRAI;Tableau1[Réponse])
    • concatène toutes les cellules de la colonne Réponse
    • insère un saut de ligne entre chaque cellule
    • ignore les cellules vides grâce à VRAI
  2. FRACTIONNER.TEXTE(...;";";CAR(10))
    • découpe le texte obtenu
    • ";" = séparateur de colonnes
    • CAR(10) = séparateur de lignes

En pratique, si vos cellules contiennent par exemple :

A;B;C
D;E;F
G;H;I

la formule renverra un tableau :

ABC
DEF
GHI

Point d’attention : pour que le résultat soit propre, chaque cellule de Tableau1[Réponse] doit respecter la même structure, avec les champs séparés par ;.

Version plus lisible pour vos formules :

=FRACTIONNER.TEXTE(
JOINDRE.TEXTE(CAR(10);VRAI;Tableau1[Réponse]);
";";
CAR(10)
)

Et en vidéo:

Comparer des plages de données en quelques instants - la vidéo (3/3)

Dernier opus de cette série en trois épisodes de difficulté croissante.

Après avoir vu l'approche générale et l'utilisation avec la formule SCAN, voici l'explication détaillée du code VBA sous-jacent et comment l'importer dans vos données (voir à 19:35)

Inscrivez-vous à ma newsletter pour recevoir le fichier.

Amusez-vous bien.

Comparer des plages de données en quelques instants (2/3)

Ce post fait suite à cette technique pour pouvoir comparer des plages les unes avec les autres, par exemple 4 lignes les unes avec les autres, mais qui situées un peu partout dans le fichier.

On va ici reprendre la même idée, mais l'automatiser et rapatrier le résultat dans une autre feuille.

Inscrivez-vous à ma newsletter pour recevoir le fichier.

J'ai aussi ajouté une variante de la fonction ASSEMB.V pour que les zones non remplies retourne une cellule vide à la place de#N/A :

=SCAN("";ASSEMB.V(visu);LAMBDA(acc;v;SI.NON.DISP(v;"")))

Et finalement, rejoignez XaLanna pour une démonstration complète en VBA !