Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Traitement de donnée avancée sur excel

Posté par
Nalia
04-12-16 à 18:19

Bonsoir à tous, j'étais en train d'étudier une suite de nombre, mais je me suis retrouvée devant une impasse. J'étudie des nombres particuliers jusqu'à un nombre N, mais je voudrais savoir il y a combien de tel nombre dans une certaine intervalle. Je voudrais par exemple savoir combien je trouve de nombre 2 dans une intervalle de 0 à 100 000. Merci de votre compréhension!!

Posté par
carita
re : Traitement de donnée avancée sur excel 04-12-16 à 19:26

bonjour

une idée : transformer le nombre en chaine de caractère,
puis lire cette chaine, en isolant chaque caractère qui la compose  (dans une boucle de 1 à longueur_chaine), et comparer avec "2", par ex.
créer un compteur qui s'incrémente à chaque occurrence.

Posté par
Nalia
re : Traitement de donnée avancée sur excel 04-12-16 à 19:31

Merci carita, mais tu peux m'expliquer comment on fait cela, certes je sais utiliser MOD mais je ne suis pas un informaticien. Puisque je sais pas comment la transformer en chaîne de caractère et isoler tout les 2 par exemple en les comparant.  Quel sont les choses a faire?

Posté par
patrice rabiller
re : Traitement de donnée avancée sur excel 05-12-16 à 04:12

Bonjour,
Il est possible de résoudre ce problème en décomposant les nombres en chiffres :
- en colonne A, on met la suite de nombres à décomposer, en commençant dans la cellule A1
- en colonne B, on met le chiffre des unités. En B1 on met la formule "=mod(A1;10)"
- en colonne C, on met le chiffre des dizaines. C1=mod(quotient(A1;10);10)
- en colonne D on met le chiffre des centaines. D1=mod(quotient(a1;100);10)
- en colonne E, on met le chiffre des milliers. E1=mod(quotient(A1;1000);10)
etc ...

On peut même, n'écrire qu'une formule, en B1, la recopier vers la droite aussi loin que l'on veut puis recopier les cellule B1, C1, D1... vers le bas aussi loin que l'on veut.

Ensuite, il ne reste plus qu'à dénombrer les chiffres "2" présents dans toutes les colonnes (sauf la colonne A)

Posté par
Nalia
re : Traitement de donnée avancée sur excel 05-12-16 à 13:44

En faites dans la 2ème colonne j'ai utiliser mod 10, et ici je trouve des nombre variant de 1 à 9, plus précisement 1,2,5,7,9 mais ma question précise serai de savoir comment savoir il y a combien de 2 sur un intervalle [a;b]. Mais ensuite je vais savoir plus tard combien de nombre par exemple 171 se suivant dans cet suite irrégulière des nombres. Merci Patrice mais le problème c'est que je n'arrive pas à dénombrer à la fin même en suivant vos étapes. Merci de votre compréhension, j'espère avoir une réponse au plus vite.

Posté par
mathafou Moderateur
re : Traitement de donnée avancée sur excel 05-12-16 à 14:40

Bonjour,

ne pas s'égarer peut être sur les chiffres 2 alors qu'on cherche les nombres 2 ...

on peut mettre dans une case à côté une formule du genre :
B1 : =SI(A1=2;1;0) puis la tirer vers le bas
il suffit de faire la somme des éléments de la colonne B pour avoir le nombre de nombres 2 de la colonne A

(la suite des nombres est en colonne A, ceci dit une feuille Excel de 100 000 lignes ??? Excel n'est peut être bien pas du tout adapté à ce problème !!)

Posté par
Nalia
re : Traitement de donnée avancée sur excel 05-12-16 à 15:26

Bonjour mathafou, merci de votre réponse, connaîtrait vous un logiciel plus adaptée à ce problème.

Posté par
mathafou Moderateur
re : Traitement de donnée avancée sur excel 05-12-16 à 16:13

un logiciel dans lequel on peut faire des boucles et calculer tout ça au fur et à mesure et pas étaler toutes les cellules à la queue leu leu, physiquement présentes même quand on n'en a plus besoin ...
étaler toutes les données dans des cellules est un mauvais plan si elles sont en nombre énorme.


pour ça n'importe quel logiciel de calcul, voire une simple calculette programmable, tout dépend comment sont obtenues tes valeurs.
je pense que même la partie programmation (un espèce de Basic) de Excel pourrait faire l'affaire mais cela semble assez acrobatique.
jamais utilisé, je préfère utiliser un vrai langage de programmation à part entière :
dérivés du C, Java, JavaScript, voir même (je n'ai pas honte) Algobox !
les "pro" te conseilleraient Python ou d'autres trucs plus "universitaires", ou plus ou moins hérités du Pascal


avec une boucle du genre :

compteur = 0
répéter autant que nécessaire
| calculer un des nombres à tester
| si il est égal à 2 (ou à la valeur cible quelle qu'elle soit)
| | incrémenter le compteur de 1
compteur contient le nombre de nombres de la liste qui valent 2

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !