Une formule pour formules 1

Hello .

Je voudrais améliorer ma pratique des formules d'Excel et je suis débutant.

Ci-joint un tableau (que certains connaissent).

c2264222 4477 47d3 9f6e 3f155798913f

Voici le petit problème à résoudre.

J'aimerais pouvoir trouver une formule pour afficher dans une colonne le nombre de fois où chaque motoriste a été utilisé par des écuries.

Ex : les moteurs BMW ont été utilisés par 6 écuries, Matra par 2, Honda par 6 etc...

Ce qui me permettra d’afficher le plus grand nombre de fois où un motoriste a fourni un moteur à une écurie en faisant un tri ds la colonne des résultats.

Je suis sur une version iOS (Ipad) d’Excel et celle-ci est limitée par rapport aux versions beaucoup plus sophistiquées que celles conçues pour Windows.

Mais la plupart des formules s’y trouvent.

Merci d’avance.

Bonjour

Utilise NBVAL :

=NBVAL(5:5)-2

devrait te donner le nombre d'écuries pour BMW

Sinon

=NB.SI(5:5;"X")
2f040d5c a362 4680 85cb e5bbd6f5f496 affec0d5 aff1 4208 a5b4 ee23e159d8ca

Bonsoir

Merci pour ton aide

Ci-joint 2 captures

La 2° montre la même erreur en tapant chacune de tes 2 formules ds la cellule en face de BMW

La 1° affiche des résultats en copiant la cellule ds toutes les cellules correspondant à tous les moteurs mais ils sont tous faux.

Ex :

Alfa 6 au lieu de 4

Arrows 3 au lieu de 1

Aston Martin 6 au lieu de 1

On dirait qu’il y a un décalage...

Bonsoir baldwin,

Sur ta 2ème copie d'écran, dans la barre de formule, tu as correctement copié la formule de 78chris : =NBVAL(5:5)-2 ; ça, c'était la bonne nouvelle ! la mauvaise nouvelle, c'est que tu as tapé cette formule dans une des cellules de la ligne 5, soit exactement ce qu'il ne faut pas faire, même avec une version d'Excel PC non spécifique Ipad ! en effet, dans un tel cas, la formule tente de calculer le nombre de valeurs de la ligne 5 et « tombe » sur elle-même, d'où le message d'erreur de référence circulaire ! c'est très bien de ta part de vouloir apprendre Excel, et même je t'y encourage, mais à tout hasard, je te signale que pour cela, tu n'es pas obligé de tomber dans toutes les embûches ! t'as tout à fait le droit d'les éviter !!! (je blague, hein, m'en veut pas !)

dhany

Hello Dhany

Ok mais quand je copie cette formule dans la ligne 1 ou 2 ou 3 etc...il n’y a pas l’erreur en question : des résultats sont affichés (voir ma capture n° 1) mais le problème, comme je le dis plus haut c’est qu’ils sont tous faux !

Alors ???

Ci-joint une autre capture où l’on voit 5:5 dans la formule correspondant à la ligne 2 et le résultat est donc faux !

50557e98 277b 4a2d 9363 5f70b1cc76e5

Dans ton énoncé initial, tu as écrit : « afficher dans une colonne le nombre de fois où chaque motoriste a été utilisé par des écuries » ; par rapport à la copie d'écran de ce même énoncé, je te propose d'ajouter une colonne juste avant la 1ère écurie "McLaren", qui sera donc à droite de la colonne "Pays" ; c'est là que tu mettras tes résultats ; double avantage : a) ils seront visibles d'emblée quand tu vois le début des premières colonnes (et sans avoir à scroller à droite) ; b) tu peux ajouter si besoin d'autres écuries au bout à droite du tableau, alors que si tu avais mis cette colonne à la fin, à droite de la dernière écurie, ça gênerait.

La colonne des résultats sera donc en colonne C, et pour la 1ère ligne de données, donc la ligne 2, formule en C2 (à tirer vers le bas) :

=NBVAL(D2:AD2) ; attention : remplace AD par la colonne de la dernière écurie !

NB : note bien que la plage D2:AD2 indiquée en argument de la fonction NBVAL() n'inclue pas la cellule C2 de la formule, donc cette fois, il n'y aura pas de référence circulaire !

Sauf erreur de ma part, tu devrais obtenir les bons résultats ; sinon, envoie ton fichier en indiquant ce qui ne va pas.

dhany

Merci Dhany

Impeccable ! Ça marche super !

Peux-tu maintenant m’expliquer comment fonctionne cette formule, à quoi renvoie NBVAL pour que je puisse décrypter cette syntaxe ?

Maintenant j’ai voulu essayer d’additionner dans les colonnes le nombre de fois qu’une écurie a été cochée.

