Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Excel 如果提供了标题名称,如何计算列中的项目总数_Excel_Excel Formula - Fatal编程技术网

Excel 如果提供了标题名称,如何计算列中的项目总数

Excel 如果提供了标题名称,如何计算列中的项目总数,excel,excel-formula,Excel,Excel Formula,对不起!也许我不能给出一个好的题目。我有以下样本数据。显然,在实际数据的情况下,它将是不同的和更多的 数据截图 假设我将Pen放在D17单元格中,则预期结果将是E17单元格中的6,如表/DataArrayPen列中有6项。如果我把T-Shirt放在D17单元格中,计数应该是4,依此类推 相信我,我尝试了许多公式的组合,在谷歌上搜索,但没有找到满意的解决方案我可以通过VBA实现它,但我正在尝试仅使用excel公式来解决它。您可以在单元格E17中使用此数组公式: = SUMPRODUCT(MMUL

对不起!也许我不能给出一个好的题目。我有以下样本数据。显然,在实际数据的情况下,它将是不同的和更多的

数据截图

假设我将
Pen
放在
D17
单元格中,则预期结果将是
E17
单元格中的
6
,如表/DataArray
Pen
列中有6项。如果我把
T-Shirt
放在
D17
单元格中,计数应该是
4
,依此类推


相信我,我尝试了许多公式的组合,在谷歌上搜索,但没有找到满意的解决方案我可以通过
VBA
实现它,但我正在尝试仅使用excel公式来解决它。

您可以在单元格
E17
中使用此数组公式:

= SUMPRODUCT(MMULT((B3:K3=D17)+0,TRANSPOSE(NOT(ISBLANK(B4:K13))+0)))

注意:由于这是一个数组公式,您必须在键入此公式后按Ctrl+Shift+Enter键,而不是只按Enter键。

如果用户知道设置偏移()函数高度的最大行数,这将计算非空白:

=SUM((OFFSET(B3,1,MATCH(D16,B3:J3,0)-1,10,1)<>"")*1)
=和((偏移量(B3,1,匹配(D16,B3:J3,0)-1,10,1)”)*1)

要使用Ctrl+Shift+Enter执行。此公式中设置的高度为
10

在我看来,这里建议的一些公式有点像过度使用…..试试这个通常输入的公式

=SUMPRODUCT((B3:K3=D17)*(B4:K13“”)

或者这也会起到同样的作用

=总和((B3:K3=D17)*(B4:K13“”)


按CTRL+SHIFT+ENTER确认

我将尝试并让您知道反馈。@Harun24小时它应该可以工作,我只是在我的工作表中键入了您的数据,并使用了此公式,它就工作了。如果您有问题,请告诉我。我可能会将公式中的
10
更改为
行(B4:B13)
。这样,例如,如果在计数范围内插入了一行,则使用
ROWS
将动态地将该值更新为
11
。这是我不喜欢使用
OFFSET
或其他类似的易失性函数的原因之一。如果您使用MATCH来识别正确的列,那么您可以使用Index来获取整个列,然后使用COUNTIF来计算非空白,即
=COUNTIF(Index(B4:K13,0,MATCH(D17,B3:K3,0)),“”)
谢谢,这两个建议都是正确的!如果我是这张表的用户,我会将输入范围(D17中的笔)放在这张表的上方,这样我就不必担心高度。有趣的是,我一直认为当数组/矩阵相乘时,它们的大小必须相同。这是一个很好的信息。@ImaginaryHuman072889您可以将一个1*10的向量与一个10*10的矩阵相乘,得到另一个10*10的矩阵,然后
SUMPRODUCT
只对单个10x10数组求和。这里可以使用SUM,但是你需要CSEYea,我刚刚从这篇文章中发现这是可能的,因此我使用了
MMULT
TRANSPOSE
。另外,我注意到你特别使用了“矩阵”和“数组”这两个词,尽管你在这两种情况下都指的是10x10大小。有区别吗?(或者这只是一个输入错误)@ImaginaryHuman072889-我想我在使用术语时有点草率-在Excel术语中,无论是
B3:K3=D17
还是
B4:K13“
return array——我刚才用vector和matrix表示其中一个数组是单列数组,另一个是多列数组。我已经测试了所有答案,发现所有答案都很有用。谢谢大家。我接受了巴里·胡迪尼(barry houdini)的《安德尔》(andwer),因为它简单易懂。