1. 源数据是A列与B列, 在C列统计A列值相等时,在B列不同取值的个数, 在C1输入如下的公式, 再双击单元格的右下角的小正方形即可

C1结果计算过程:

第一步: (A$1:A$6=A1) 返回一个数组 {TRUE;FALSE;FALSE;TRUE;FALSE;FALSE}, 数组大小跟A$1:A$6相同, 分别比较A$1:A$6各元素与A1是否相等, 相等取TRUE, 不相等为FALSE

第二步:COUNTIFS(A$1:A$6,A$1:A$6,B$1:B$6,B$1:B$6), 返回一个数组{1;1;3;1;3;3}, 相当统计了A,B两取值相等的行数

第三步:{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE}/{1;1;3;1;3;3}, 得到两个数组各元素对应相除后的数组:{1;0;0;1;0;0}, 数组的计算不同跟线性代数的矩阵乘法混淆。

2. 对于上表的数据,如果是要求A列取值相等,B列数据的求合,这个有很多种实现方法

方法1: sumif, sumifs

方法2:sumproduct

这种情况往往用数据透视表更合适

3. vlookup实现返回查找列前面的数据值的方法

利用if函数重新排列两列数据的顺序

if({1,0}, array2, array1)

 

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