Erreur de calcul Index / Sumproduct

0

Je travaille sur un problème Excel depuis près de 24 heures. J'ai une formule qui fait presque ce que je veux mais elle ne retourne pas ce que j'imagine qu'elle devrait l'être:

=INDEX(Data!D:D,SUMPRODUCT((Data!C:C=Total!A5)*(Data!A:A="Total")*(Data!B:B="Total")*(ROW(Data!D:D))))

J'imagine la ligne d'indexation de la colonne D dans les données! feuille de calcul doit être la ligne réelle dans laquelle la correspondance se produit, mais pour chaque valeur, mais la première valeur, la valeur renvoyée provient de 3 lignes en dessous.

Oui, alors pour la première cellule dans laquelle j'applique cette formule, je récupère la bonne valeur de la colonne D de Data !. Mais, pour chaque cellule suivante avec la formule, je récupère la valeur dans la colonne D de données! 3 rangées en dessous du match.

J'ai essayé chaque combinaison de soustraire 3 de la formule (pour retourner la ligne appropriée), mais en vain. Cela n'expliquerait toujours pas pourquoi la première cellule dans laquelle la formule est appliquée renvoie la valeur attendue!

Toute aide est très appréciée, bien sûr ...

gh0strider18
la source
Avez-vous pas posé la même question hier?
Excellll
@Excellll J'essayais d'utiliser la fonction index / match - ici, j'ai des problèmes avec la fonction produit / somme
gh0strider18
Je ne suis pas sûr de savoir pourquoi cela ne fonctionne pas, mais j'utiliserais quand même MATCH comme suggéré dans votre autre question - stackoverflow.com/questions/26631625/… . INDEX/MATCHest plus approprié si vous recherchez une valeur unique
barry houdini
Utiliser SUMPRODUCTpour le numéro de ligne au lieu de MATCHne fonctionnera que si la valeur de recherche est unique. Il ne retourne pas la première correspondance, il renvoie la somme totale de toutes les correspondances. Prenez une capture d'écran de certaines données rédigées et postez un lien vers celle-ci si vous ne pouvez pas fournir de données exemple.
Jeeped

Réponses:

0

Je ne sais pas très bien si vous voulez trouver le premier, le deuxième, etc. correspond à Total! A5 ou si vous essayez de trouver le premier correspondant à A5, puis le premier à A6, etc. Cette solution proposée est pour le ancien.

Je préfère utiliser la méthode d'exclusion mathématique pour intercepter plusieurs retours sur des correspondances. Si vous éliminez ce qui ne correspond pas, alors ce qui reste doit être l'ensemble des résultats correspondants. Je suis également suffisamment impatient pour trouver le décalage de calcul des références de colonne complètes SUMPRODUCTennuyeux. J'ai donc coupé vos références de plage aux premières rangées de ~ 1K.

=IFERROR(INDEX(Data!$D$2:$D$999, SMALL(INDEX(ROW($1:$998)+((Data!$C$2:$C$999<>Total!$A$5)+(Data!$A$2:$A$999<>"Total")+(Data!$B$2:$B$999<>"Total"))*1E+99,,),ROW(1:1))),"")

Ceci est une formule standard ( non-array ). Remplissez si nécessaire pour saisir toutes les déclarations correspondantes. Lorsque vous transcrivez ceci pour vos propres besoins, rappelez-vous qu'il ROW(1:998)s'agit de la position à l'intérieur Data!D2:D999 et non du numéro de ligne réel de la feuille de calcul. ROW(1:1)est simplement un compteur qui s’incrémente à mesure que vous remplissez. Parfois, un COUNTIFest plus approprié et peut être utilisé pour intercepter plusieurs déclarations correspondantes sur plusieurs valeurs de recherche.

Jeeped
la source