Codage de tableau
Bonjour,
j'ai actuellement un tableau de données contenant les réponses d'un questionnaire sous cette forme (en un peu plus grand)
sexe / Age / pratiquez vous du sport / combien de temps
homme / 26 / oui / entre 5 et 10min
femme / 53 / oui / entre 30 et 50min
homme / 32 / oui / entre 5 et 10min
les réponses proviennent de questions à choix multiples principalement.
Pour l'exploiter et l'utiliser, j'aurai besoin de le transformer en :
1 (sexe) / 2 (Age) / 3 (pratiquez vous du sport) / 4 (combien de temps)
A / 26 / A / A
B / 53 / A / C
A / 32 / A / A
en gros coder les réponses ; remplacer les données (homme/femme) par des lettres (A/B)
j'ai essayé avec la formule SI, mais c'est j'ai un peu du mal. De plus, il y a 74 questions et 425 répondants...
Si vous connaissez un moyen de remplacer les données par des codes, merci de votre réponse
Bonjour,
le plus simple serait que tu nous donne le classeur excel (possibilité de joindre un fichier sur le forum),
afin que quelqu'un te propose une solution, à première vue ça ne semble pas compliqué ce que tu souhaites faire.
Bonjour,
voilà en pièce jointe le tableau.
quelques explications ;
ligne n°1 les numéros des questions
ligne n° 2 les possibilités de réponses (à choix unique, choix multiple, ou réponse numérique)
de la ligne n°3 à 11 les possibilités de réponses avec le codage (A, B, C, etc...)
puis à partir de la ligne 13, les réponses que je souhaiterai remplacer par des lettres (A, B,C, etc...)
pour la première colonne homme/femme, j'ai fait le codage : c'est pourquoi elle est en bleu.
A mon avis il y a différentes difficultés selon si ce sont des réponses à choix unique, choix multiple ou numérique.
Ce serait sympa de m'expliquer comment faire pour que la prochaine fois je soit capable de le réaliser tout seul !
merci d'avance
(le tableau est en 2 partie sinon il est trop gros)
-- 23 Déc 2010, 16:00 --
et le tableau n°2
Voici un exemple pour une ligne :
Je n'ai gardé comme réponse que la ligne 13, et l'équivalent avec les lettres A,B... correspondants aux réponses de cette ligne se trouve à la ligne 14. (J'ai fait uniquement pour les 10 premières questions).
J'ai utilisé la fonction RECHERCHEV, qui recherche un terme dans une colonne et te donne la valeur d'une cellule situé sur la même ligne. Cette fonction ne pouvant donner la valeur d'une cellule citué uniquement sur la droite, j'ai copié/collé la colonne A (qui se trouve donc à gauche de toutes les autres) en colonne AY.
Cette solution ne fonctionne pas pour les valeurs qui n'ont pas d'équivalent dans la liste des choix.
Ex : "de 20 à 30 ans", la réponse est "23".
Bonjour
Pour faire ce que tu demandes, il est obligatoire que les réponses correspondent exactement aux choix proposés (Tout au moins pour les réponse à choix unique)
Hors, ce n'est pas le cas.
Exemple
La cellule F19 contient le texte
Oui dans le cadre d'un club
et la cellule modèle réponse en F4
Oui dans le cadre d’un club
Si ces textes paraissent identiques, il n'en est rien, l'un contient une apostrophe (CODE(146) et l'autre une apostrophe CODE(39) et Excel les différencie.
Autre exemple G13 et G5
G13 contient le même texte que G5, mais G5 a une espace en plus.
Trop de cellules présentent ce même genre d'écart.
Sinon, pour les réponses uniques, tu peux voir sur le fichier joint à partir de la ligne 442 ce que donnerait une formule simple pour faire la conversion.
Cordialement
Bonsoir
A mon habitude j'ai fait une macro mais qui traite tous les cas
Quelques remarques dans le fichier dont l'apostrophe que t'indique Amadéus
Ce n'est que la partie 1 que j'ai traitée
Bonjour et meilleurs voeux,
merci pour ses réponses, j'ai trouvé les réponses qui ne correspondaient pas avec les choix de réponses, j'arrive à les remplacer.
par contre je bloque sur les réponses à choix multiples, comment fait tu pour qu'il te remplaces par plusieurs lettres ?
merci de votre réponse
-- 04 Jan 2011, 11:34 --
autre chose,
je ne comprend pas comment tu arrives à remplacer un chiffre en lettre (dans les réponses numériques)
merci
Bonjour et Bonne Année
je pense (mais pas sur sur) que tu t'adresses à moi
sur les réponses à choix multiples, comment fait tu pour qu'il te remplaces par plusieurs lettres
Comme pour les réponses à choix unique, je décompose (Split) la réponse (comme elle est séparée par des points-virgules) en un tableau contenant toutes la réponses comme étant unique, et pour chaque morceau de réponse (en cas de réponse unique : 1 seul morceau) je cherche la lettre correspondante
Et tant que je ne suis pas au bout du tableau la réponse est constituée des lettres correspondantes aux réponses
remplacer un chiffre en lettre (dans les réponses numériques)
j'utilise le principe de RECHERCHEV avec comme critère de retourner la ligne relative de la valeur supérieure, ainsi avec cette ligne relative j'en déduit la ligne de la lettre correspondante que je mets dans la valeur retournée
Bonne journée
Bonjour Banzaï,
Concernant les réponses à choix multiples, j'ai compris. J'ai donc fait l'autre partie du tableau (pour m’entraîner !)
Par contre je bloque toujours sur les réponses numériques et la fonction "recherchev".
Si ça ne te déranges pas, je serais reconnaissant que tu m'expliques un peu plus en détails. (sur forum ou feuille excel)
merci !
Bonjour
A lire
Juste la partie qui traite les réponses numériques
For J = 3 To 11 ' Prépare le tableau avec limite inférieure et supérieure
If Cells(J, Cl) <> "" Then
Msg = UCase(Cells(J, Cl)) ' Passe le choix en majuscules
If InStr(1, Msg, "MOINS") > 0 Then ' Doit correspondre au 1er choix
Limites(0) = Val(Mid(Msg, InStr(1, Msg, "DE ") + 3, 100)) ' Choix intermédiaires
ElseIf InStr(1, Msg, "ENTRE") > 0 Then
Limites(J - 3) = Val(Mid(Msg, InStr(1, Msg, "ET ") + 3, 100)) ' Choix final
ElseIf InStr(1, Msg, "PLUS") > 0 Then
Limites(J - 3) = 10000
End If
End If
Next J
'
' Les données importantes sont remplacées par "...."
'
' A la sortie dans le tableau Limites on a
' Limites(0) la valeur qui est dans le choix "Moins de ...."
' Limites(1) à au maximum Limites(7) la valeur dans le choix "Entre (on s'en fout) et ...."
' Limites(dernier élément du tableau) la valeur dans le choix "Plus de ...."
'
' Il faut que les propositions doivent TOUJOURS respecter une certaine syntaxe
'
' 1ère proposition : "Moins de ..."
' Propositions intermédiaires : "Entre (une valeur) et ...."
' Dernière proposition : "Plus de ...."
'
' Les réponses doivent être NUMERIQUES
'
For J = 13 To Lg ' Boucle sur toute les réponses
If Cells(J, Cl) <> "" Then ' Réponse à cette question ?
Msg = "" ' Initialise les équivalences Choix --> Lettre
Trouve = False
For K = 0 To 8
If Val(Cells(J, Cl)) <= Limites(K) Then ' Réponse inférieure à la limite supérieure de la fourchette
Trouve = True ' On note une concordance
Msg = Msg & Cells(K + 3, 1) ' Récupère la Lettre attribuée
Exit For ' Dés que trouvé on sort de la boucle
End If
Next K
If Trouve = False Then ' Un élément de la réponse ne concorde pas
Cells(J, Cl).Interior.ColorIndex = 7 ' On signale la cellule en cause
End If
Cells((J - 12) + Lg, Cl) = Msg ' Ecriture de la conversion réponse --> lettre
End If
Next JJ'espère que tu vas pouvoir comprendre (je ne suis pas pédagogue)
Sinon à te lire
rebonjour,
ce n'est pas faute d'avoir essayer mais je n'arrive pas à comprendre comment faire pour les réponses numériques.
je me permet donc de refaire appel à tes services en t'envoyant une seule question à réponse numérique.
si tu pouvais me la coder en faisant apparaître les formules ce serait sympa. merci