Menu

Transformer un tableau 'cas*variables' en 'variables*variables' [Résolu/Fermé]

Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
- - Dernière réponse : VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
- 26 déc. 2017 à 14:09
Bonjour,
J'ai un tableau composé d'une liste de cas (lignes) et d'une série de variables (colonnes). Les cellules du tableau contiennent des données chiffrées, à savoir le nombre de fois que, pour chaque cas, telle ou telle variable est présente (c'est-à-dire les occurrences). Il s'agit de nombres entiers peu élevés, généralement 1. La plupart des cellules restent vides ou contiennent zéro (ce qui revient au même).
J'aimerais transformer ce tableau en un tableau symétrique, de sorte qu'on puisse y lire la fréquence des cooccurrences de variables. Ce nouveau tableau énumère de ce fait les variables verticalement et horizontalement. La diagonale d'un tel tableau donne le nombre total de fois qu'une variable s'applique.
Est-ce possible avec Excel sans devoir introduire des formules cellule par cellule? Si ce n'est pas possible avec Excel, y a-t-il un autre logiciel qui le permet (par exemple SPSS où je n'ai toutefois pas trouvé cette fonction) ?
Merci d'avance
Afficher la suite 

6 réponses

Messages postés
10716
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 juin 2019
1310
0
Merci
Bonjour

On comprendrait mieux avec un exemple de ton fichier et du 2eme tableau !
A poster sur cjoint.com, faire créer un lien, le copier et revenir le coller ici

Dans l'attente
Cdlmnt
Via
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Voici le lien: https://www.cjoint.com/doc/17_12/GLxpCy3gLxd_CCM.txt
Utiliser une police à distance fixe pour une lecture plus facile.
Commentaire dans le fichier.
Messages postés
10716
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 juin 2019
1310
0
Merci
Pas sûr d'avoir tout compris
Un exemple, me dire si ça convient
https://www.cjoint.com/c/GLxqheYEhdL

Cdlmnt
Via
JvDo
Messages postés
1933
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2019
746 -
Bonsoir,

Si la solution de via55, que je salue, te convient, tu peux obtenir le même résultat avec : =PRODUITMAT(TRANSPOSE($B$2:$J$31);$B$2:$J$31)

cordialement
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Bonjour Via,
C'est exactement ça. Incroyable! C'est de la haute voltige informatique !! Un tout grand merci.
Joyeuses fêtes
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Bonjour JvDo,
C'est exactement cela que je cherchais, en effet. Un grand merci également. Je vais aussi essayer cette formule.
A bientôt (et déjà: bonnes fêtes)
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Rebonjour Via et JvDo,
Mes premières tentatives d'utiliser les formules ont échoué. J'ai sans doute encore des choses à apprendre. Ne connaissant pas la signification de dollars $ dans Excel, j'étudie la question.
A bientôt j'espère
Messages postés
10716
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 juin 2019
1310
0
Merci
Re

Les $ figent la référence
$A$1 fige la référence à la cellule A1 (référence absolue)
$A1 fige la référence à la colonne A (devient $A2 à la ligne suivante si on étire la formule) et A$1 fige la référence à la ligne 1 (devient B$1 à la colonne suivante) ce sont des références semi-absolues
A1 change si on décale la formule en ligne comme en colonne (référence relative)

A+
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Merci pour cette explication, Via55. Elle résume très bien ce que j'ai entretemps trouvé à gauche et à droite sur internet.
Malheureusement, je ne parviens pas à refaire le second tableau un peu plus bas sur le tableur (ceci après avoir adapté les dénominations de cellule du tableau symétrique à créer, c'est-à-dire dans le cas présent en remplaçant $L2 par $L14 et M$1 par M$14, tous les autres éléments de la formule se référant, sauf erreur, au tableau d'origine). En suivant l'exemple reçu, j'ai collé la formule dans la première case (ici donc L15), puis je l'ai copiée à droite et vers le bas. Je n'obtiens cependant que des #VALEUR! et des ####.
Hormis qu'il n'y avait pas d'adaptations à faire pour autant que j'aie compris, il en est de même pour la formule de JvDo.
Je crains que cela me dépasse. Je pensais pouvoir trouver un raccourci pour mon travail, mais en calcul "manuel" je l'aurais sans doute déjà terminé.
Encore merci à vous deux d'avoir eu la gentillesse de vouloir m'aider.
Messages postés
10716
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 juin 2019
1310
0
Merci
Il n'y a pas de raison de ne pas pouvoir adapter la formule
Poste un exemple de ton fichier sur cjoint.com, fais créer un lien que tu copies et reviens coller ici et en message privé si tu veux plus de confidentialité, je regarderai ça
Messages postés
1933
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2019
746
0
Merci
Bonsoir,

