Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Excel-sumifs动态数组文字_Arrays_Excel_If Statement_Literals - Fatal编程技术网

Arrays Excel-sumifs动态数组文字

Arrays Excel-sumifs动态数组文字,arrays,excel,if-statement,literals,Arrays,Excel,If Statement,Literals,我有上面的数组公式X97:AC97是我使用数组文字的地方,数组文字中的值取决于其他一些参数(如果满足条件,那么这些值是a、b、c、d、e)。由于这些值是有条件的,因此可能会显示为“”e“”。因此,在sumifs数组公式中,它将数组文本作为值{“a”、“”、“”、“”、“”、“”、“”和“,”},这会导致错误。如何使数组为{“a”,“e”} 编辑:经过很多努力,我意识到sumifs可能不是正确的方法,因为它需要对齐。例如,当X97:AC97=(0,1,0,0,0)时,我可能有一个符合{PLoan,

我有上面的数组公式
X97:AC97
是我使用数组文字的地方,数组文字中的值取决于其他一些参数(如果满足条件,那么这些值是a、b、c、d、e)。由于这些值是有条件的,因此可能会显示为“”e“”。因此,在sumifs数组公式中,它将数组文本作为值{“a”、“”、“”、“”、“”、“”、“”和“,”},这会导致错误。如何使数组为{“a”,“e”}

编辑:经过很多努力,我意识到sumifs可能不是正确的方法,因为它需要对齐。例如,当
X97:AC97
=(0,1,0,0,0)时,我可能有一个符合{PLoan,deptance Loan}的(1,0)标准。我确实想要那个数字的总和,但由于不匹配,它不会总和

我得到了下面的工作。如果有人能想到一种方法,将通配符作为我的字符串搜索的一部分,请告诉我

=SUM(SUMIFS('Output'!$H$50:$H$69,'Output'!$C$50:$C$69,{"*PLoan","Deficit Loan"},'Output'!$G$50:$G$69,X97:AC97))

COUNTIF
/
suif
不一定需要对通过的标准进行“对齐”。这完全取决于你想数什么

如果需要包含两组条件的所有组合的计数,则包含这些条件的两个数组是正交的就足够了

目前,您传递的两个标准数组都是相同的向量类型,即行向量,因为:

X97:AC97

显然是一个行-(水平)向量,也是:

{*PLoan”,“赤字贷款”}

因为,对于英语版本的Excel,逗号和分号分别表示行(水平)和列(垂直)数组常量中的分隔符

因此,在您的情况下,您只需转置这两个数组中的一个,即:

=SUMIFS(输出!$H$50:$H$69,输出!$C$50:$C$69,{“*PLoan”;“赤字贷款”},输出!$G$50:$G$69,X97:AC97))

(我们也可以将另一种转换,即:

=SUMIFS(输出!$H$50:$H$69,输出!$C$50:$C$69,{“*PLoan”,“赤字贷款”},输出!$G$50:$G$69,转置(X97:AC97))

或者将
X97:AC97
中的条目移动到其他垂直范围。)

有关更多信息,请参阅


你好。本质上,sumif中最后一个条件的目的是什么?您是否试图说“将G与X97:AC97中的任何值匹配”?如果这就是目的,那么公式就不会这样做。你能提供更多关于目标的细节吗?@A.S.H嘿,阿什,是的,这是我的意图。我只想对数据G中x97:ac97的标准求和。我认为这是“输出”$G$50:$G$69,X97:AC97)本质上是“输出”$G$50:$G$69,{“a”、“”、“”、“”、“”、e”、“”})我明白了,但是
SUMIFS
需要在标准中对齐。因此,它将包括一些列,例如,
(C匹配“*Ploan”和G匹配X97)或(C匹配“赤字贷款”和G匹配Y97)
。明白我的意思吗?我们可能需要以不同的方式来编写它。@ash是的,这就是我在对齐不匹配时面临的问题。我重写了它并让它工作,我将在编辑中写入它。@A.S.H请查看我的编辑。我想我成功了。你知道一种将通配符字符串搜索合并到公式中的方法吗?我没有意识到逗号和分号=水平/垂直数组。谢谢你的富有洞察力的回答和文章。
=SUMPRODUCT(IFERROR(ISNUMBER(MATCH('Output'!$G$50:$G$69,$X$97:$AC$97,0)*MATCH('Output'!$C$50:$C$69,{"PLoan","Operating Deficit Loan"},0))*('Output'!$H$50:$H$69),0))