2015-08-26 40 views
0

你好,你的所有的Excel大师,使用Excel中只有一个公式来计算多个COUNTIF的结果

我有一个Excel电子表格包含的行未定义的数字(从1到X - X是一般小于200) 。每行都有一些包含一些数据(项目编号,日期,...)的初始列,并且从列I开始,未定义数量的列(从1到x - x通常小于50)可以是空的或包含“x”。

在每一行我都想要计算“x”的数量(我知道如何处理COUNTIF函数)。在不同的表格中,我想要统计次数为1的次数,次数为2的次数等等,直到6.

对我来说,问题是行和列的数量是改变,我想把所有这一切放在一个单一的公式,使用数组,但我所有的尝试失败。

我的当前配方得到共计1的行数是:

{=SUM(IF(SUM(IF(OFFSET(OFFSET($H$2;1;0;TotalLines;1);0;1;1;TotalColumns)="x";1;0))=1;1;0))}

随着TotalLinesTotalColumns是包含线的结果命名区域计数和列分别计数,这样我有确切当前显示的行数和列数。

显然,公式不起作用......

能否请您就如何进行,

预先感谢您的支持

+0

如果您总是在同一行中统计数字 - 第1行例如 - 你可以设置你的“计数”如果()'范围是'1:1'。即,'= COUNTIF(1:1,6)'来计算第1行中的所有六位数。然后,不需要调整总列数。 – Marc

+0

感谢您的快速回复。实际上,我想用{1; 2; 1; 1; 3; 2; ....}等结果数组来代替1:1,每个结果都是countif的结果(; ;“x “)为纸张的每一行。 – Yannick

+0

是否有任何理由不能使用临时列? – Marc

回答

0

看起来你可以转动的第一列在你的countif上。只需选择此列并插入数据透视表即可。将相同的变量作为行并将值作为计数。如果您的基表已更改,请刷新它。

+0

感谢您的回答。我不确定我能想像你的建议。问题是我没有带'COUNTIF'的列(因为这个列将根据列的总数移动)。不知道我是否正确地使用了... – Yannick

+0

您可以将countif列放在您建议的最大列数之后。这样它不会打扰你。检查该列是否有标题,然后对X或空值进行计数 – Balinti

+0

实际上,如果我这样做,不再需要“pivot”。简单的'countif'与'偏移'在这一列将做的伎俩。我真的想要有一个单一的数组类型公式。如果这是不可能的,那么运气不好,但知道一点关于Excel,我怀疑这是不可能的...... :) – Yannick

1

我想说这里最简单的方法是在第一张表中添加一个帮助列,其中每行都有自己的COUNTIF函数来检查“x”的数量。为了让读者明白这一点(正如你熟悉的COUNTIF),我会提出以下建议[放入D列,或者列中紧接着你的最终“数据”列之后的列,从行开始2和拖累]:

=COUNTIF(OFFSET($D$1,ROW(),1,1,TOTALCOLUMNS),"x") 

然后在您的其他标签简单地在列d在你的个人支票执行COUNTIF,像这样[第2行开始,假设你的主数据是在Sheet,而上Sheet2列A中,您有多少个“x”正在检查{1,2等}):

=COUNTIF(Sheet1!D:D,A2) 
+0

是的,这是我的第一个解决方案。我的第二个也是'vba'中的一些udf。但如果可能的话,使用数组将会非常好! – Yannick

+0

@Yannick原则上我同意你的意见,但是在这种情况下,因为你已经需要在你的主要评论选项卡上有一个单独的原始数据标签,所以我认为帮助者列的简单性超过了它更难处理的表现[因为你不会无论如何看这个标签]。有可能有,而不是“x”,数字1?因为那样你可以做一个相当简单的Array公式来计算每行的总和,而不是每行的标识。 –

+0

最后的想法 - 尽管您可能会看到Array Formulas在视觉上很吸引人,但请记住,如果您将工作簿交给其他人,他们通常很难审查。 Helper列具有让您在每个单独步骤中解释计算的天然优势,而不需要一次完成。 –

相关问题