web-dev-qa-db-fra.com

Excel - INDEX SUMIF et MATCH

Je suis coincé avec une formule sumif. Je pense que si j'utilisais un mélange d'index et de correspondance, je pourrais le faire fonctionner, mais je suis incapable de le faire depuis une heure!

Je dois résumer à partir d'une table de chiffres en fonction du numéro de maison et de 2 dates. Par exemple, je dois faire la somme des chiffres pour la maison 1 entre les dates 08-05-17 et 13-05-17.

Mon expérience précédente avec index et correspondance est que je ne l'ai utilisée que pour obtenir un seul chiffre spécifique. 

 What I'm trying to sum

 Where the sum should go

2
Bake.G

OFFSET et INDIRECT sont volatils, cela est possible avec INDEX/MATCH

=SUMIFS(INDEX(Sheet1!$W:$AC,MATCH("House " & B4,Sheet1!$A:$A,0),0),Sheet1!$W$3:$AC$3,"<=" & $AE4,Sheet1!$W$3:$AC$3,">=" & $AD4)

Le 0 en tant que troisième critère de INDEX renverra toutes les colonnes de la ligne choisie par MATCH.

Cette formule est non volatile et non array.

3
Scott Craner

En admettant que:

  • La première table est sur la feuille 1
  • Les données de la maison 1 du premier tableau sont à la ligne 4
  • La deuxième table est sur une feuille séparée
  • Les données de la maison 1 dans le deuxième tableau sont à la ligne 4

Cette formule dans la feuille Sheet2, cellule AG4 devrait fonctionner:

SUM(INDIRECT("Sheet1!R4C"&22+MATCH(AD4,Sheet1!W3:AC3,0),FALSE):INDIRECT("Sheet1!R4C"&22+MATCH(AE4,Sheet1!W3:AC3,0),FALSE))
0
nicogen

Modifier ce qui suit

=SUMIFS(OFFSET(B3:ZZ3,MATCH("house 1",E:E,0)-3,0),B3:ZZ3,">"&42863,B3:ZZ3,"<"&42868)

Remplacez "maison 1" par une référence.

Remplacez 42863 et 42868 par des références à la date de début et à la date de fin, respectivement. (les nombres sont juste la date dans les formats numériques.)

Modifiez 3 dans les plages et la formule de correspondance par le numéro de ligne contenant les dates.

remplacez B3: ZZ3 par la plage de lignes de votre date. En supposant que vous mettez à jour les données de manière continue, vous pouvez laisser de l'espace en augmentant la plage, comme dans mon exemple, dans la colonne ZZ.

0
Nitesh Halai

Formule pour AI4 utilisant la manipulation de tableaux (formule normale cependant, pas CSE):

=SUMPRODUCT(Sheet1!W4:XX100*
  (Sheet1!A4:A100 = "House " & A4)*
  (Sheet1!W3:XX3 >= AD4)*
  (Sheet1!W3:XX3 <= AE4))

p.s. La version Index/Match devrait être (soi-disant) plus rapide, mais j'aime cette forme pour sa lisibilité ...

0
A.S.H