2009-09-03 8 views
0

Je veux SUM un certain nombre de lignes dans Excel, basé sur une valeur. Dans l'image ci-dessous, vous pouvez voir la table.SUMIF nombre variable de colonnes avec des lignes variables dans Excel

Je veux mettre une valeur dans F1, contenant la somme des valeurs de Jan -> (mois # spécifié dans C2) où le statut est la valeur dans C1.

Si vous

= SUMIF (B5: B11, "ouvert", INDIRECT (CONCATENER ("C5", ADRESSE (C2 + 11,2))))

vous obtenez 25 (Cell I2) (qui est la somme de C5 et C8), alors que ce que je veux réellement en résultat est 50 (la somme de C5 + D5 (ouvert en janvier et février), et C8 + D8 (ouvert en janvier et février)

Espérons que cela a du sens?

J'attends vos commentaires, suggestions.

Vive

Nick

alt text http://ntdd2425.fm.netbenefit.co.uk/table.png

Edit - J'espère que je serais capable de le faire sans créer de colonnes intermédiaires. L'incohérence dans Excel est due au fait que SUM semble prendre en charge la sommation sur plusieurs colonnes, mais pas SUMIF. Donc, ceci fonctionne:

= SOMME (INDIRECT (CONCATENER (adresse (5,3), ":", ADRESSE (+ $ C 5,2 2 $))))

Répondre

2

Je suggère d'utiliser SUM () avec un tableau:

=SUM(C5:G11*(IF(COLUMN(C5:G11)<=($C$2+1),1,0)*IF($c$1=b5:b11,1,0))) 

Entrez cela avec Ctrl-Shift-Enter afin qu'il entre en formule matricielle.

YMMV, mais cela a fonctionné avec un test rapide ici. Fondamentalement, vous multipliez trois tableaux ensemble: un avec vos données, un avec un 1 ou 0 basé sur le mois match par colonne, le dernier avec un 1 ou 0 basé sur le filtre d'état. Les tableaux ne correspondent pas en taille, ils sont donc répétés.

+0

Je pensais à quelque chose dans le même sens, mais votre réponse était déjà ici: = SOMME (MMULT ((b5: b11 = c1) * 1, (COLONNE (c4: g4) -COLUMN (c4) jtolle

+0

Nice. Cela fonctionne bien, merci pour l'aide! :) –

0

Je pense que ce serait plus facile à faire en deux étapes.

Ajout d'une colonne auxiliaire avec une fonction OFFSET pour calculer la valeur «année à date» pour chaque ligne. La formule en fonction de vos données serait:

= SOMME (OFFSET (B5,0,1,1, 2 $ C))

ajouter ensuite une SUMIF fonction qui cible la colonne d'aide.

= SUMIF (B5: B11, $ C $ 1, H5: H11)

SUMIF screenshot http://img200.imageshack.us/img200/4392/offset.png

Questions connexes