Tu ne pourras pas obtenir le tableau 2 à partir du tableau 1, ça c'est certain.
Ils ne se correspondent pas.

Et si tu nous en disais plus sur ton problème! Tu donnes l'impression de vouloir faire une ACP mais en même temps tu te perds dans des calculs de base. Donc dis nous en plus.

cordialement
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Bonjour,
J'avoue que le problème est peu commun et que, malgré que j'aie l'habitude de travailler avec des formules dans Excel, je suis loin d'être un spécialiste de ce logiciel.
Une analyse en composantes principales serait, en principe, envisageable. Mais je dispose de trop peu de données pour cela. Je me suis dès lors contenté d'une analyse par grappes.
Dans ces cas, mon tableau de contingence convient évidemment tel quel.
Le problème posé provient du fait que j'ai l'intention d'effectuer, en plus, une analyse avec une autre méthode, toujours en cours de développement. Cette méthode trouve son origine dans l'analyse des mots associés (bibliométrie, scientométrie...). D'autres applications n'étaient pas encore envisagées à ce moment. De ce fait, les tableaux de contingence de ce logiciel sont binaires. Ils n'acceptent, au stade actuel de son développement, que les valeurs 1 ou 0. Cependant, en attendant que le développement du logiciel en question reprenne, je peux contourner ce problème, puisque ce même logiciel permet d'entrer les données sous une autre forme, à savoir un tableau symétrique. Pour l'obtenir, je pensais trouver une manière simple qui me ferait gagner du temps.
Ceci étant, j'ai fait (sans doute maladroitement...) l'essai avec les deux formules qui m'ont aimablement été proposées, mais je ne parviens pas à obtenir un résultat. Voici le lien vers le fichier comportant le tableau de départ ainsi que le tableau symétrique que Via55 m'a fait parvenir et mes deux tentatives:
GLzoLrZWaLd_Exercice-GLxqheYEhdL-victime-nbsi.xlsx
Sans doute ai-je mal compris ou mal interprété quelque chose. J'ai procédé comme décrit hier à 18h20 (message n° 9 plus haut).
Petite précision: J'utilise Excel 2007. Cette version serait-elle en cause?
Ne laissez pas mon ignorance vous gâter ce jour de fête. Il n'y a pas le feu au lac. Encore merci pour l'intérêt que vous portez à ma question.
JvDo
Messages postés
1933
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2019
746 -
Bonsoir,

Ton lien cjoint n’est pas complet.

Cdlt
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
JvDo
Messages postés
1933
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2019
746 -
Bonsoir,

Là on est toujours sur le premier calcul.
Voilà de quoi lui tordre le cou : https://www.cjoint.com/c/GLzvLCalL8b

Maintenant, à toi de voir si tu veux compter le nombre de 1 de chaque variable DES ...... LEG.
Ou alors avoir la norme euclidienne au carré de ces mêmes variables.

Lorsque tu n'as que des 0/1, c'est la même chose. Quand tu auras autre chose que des 0/1, il faudra choisir.


Cordialement
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
Bonjour JvDo,
Je viens de refaire le tableau en tenant compte des instructions complémentaires contenues dans le fichier. Et ça marche! De plus, la formule est assez simple. Elle est notée.
Merci beaucoup pour cette aide,
VDL
Messages postés
10716
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 juin 2019
1310
0
Merci
Bonjour

Ma formule ne peux fonctionner qu'avec les valeurs en titres de lignes et de colonnes du tableau à double-entrée et auxquelles font références les formules

"L'imagination est plus importante que le savoir."    A. Einstein
VictimeDeLinformatique
Messages postés
162
Date d'inscription
vendredi 17 juin 2016
Statut
Membre
Dernière intervention
14 mai 2019
2 -
En effet, il fallait transposer séparément les entêtes (je m'étais déjà étonné pourquoi je ne trouvais pas de formule dans leurs cellules). L'ajout des en-têtes m'a permis de découvrir en plus que j'avais fait petite erreur de transcription dans la formule. Je l'ai corrigée. Maintenant, tout fonctionne parfaitement.
J'admire la structure hautement sophistiquée de cette formule que je serais incapable de reconstruire à partir de zéro moi-même. Je conserverai donc précieusement le fichier de manière à pouvoir la copier en l'adaptant selon les besoins.
Un tout grand merci pour cette aide! Problème résolu.