J'ai un tableau de comparaison du retour sur investissement comme celui-ci:
Month | ROI | 1 | 2 | 3 |
Jul | A | 1% |
Jul | B | 3% |
Jul | C | 2% |
Jun | A | 4% | 6% |
Jun | B | 5% | 7% |
Jun | C | 6% | 8% |
May | A | 2% | 4% | 7% |
May | C | 3% | 5% | 6% |
Je souhaite classer chaque mois le retour sur investissement (A, B et C) de chaque produit - afin de ne classer que le pourcentage le plus approprié pour un mois donné.
Mais la gamme doit être dynamique car chaque produit peut avoir une date de lancement différente. Par exemple, le mois de mai n’a pas le produit B.
Donc, le résultat sera:
Month | ROI | 1 | 2 | 3 | Rank
Jul | A | 1% | | | 3
Jul | B | 3% | | | 1
Jul | C | 2% | | | 2
Jun | A | 4% | 6% | | 3
Jun | B | 5% | 7% | | 2
Jun | C | 6% | 8% | | 1
May | A | 2% | 4% | 7% | 1
May | C | 3% | 5% | 6% | 2
Je pense utiliser la fonction Index / Match:
=RANK(INDEX(G3:S3,MATCH(9^99,G3:S3,1)),G3:G5,0)
Mais je ne suis pas sûr de savoir comment rendre dynamique le G3: G5.
Réponses:
0 pour la réponse № 1Je pense avoir réussi à le faire fonctionner avec la formule suivante dans la colonne de rang:
=RANK(OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1),
OFFSET(G3,COUNTIF(E3:$E$999,E3)-COUNTIF($E$1:$E$999,E3),
SUM(--ISNUMBER(G3:S3))-1,COUNTIF($E$1:$E$999,E3)))
(en supposant que vos mois sont en E1:E999
).
Qu'est-ce que cela fait est regarde G3
et se déplace vers le plus à droite non vide (ISNUMBER
) colonne en utilisant OFFSET
et considère que cette valeur doit être classée dans la OFFSET
tableau où le mois correspond au mois de la ligne en cours.
Séparons la seconde OFFSET
formule (en supposant que nous envisageons un Jul
rangée):
- Commencer à
G3
. - Décalage de rangée: nombre de
Jul
lignes sous la ligne actuelle (inclus) - nombre total deJul
rangées. - Décalage de colonne: nombre de cellules contenant des nombres dans la rangée actuelle - 1
- Hauteur: nombre total de
Jul
rangées.
Ceci est une formule de tableau, il doit donc être entré en utilisant Ctrl+Décalage+Entrer.
Remarque: La formule suppose que les valeurs les plus à droite sont dans la même colonne si le mois est le même. Ceci est valable dans votre exemple, mais je ne sais pas s’il en va de même pour l’ensemble de vos données. Si ce n’est pas vrai en général, vous pouvez créer une colonne auxiliaire en utilisant le premier. OFFSET
morceau de la formule
=OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1)
pour obtenir votre numéro le plus à droite dans chaque ligne, puis faites votre classement dans cette colonne d'assistance.
0 pour la réponse № 2
Commencez avec un simple classement en sous-groupes en utilisant le Fonction COUNTIFS.
=COUNTIFS(A:A, A2, C:C, "<="&C2)
Modifiez la plage de pourcentages pour saisir le nombre le plus à droite de cette ligne à l'aide de INDICE sur une plage de plusieurs colonnes avec une approximation RENCONTRE.
=COUNTIFS(A:A, A2, INDEX(A:F, 0, MATCH(1E+99, A2:F2)), ">="&INDEX(A:F, ROW(2:2), MATCH(1E+99, A2:F2)))
Remplissez si nécessaire.