J’ai donc utilisé la "somme automatique" mais comme on peut le voir sur la capture d’écran, j’ai eu une erreur.

Pourrais-tu m’éclairer ?

d58b7c68 c71c 4d20 84cb 64dff5728ccb

Bonjour,

Une somme totalise des nombres/chiffres

tu dois utiliser NBval à la place et puis jeter cette pù¨¨08è§ de tablette ou l'utiliser pour autre chose

et de temps en temps consulter l'aide excel

P.

Bonjour

Tout cela parce qu'au lieu de joindre un fichier tu joins des images où on ne voit qu'une partie de classeur...

Un classeur dès le départ et tu avais la solution sans problème dès la 1ère réponse puisque que j'aurais peut-être vu où tu voulais ce toal et pu limiter les références à quelques colonnes comme proposé par dhany que je salue ...

Là tu essayes d'additionner des X qui sont des textes... forcément cela ne marche pas

Si tu relis mon 1er post : je te proposais aussi NB.SI pour compter les X

En réfléchissant 5 mn avec l'aide en ligne comme proposé par patrick que je salue également , tu devrais y arriver...

Merci à tous les deux

"Tout cela parce qu'au lieu de joindre un fichier tu joins des images où on ne voit qu'une partie de classeur..."

Comment fait-on pour joindre un vrai classeur et non un fichier image ?

Re..

et si tu encodais intelligemment ?

Je t'avais transposéton 1er fichier pour que la suite soit plus facile, mais tu t'obstines à encoder comme ça...

fait avec power query mais utilisé une seule fois ! par pour la suite de ton fichier qui doit être encodé comme le montre le résultat de PQ

P.

Mea culpa mea maxima culpa

Je pensais qu’on ne pouvait joindre que des images sur le forum mea culpa...donc maintenant j’ai compris qu’on pouvait joindre aussi des fichiers.

Voulant trier la rangée où se trouve les totaux (ligne 27) je me suis inspiré d’une formule trouvée sur le Web que j’ai adaptée sur mon tableau ci-joint

Voici cette formule adaptée : (elle se trouve tout à droite du tableau)

Mais elle ne fonctionne pas...

Peut-être y a-t-il une erreur de syntaxe ?

Range("D27:AS27").Sort Key1:=Range("D27"), Orientation:=xlLeftToRight

Bonjour baldwin,

C'est seulement maintenant que je suis de nouveau disponible pour continuer sur ce forum ; je vais répondre successivement à tes derniers messages, à commencer par celui de 11:09 : NBVAL() est une fonction qui retourne le nombre de valeurs de la plage indiquée en argument ; ainsi, NBVAL(D2:AD2) retourne le nombre de valeurs (= cellules non vides) de la plage D2:AD2 ; voici comment lire l'aide Excel d'une fonction :

screen 1

dhany

Dans ton message de 11:22, la barre de formule de ta copie d'écran montre ceci :

screen 2

dhany

Merci Dhany

Trés fouillée ton explication.

Et quid du tri de la rangėe et de cette formule ?

J'y viens, j'y viens, tu m'as juste devancé de quelques dizaines de minutes !

Dans ton message de 14:05, tu as indiqué cette formule (mentionnée aussi en Motoristes!AV27) :

Range("D27:AS27").Sort Key1:=Range("D27"), Orientation:=xlLeftToRight

Perso, au lieu du paramètre Orientation, j'utilise le paramètre Order1 pour Key1 :

[D27:AS27].Sort [D27], 1

⚠ un tri doit être appliqué sur une plage de cellules contenant des données

et pas sur des cellules contenant des formules !


Ton fichier est un xlsx et ne peut pas contenir de code VBA ; donc il faut d'abord

le convertir en xlsm pour pouvoir y mettre ton instruction .Sort !


La taille de ton fichier est de 5 485 Ko = 5,36 Mo ! sur Feuil2 :

a) colonnes en trop : B à I ; b) lignes en trop : 22 à 1048576

après suppression de ces colonnes et lignes inutiles,

taille de ton fichier ramenée à ... 16 Ko !

1motoristes-f1.xlsx (15.19 Ko)

dhany

Merci

un tri doit être appliqué sur une plage de cellules contenant des données

et pas sur des cellules contenant des formules !

Ok mais comment faire pour transformer ces cellules avec des formules avec des nombres ?

mais comment faire pour transformer ces cellules avec des formules avec des nombres ?

Oups !

J’avais oublié, c’est bon

Par contre j’ai essayé [D30:AS30].Sort [D30], 1

Mais ça ne fonctionne pas, même avec = devant...

Ah, peut-être être est-ce plutôt cela :

Range("D27:AS27").Sort Key1:=Range("D27"),[D30:AS30].Sort [D30], 1

Mais, non ça ne fonctionne pas non plus...

Rechercher des sujets similaires à "formule formules"