Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cross table avec du texte au centre?

7 réponses
Avatar
Chichile
Bonjour,

Une question maintes fois pos=E9e et pourtant je ne trouve pas de
r=E9ponse claire sur le forum...

J'ai une feuille de donn=E9es avec les titres en colonnes. Comment
obtenir l'=E9quivalent d'un tableau crois=E9 dynamique avec du texte dans
la partie centrale ?
C'est possible en Access dans la vue =AB Pivot table =BB des requ=EAtes,
mais en Excel il me semble que ce n'est pas possible d'utiliser un TCD
pour du texte. Pourriez-vous m'expliquer comment proc=E9der dans Excel ?
Un grand merci et une bonne journ=E9e !
C=E9cile

7 réponses

Avatar
isabelle
bonjour Céline,

il faut mettre ce champ en champ de donnée à "Nombre de " et également en champ de ligne

je t'ai mis un exemple ici : http://cjoint.com/?htqTcZdila

isabelle

Bonjour,

Une question maintes fois posée et pourtant je ne trouve pas de
réponse claire sur le forum...

J'ai une feuille de données avec les titres en colonnes. Comment
obtenir l'équivalent d'un tableau croisé dynamique avec du texte dans
la partie centrale ?
C'est possible en Access dans la vue « Pivot table » des requêtes,
mais en Excel il me semble que ce n'est pas possible d'utiliser un TCD
pour du texte. Pourriez-vous m'expliquer comment procéder dans Excel ?
Un grand merci et une bonne journée !
Cécile



Avatar
JB
Bonsoir,

On veut transformer les colonnes en matrice:

-Sélectionner G8:I10
=SI(ESTNA(EQUIV(1;(nom=$F9)*(question=G$8);
0));"";INDEX(réponse;EQUIV(1;(nom=$F9)*(question=G$8);0)))
Valider avec maj+Ctrl+Entrée

http://boisgontierjacques.free.fr/fichiers/Matriciel/MatricielTransformeCol onnesMatrice.xls

JB

On 19 juil, 12:06, Chichile wrote:
Bonjour,

Une question maintes fois posée et pourtant je ne trouve pas de
réponse claire sur le forum...

J'ai une feuille de données avec les titres en colonnes. Comment
obtenir l'équivalent d'un tableau croisé dynamique avec du texte dans
la partie centrale ?
C'est possible en Access dans la vue « Pivot table » des requêtes,
mais en Excel il me semble que ce n'est pas possible d'utiliser un TCD
pour du texte. Pourriez-vous m'expliquer comment procéder dans Excel ?
Un grand merci et une bonne journée !
Cécile


Avatar
Chichile
Bonjour,

C'est bien la solution matricielle qui me convient. Merci !

Par contre, une question à ce sujet (je n'ai jamais eu l'occasion de
travailler avec les matrices dans Excel) : quand je reproduis la
formule suggérée chez moi dans la barre de formules après avoir
sélectionné un range de cellules, puis que je pousse maj ctl enter, il
prend les références de cellules comme des références absolues (dans
l'exemple joint (nom=$F9) reste partout (nom=$F9) : $F9 ne change pas
selon la position de la cellule comme on le voudrait $F10, $F11 etc).

Est-ce que je procède mal ? Si vous aviez une suggestion, ce serait
bien ...
Merci d'avance !
Cécile
Avatar
Chichile
Problème résolu, pour info...

Cliquer dans la première cellule de la plage G9:l11(et non G8:I10), y
mettre cette formule, valider par ctrl-maj-enter, puis copier cette
première cellule sur tout le reste de la plage G9:l11.
Comme ça c'est OK chez moi !

Ceci dit avec mon tableau de plus de 10000 lignes, ça coince déjà...
"Calculating cells...:-( "
Avatar
JB
Dans ce cas, utiliser une macro:

On veut transformer les colonnes en matrice
Sub convert()
For Each c In Range("A2", [A65000].End(xlUp))
y = Application.Match(c, [F9:f11], 0)
x = Application.Match(c.Offset(0, 1), [g8:i8], 0)
If Not IsError(x) And Not IsError(y) Then
[F8].Offset(y, x) = c.Offset(0, 2)
End If
Next c
End Sub

http://cjoint.com/?huqX0Z30YN

JB


On 20 juil, 14:38, Chichile wrote:
Problème résolu, pour info...

Cliquer dans la première cellule de la plage G9:l11(et non G8:I10), y
mettre cette formule, valider par ctrl-maj-enter, puis copier cette
première cellule sur tout le reste de la plage G9:l11.
Comme ça c'est OK chez moi !

Ceci dit avec mon tableau de plus de 10000 lignes, ça coince déjà...
"Calculating cells...:-( "


Avatar
JB
Dans ce cas, utiliser VBA:

http://cjoint.com/?huqX0Z30YN

Sub convert()
For Each c In Range("A2", [A65000].End(xlUp))
y = Application.Match(c, [F9:f11], 0)
x = Application.Match(c.Offset(0, 1), [g8:i8], 0)
If Not IsError(x) And Not IsError(y) Then
[F8].Offset(y, x) = c.Offset(0, 2)
End If
Next c
End Sub

JB
On 20 juil, 14:38, Chichile wrote:
Problème résolu, pour info...

Cliquer dans la première cellule de la plage G9:l11(et non G8:I10), y
mettre cette formule, valider par ctrl-maj-enter, puis copier cette
première cellule sur tout le reste de la plage G9:l11.
Comme ça c'est OK chez moi !

Ceci dit avec mon tableau de plus de 10000 lignes, ça coince déjà...
"Calculating cells...:-( "


Avatar
Chichile
Un grand merci pour les solutions VBA. Je vais essayer ça tout de
suite.
Bonne journée.
Cécile