2010-11-24 15 views
0

Je travaille sur une fonction dans Excel qui me permettra de résumer colonnes si la colonne avant qu'il contient le mot « pré »Compliqué Nested Excel Fonction

est ici une feuille de calcul maquette:

    Grade   Points Possible 

C++ Pre Test   20     20 
Homework Week 1  30     30 
C++ Test    90     100 

Maintenant je veux utiliser la fonction SUMIF() avec une fonction SEARCH() imbriquée qui examinera les cellules A2 à A4 et si le mot 'pre' est trouvé, il fera la somme du nombre approprié dans la colonne B.

Voici ce que j'ai jusqu'ici qui ne semble pas fonctionner:Ce que j'entends dire par là est "Si le mot 'pre' est trouvé dans une cellule dans la plage a2: a4, tirez la valeur de son grade correspondant dans la colonne b". La sortie que j'attends avec la feuille de calcul fictive est '20' puisque pré n'apparaît qu'une seule fois.

Peut-être une macro VB serait dans l'ordre?

EDIT: Après un examen plus approfondi, la fonction LOOKUP() peut être la mieux adaptée car SEARCH() est utilisée pour renvoyer une valeur de la colonne recherchée.

Répondre

3
=SUMIF(A2:A4, "=*pre*",B2:B4) 
+0

Merci, cela a résolu ce que je voulais et dans ma feuille de calcul réelle plus complexe, il a fini dans une fonction moyenne comme ça: = MOYENNE (SUMIF (A4: A100, "= * pre *", B4: B100), COUNTIF (A4: A100, "= * pre *")) –

+0

Vu dans l'introduction d'un livre de formation de macro MS Excel en 1991: "La meilleure macro n'est pas une macro". Tellement vrai... –

1

Ce qui précède ne fonctionnera pas. Si le tableau de plus de 2 (je sais qu'il est), vous pouvez étendre ce sur jusqu'à 30 itérations pour la fonction SUMPRODUCT

=SUMPRODUCT(B2*IF(ISERROR(SEARCH(" Pre ",A2)),0,1),B3*IF(ISERROR(SEARCH(" Pre ",A3)),0,1)) 

Je ne vois pas vraiment de différence si vous utilisez sum ou sumproduct et tandis que 30 est le max, vous venez de multiples comme =SUM() + SUM() feraient 60.

Une autre option consiste à utiliser la colonne C et inerte en ce C1 et copiez-le sur le bas

=IF(ISERROR(SEARCH(" Pre ",A1)),"",B1)

et somme à la fin.

l'option suivante est que vous mentionnez - une macro avec une somme de roulement à l'aide pour i, i suivant

0

Démontez votre formule.

=Search("Pre",A2) renvoie 5 - Je ne pense pas que vous voulez cela dans votre sumif.

Essayez ceci:

Créer une nouvelle colonne D qui recherche le mot « pré » dans la colonne A. Peut-être quelque chose comme =iferror(Search("Pre",A2),1,0)) [Si Pre existe dans cette cellule, retour 1, retour sinon 0]

maintenant sumproduct(B:B,D:D) devrait vous donner des points gagnés sur prétests et sumproduct(C:C,D:D) devrait vous donner des points possible.