OVH Cloud OVH Cloud

Tableau croisé avec valeurs textes

3 réponses
Avatar
myname
Bonjour,

soit une feuille Excel avec 3 colonnes :
- Le nom d'une personne
- Le nom d'un pays
- Le nom d'une ville

Je voudrais obtenir un tableau croisé :
- en ligne : le nom des personnes
- en colonne : le nom des pays

Jusqu'ici, tout va bien, ça me donne
le nombre de villes visités par personne par pays.

Mais au lieu du nombre, je voudrais que la donnée
centrale soit une concaténation des noms de ville
(avec un espace au milieu).

Exemple :
- ligne : Bob
- colonne : Roumanie
- intersection: Bucuresti Brasov Craiova

Est-ce possible ?

Merci !

3 réponses

Avatar
isabelle
bonjour,

ce n'est pas possible, le champ de données est uniquement numérique.

isabelle


Bonjour,

soit une feuille Excel avec 3 colonnes :
- Le nom d'une personne
- Le nom d'un pays
- Le nom d'une ville

Je voudrais obtenir un tableau croisé :
- en ligne : le nom des personnes
- en colonne : le nom des pays

Jusqu'ici, tout va bien, ça me donne
le nombre de villes visités par personne par pays.

Mais au lieu du nombre, je voudrais que la donnée
centrale soit une concaténation des noms de ville
(avec un espace au milieu).

Exemple :
- ligne : Bob
- colonne : Roumanie
- intersection: Bucuresti Brasov Craiova

Est-ce possible ?

Merci !




Avatar
Elliac
Bonjour,

Le bout de code à exécuter à partir d'une copie de ton tableau :
Sub Macro1()
Range("a2").Select
While ActiveCell <> ""
If ActiveCell.Offset(1) = ActiveCell Then
While ActiveCell.Offset(1, 1) = ActiveCell.Offset(, 1)
ActiveCell.Offset(, 2) = ActiveCell.Offset(, 2) & " " _
& ActiveCell.Offset(1, 2)
ActiveCell.Offset(1).EntireRow.Delete
Wend
End If
ActiveCell.Offset(1).Select
Wend
End Sub

Camille

"myname" wrote:

Bonjour,

soit une feuille Excel avec 3 colonnes :
- Le nom d'une personne
- Le nom d'un pays
- Le nom d'une ville

Je voudrais obtenir un tableau croisé :
- en ligne : le nom des personnes
- en colonne : le nom des pays

Jusqu'ici, tout va bien, ça me donne
le nombre de villes visités par personne par pays.

Mais au lieu du nombre, je voudrais que la donnée
centrale soit une concaténation des noms de ville
(avec un espace au milieu).

Exemple :
- ligne : Bob
- colonne : Roumanie
- intersection: Bucuresti Brasov Craiova

Est-ce possible ?

Merci !





Avatar
JB
Bonjour,


Voir PJ http://cjoint.com/?mDqstjAzFk

S'il n'y avait qu'une villepar pays, nous pourrions obtenir le tableau
avec une formule matricielle.

On suppose que l'on a laliste des pays en G1,I1,.. et la liste des noms
en F2,F3,...

[A2].Select
Do While ActiveCell <> ""
x = Application.Match(ActiveCell, Range([F2], [F2].End(xlDown)),
0)
y = Application.Match(ActiveCell.Offset(0, 1), Range([G1],
[G1].End(xlToRight)), 0)
Range("F1").Offset(x, y).Value = Range("F1").Offset(x, y).Value &
_
ActiveCell.Offset(0, 2) & " "
ActiveCell.Offset(1, 0).Select
Loop

Cordialement JB