L’article suivant fait suite à l’article : Défi Excel #1:Qui fournira la meilleure réponse? Il s’agit de questions d’anciens examens de ModelOff. Je vous mets maintenant au défi de fournir la meilleure réponse possible. De mon côté, je vous propose une résolution avec la fonction Excel NBVAL, imbriquée dans une fonction DECALER.
Problématique à résoudre dans Excel
Dans l’exemple ci-dessous, vous devez partir d’une zone de données qui ressemble à ceci:
Et obtenir une zone de données qui ressemble plutôt à ceci:
Défi à résoudre dans Excel
Le défi original, dans l’examen de ModelOff, était de trouver une formule qui à la fois fonctionne (évidemment!) et à la fois est la plus courte possible (plus petit nombre de caractères, sans utiliser de champs nommés). De plus, le temps alloué pour cette question était de 10 minutes. Cela dit, la réponse, en termes de résultat, est déjà connue et il est donc possible de valider que la formule fonctionne.
Solution possible avec la fonction NBVAL imbriquée dans une fonction DECALER
À regarder seulement après avoir fourni votre propre réponse 😉
Comme vous le savez, dans Excel, il existe une panoplie de formules pour arriver à un résultat identique. Ci-bas, je vous ai fourni une réponse, sachant qu’il ne s’agit pas de la réponse comportant le moins de caractères. À vous maintenant de proposer de meilleures solutions!
=DECALER($B$7,NBVAL(B7:B$10)-1,NBVAL(B7:$E7)-1,1,1)
Cliquez (deux fois!) sur l’image pour l’agrandir
Note: La fonction Offset devient Decaler en français (voir l’article: Excel: Fonction Decaler (Offset), la fonction CountA devient NbVal en français et les virgules peuvent devenir des points-virgules, selon la configuration de votre Excel.
Vous aimeriez créer des états financiers prévisionnels complets et dynamiques dans Excel, capables de se moduler à vos hypothèses, afin d’éclairer vos décisions d’affaires ? Apprenez les meilleures pratiques avec nos formations en modélisation financière. |
---|
Vos solutions
Svp, utilisez la zone de commentaires ci-bas pour proposer vos propres solutions à cette problématique et laissez-nous savoir combien de temps vous avez pris pour résoudre le tout.
Peut-être serez-vous également intéressé par le Défi Excel #3 et par le Défi Excel #4?
À vous de jouer!!!
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Formation complémentaire
Pour une introduction aux principes de base et aux meilleures pratiques d’affaires en modélisation financière dans Excel et vous familiariser avec les fonctions et les fonctionnalités qui permettent de faire des prévisions financières, des analyses de sensibilité et des analyses de scénarios, suivez notre formation Excel – Modélisation financière niveau 1.
Hello,
je pense que celle-ci est un petit peu moins longue 😉
=INDIRECT(ADRESSE(11-LIGNE(A1);6-COLONNE(A1)))
rendez-vous pour le challenge #3 et merci beaucoup Sophie pour ce blog
Bonjour, j’ai remarqué que les données étaient à classer par ordre décroissant, donc le mose opératoire est différent mais pour cet exercice particulier, cela fonctionne.
=GRANDE.VALEUR($B$7:$E$10;COLONNE()-6+(LIGNE()-7)*4)
Salut Sophie
Quand je l’ai fait la première fois, j’ai fait =INDEX($B$7:$E$10,ROWS(B7:$E$10),COLUMNS(B7:$E$10)), 52 caractères.
Après avoir appris qu’il y a eu des formules avec 35 caractères, j’ai essayé avec DÉCALER et j’ai obtenu =OFFSET($A$6,ROWS(7:$10),COLUMNS(B:$E)) 38 ou 39 caractères selon la position initial de la plage de données originale.
https://twitter.com/jorgeluis500/status/410157815001407488
Récemment, j’ai vu une réponse encore plus courte, =SUM($E$18:$H$21*(B15:E18=100)), 31 caractères. Pourtant, il faut déplacer la zone de données pour avoir plus d’espace et la mettre par exemple à E18:H21
À bientôt
Jorge
Merci pour ce nouveau test !
J’avais pensé à MAX, mais c’etait une fausse piste
Ensuite, voici la formule trouvée :
=DECALER($B$7;10-LIGNE();10-COLONNE())
(ou offset / Row / Column)
Voici ce que j’ai trouvé de mon côté =INDEX($B$7:$E$10,COUNTA(E7:E$10),COUNTA(E7:$E7))
il y avait aussi : =+SMALL($B$7:$E$10;RANK(B7;$B$7:$E$10))