Je voudrais créer une formule Excel succincte qui SUMS une colonne basée sur un ensemble de conditions AND, plus un ensemble de conditions OR.
Mon tableau Excel contient les données suivantes et j'ai utilisé des noms définis pour les colonnes.
Je souhaite utiliser SUM Quote_Value si Salesman est égal à JBloggs et si Days_To_Close est égal ou inférieur à 90 et Quote_Month est égal à l'un des éléments suivants (octobre-13, novembre-13 ou déc-13).
Pour le moment, je dois travailler avec ça, mais cela implique beaucoup de répétitions, ce dont je ne pense pas avoir besoin.
=SUM(SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,"=Oct-13")+SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,"=Nov-13")+SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,"=Dec-13"))
Ce que j'aimerais faire est quelque chose de plus semblable à ce qui suit mais je ne peux pas trouver la syntaxe correcte:
=SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,OR(Quote_Month="Oct-13",Quote_Month="Nov-13",Quote_Month="Dec-13"))
Cette formule ne fait pas d'erreur, elle renvoie simplement une valeur 0. Pourtant, si j'examine manuellement les données, ce n'est pas correct. J'ai même essayé d'utiliser TRIM (Quote_Month) pour m'assurer que des espaces ne s'étaient pas infiltrés dans les données, mais le fait que ma formule SUM étendue fonctionne indique que les données sont correctes et qu'il s'agit d'un problème de syntaxe. Quelqu'un peut-il me guider dans la bonne direction?
Vous pouvez utiliser SUMIFS
comme ceci
=SUM(SUMIFS(Quote_Value,Salesman,"JBloggs",Days_To_Close,"<=90",Quote_Month,{"Oct-13","Nov-13","Dec-13"}))
La fonction SUMIFS
renverra un "tableau" de 3 valeurs (un total pour "13 oct", "13 nov" et "13 déc" "), il faut donc SUM
pour additionner ce tableau et vous donner le résultat final.
Soyez prudent avec cette syntaxe, vous ne pouvez avoir au plus que deux critères dans la formule avec les conditions "OU" ... et s'il y en a deux, vous devez séparer les critères avec virgules, dans l'autre avec points-virgules.
Si vous en avez besoin de plus, vous pouvez utiliser SUMPRODUCT
avec MATCH
, par exemple. dans ton cas
=SUMPRODUCT(Quote_Value,(Salesman="JBloggs")*(Days_To_Close<=90)*ISNUMBER(MATCH(Quote_Month,{"Oct-13","Nov-13","Dec-13"},0)))
Dans cette version, vous pouvez ajouter autant de critères "OU" en utilisant ISNUMBER/MATCH
Vous pouvez utiliser DSUM, qui sera plus flexible. Comme si vous souhaitez modifier le nom de Salesman ou le mois du devis, vous ne devez pas modifier la formule, mais uniquement certaines cellules de critère. S'il vous plaît voir le lien ci-dessous pour plus de détails ... Même les critères peuvent être formule à copier à partir d'autres feuilles
http://office.Microsoft.com/en-us/Excel-help/dsum-function-HP010342460.aspx?CTT=1
Vous pouvez envisager de référencer la date/heure réelle dans la colonne source pour Quote_Month
, puis transformer votre OR
en un couple de AND
s, quelque chose comme (affirmer la date dans quelque chose que j'ai choisi d'appeler Quote_Date
)
=SUMIFS(Quote_Value,"<=90",Quote_Date,">="&DATE(2013,11,1),Quote_Date,"<="&DATE(2013,12,31),Salesman,"=JBloggs",Days_To_Close)
(J'ai déplacé les conditions intéressantes à l'avant).
Cette approche fonctionne ici parce que la condition "OU" spécifie en fait une plage de dates - elle pourrait ne pas fonctionner dans d'autres cas.
SUMPRODUCT
est plus rapide que SUM
arrays, c’est-à-dire que {}
est un tableau dans la fonction SUM
. SUMIFS
est 30% plus rapide que SUMPRODUCT
.
{SUM(SUMIFS({}))}
vs SUMPRODUCT(SUMIFS({}))
les deux fonctionnent bien, mais SUMPRODUCT
se sent un peu plus facile à écrire sans le CTRL-SHIFT-ENTER
pour créer le {}
.
Je préfère personnellement écrire SUMPRODUCT(--(ISNUMBER(MATCH(...))))
sur SUMPRODUCT(SUMIFS({}))
pour plusieurs critères.
Toutefois, si vous avez un menu déroulant dans lequel vous souhaitez sélectionner des caractéristiques spécifiques ou toutes, SUMPRODUCT(SUMIFS())
est la seule solution. (comme pour sélectionner "tous", la valeur doit entrer dans "<>" + "Quel que soit le mot que vous voulez tant qu'il ne fait pas partie des caractéristiques spécifiques".
Quote_Month (Feuille de calcul! $ D: $ D) contient une formule (= TEXT (Feuille de calcul! $ E: $ E, "mmm-aa")) pour convertir un numéro de date/heure d'une autre colonne en une référence de mois basée sur du texte.
Vous pouvez utiliser OR
en ajoutant +
dans Sumproduct
. Regarde ça
=SUMPRODUCT((Quote_Value)*(Salesman="JBloggs")*(Days_To_Close<=90)*((Quote_Month="Cond1")+(Quote_Month="Cond2")+(Quote_Month="Cond3")))
ScreenShot
Pour que la formule fonctionne, placez le curseur à l'intérieur de la formule et appuyez sur ctr + shift + entrée et cela fonctionnera!
Avec ce qui suit, il est facile de lier l'adresse de la cellule ...
=SUM(SUMIFS(FAGLL03!$I$4:$I$1048576,FAGLL03!$A$4:$A$1048576,">="&INDIRECT("A"&ROW()),FAGLL03!$A$4:$A$1048576,"<="&INDIRECT("B"&ROW()),FAGLL03!$Q$4:$Q$1048576,E$2))
Peut utiliser les fonctions d'adresse/de substitution/colonne requises pour utiliser les adresses de cellule en mode DYNAMIC complet.