Exporter des données

Résolu/Fermé
djpolaubri Messages postés 44 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 21 mai 2016 - 6 oct. 2015 à 14:45
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 6 oct. 2015 à 16:04
Bonjour a tous,

dans le cadre d'un laboratoire de physique, j'ai du effectuer une série de mesures (plusieurs fois une centaine de mesures) et je dois les analyser.

notamment j'ai besoin de savoir le nombre d'itération de chaque valeurs.

c'est à dire si j'ai une colonne excel :
0
1
0
2
1

j'aimerais récupérer le fait que j'ai deux fois 0, deux fois 1 et une fois 2.
d'après mon titulaire, ce n'est pas possible directement sur excel.

je voudrais donc écrire un petit programme python pour le faire, mais pour cela j'ai besoin que mes données soient en une lignes, donc que avec la colonne :
0
1
0
2
1

j'obtienne : 0,1,0,2,1

savez vous comment faire ?


Merci beaucoup de votre attention,

Djpolaubri

2 réponses

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
Modifié par Kuartz le 6/10/2015 à 14:58
Bonjour,

Vous direz à votre titulaire d'arrêter de dire que ce n'est pas possible quand on ne le sait pas. C'est une programme assez simple à coder en VBA.

Petite question, est-ce que ces valeurs ne seront toujours que 1 et 2?

Cordialement.
0
djpolaubri Messages postés 44 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 21 mai 2016 7
6 oct. 2015 à 15:09
VBA ?

pas que 1 et 2, mais toujours des naturels
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par Zoul67 le 6/10/2015 à 15:02
Bonjour,

Pour obtenir ta liste, je vois deux méthodes :
- soit tu copie tes données, colles la transposée et enregistres en csv
- soit tu utilises la fonction concatener (en B2 =CONCATENER (B1;",";A2))

Mais je rejoins Kuartz, ce que tu décris est tout à fait possible avec Excel. Si c'est la séquence 0-->1-->0-->2-->1 qui t'intéresse avec concaténation de 5 valeurs successives puis comparaison à la valeur 01021. Si l'ordre n'importe pas, avec CONCATENER et GRANDE.VALEUR.

A+
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
6 oct. 2015 à 15:18
Affichez l'onglet développeur dans le ruban d'excel : https://support.microsoft.com/fr-fr/office/afficher-l-onglet-d%c3%a9veloppeur-e1192344-5e56-4d45-931b-e5fd9bea2d45?correlationid=fbd948ff-b882-4879-8304-4ac4bf74b21d&ui=fr-fr&rs=fr-fr&ad=fr

Cliquez sur Développeur puis Visual Basic.

Faire un clic droit sur "Microsoft Excel Objects" dans le panneau de gauche.

Cliquez sur "Insertion -> Module"

Double cliquez sur "Module 1".

Copiez/Collez le code suivant dans la fenêtre de droite (grand carré blanc) :

Sub ITERATIONS()

    Dim DL As Long, NOMBRE0 As Long, NOMBRE1 As Long, NOMBRE2 As Long

    DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'Définit la dernière ligne du tableau, mettre la colonne la plus remplie (1 = A)

    For i = 1 To DL
    
        If Range("A" & i).Value = 0 Then 'Si les valeurs sont en A
            NOMBRE0 = NOMBRE0 + 1
        End If
        If Range("A" & i).Value = 1 Then 'Si les valeurs sont en A
            NOMBRE1 = NOMBRE1 + 1
        End If
        If Range("A" & i).Value = 2 Then 'Si les valeurs sont en A
            NOMBRE2 = NOMBRE2 + 1
        End If
            
    Next i
    
MsgBox ("Résultats :" & vbLf & vbLf & "- Nombre de <0> : " & NOMBRE0 & vbLf & vbLf & "- Nombre de <1> : " & NOMBRE1 & vbLf & vbLf & "- Nombre de <2> : " & NOMBRE2)
    
End Sub


Quittez l'éditeur visual basic (croix rouge)

Sur votre fichier excel, il suffit d'aller dans "Développeur" puis dans Macros, cliquez sur "ITERATIONS" et cliquez sur "Exécuter".

Enregistrez le fichier que vous pourrez réutiliser à chaque fois.

N'oubliez pas simplement de modifier le code en fonction de vos besoins (les commentaires sont là pour ça).

PS : Le code ne marche que pour 0, 1 et 2. Je me penche dessus pour le rendre universel.

Cordialement.
0
djpolaubri Messages postés 44 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 21 mai 2016 7
6 oct. 2015 à 15:20
j'ai réussi a les organiser sous la forme 0,1,0,2,1 avec la fonction CONCATENER,

Merci beaucoup :)
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
6 oct. 2015 à 15:22
Bon, j'aurais essayé de faire un truc classe...
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
6 oct. 2015 à 15:37
Ah mais j'ai mal lu... je croyais vraiment qu'on cherchait quelque chose de compliqué (si la séquence se reproduit).

Un tableau croisé dynamique suffit.

cf. https://www.cjoint.com/c/EJgnKdoaFgJ
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
6 oct. 2015 à 15:43
Oui c'est vrai qu'en faisant un TDC ca reste le plus simple. Tout sera compilé dedans.
0