Excel 使用附加条件计算不同的值
我在excel中得到一个名为Excel 使用附加条件计算不同的值,excel,excel-formula,Excel,Excel Formula,我在excel中得到一个名为tableName的表,如下所示: ColumnA ColumnB 1111 aaaa 1111 bbbb 1111 aaaa 1111 cccc 1111 aaaa 1111 aaaa 1111 aaaa 2222 aaaa 2222 aaaa 2222 ffff 2222 aaaa 2222 aaaa 3333 bbbb 3333 bbbb 4444
tableName
的表,如下所示:
ColumnA ColumnB
1111 aaaa
1111 bbbb
1111 aaaa
1111 cccc
1111 aaaa
1111 aaaa
1111 aaaa
2222 aaaa
2222 aaaa
2222 ffff
2222 aaaa
2222 aaaa
3333 bbbb
3333 bbbb
4444 aaaa
4444 bbbb
我已经得到了这个(在单元格中B2
):
在单元格B1
中使用aaaa
计算ColumnA
中的不同值,其中ColumnB
包含aaaa
。这里的结果是3(1111、2222和4444),对标记列进行计数:
ColumnA ColumnB
1111 aaaa <----is counted lets call it 1
1111 bbbb <--------not counted because ColumnB isn't aaaa
1111 aaaa <----not counted because duplicate of 1
1111 cccc <--------not counted because ColumnB isn't aaaa
1111 aaaa <----not counted because duplicate of 1
1111 aaaa <----not counted because duplicate of 1
1111 aaaa <----not counted because duplicate of 1
2222 aaaa <----is counted lets call it 2
2222 aaaa <----not counted because duplicate of 2
2222 ffff <--------not counted because ColumnB isn't aaaa
2222 aaaa <----not counted because duplicate of 2
2222 aaaa <----not counted because duplicate of 2
3333 bbbb <--------not counted because ColumnB isn't aaaa
3333 bbbb <--------not counted because ColumnB isn't aaaa
4444 aaaa <----is counted lets call it 3
4444 bbbb <--------not counted because ColumnB isn't aaaa
我不知道怎么做
我的全部目标是创建一个列联表,如:
aaaa bbbb cccc ffff
aaaa 3 2 1 1
bbbb 2 3 1 0
cccc 1 1 1 0
ffff 1 0 0 1
试试这个:
=SUMPRODUCT((TableName[ColumnB]=B1)*
(0<COUNTIFS(TableName[ColumnA],TableName[ColumnA],TableName[ColumnB],A2))
/COUNTIFS(TableName[ColumnA],TableName[ColumnA],TableName[ColumnB],TableName[ColumnB]))
=SUMPRODUCT((表名[ColumnB]=B1)*
(0我无法理解您的要求。请重新措辞,可能有一个例子。被“现在我在单元格A2中有bbbb,并且希望计算相同的值,但必须有另一列在列A中具有相同的值,并且在列B中具有相同的值(=BBBBBB)”;请参阅@Jeeped sorry,更正了“行”中的“列”(并添加了更多示例)@Ben需要注意的一点是:为了使其可拖动,所有的TableName[ColumnB]
都必须是TableName[[ColumnB]:[ColumnB]]
与A列相同。还要确保B1
是B$1
并且A2
是$A2
@ScottCraner我说的对吗,它已经可以垂直拖动了?或者我通过垂直拖动来释放单元格了?还有表名[[ColumnB]:[ColumnB]
还有表名[[columnba]:[ColumnB]]
(两者都需要)让它水平拖动?@ScottCraner谢谢。(和ScottCraner)A.S.H.(和ScottCraner)我用它作为CSE公式使它水平拖动;@Ben不,CSE仍然不需要:把它放在第一位,然后上下拖动。=SUMPRODUCT((tablename[[ColumnB]:[ColumnB]=B$1)*(0是的,我从您之前的评论中了解到了这一点。我以前的解决方案是使用CSE(这样您就不需要tablename[[ColumnB]:[ColumnB]
-语法了。仅供参考,我在问题中使用CSE的原因)
aaaa bbbb cccc ffff
aaaa 3 2 1 1
bbbb 2 3 1 0
cccc 1 1 1 0
ffff 1 0 0 1
=SUMPRODUCT((TableName[ColumnB]=B1)*
(0<COUNTIFS(TableName[ColumnA],TableName[ColumnA],TableName[ColumnB],A2))
/COUNTIFS(TableName[ColumnA],TableName[ColumnA],TableName[ColumnB],TableName[ColumnB]))