我的Excel工作表中有3列 - ID,版本,材料编号
代表前 -
我希望数据透视表就像 -
如何创建第三个计算列,因为它涉及两个聚合函数来创建它。 我正在寻找最大版本的计数,所以我也需要MAX功能,不计算唯一值。
答案 0 :(得分:1)
考虑基于工作表函数的解决方案。
假设该表位于class CustCompare implements Comparator<ArrayList<Integer>> {
@Override
public int compare(ArrayList<Integer> a, ArrayList<Integer> b) {
if (Objects.equals(a.get(0), b.get(0))) {
if (!Objects.equals(a.get(1), b.get(1)) || !Objects.equals(a.get(2), b.get(2)) || !Objects.equals(a.get(3), b.get(3))) {
b.set(1, a.get(1));
b.set(2, a.get(2));
b.set(3, a.get(3));
}
return 0;
} else {
return (a.get(0) - b.get(1));
}
}
}
,
输入一个数组公式,该公式计算唯一ID
B5:D14
进入=SUM(N($B$5:$B$14<>$B$4:$B$13))
,输入
G2
COUNT($B$5:$B$14)-G2
中的。
输入数组公式( 输入 Ctrl + Shift + 输入 而不只是 Enter ), 它在顶部收集唯一ID并用空白填充其余输出行:
H2
在=IFERROR(INDEX($B$1:$B$14,SMALL(N($B$5:$B$14<>$B$4:$B$13)*ROW($B$5:$B$14),ROW(B5)-ROW($B$4)+$H$2))*N(SMALL(N($B$5:$B$14<>$B$4:$B$13)*ROW($B$5:$B$14),ROW(B5)-ROW($B$4)+$H$2)>0),"")
中,另一个数组公式
G5
<{1>}中的和另外一个数组公式
=IF(LEN(G5)>0,MAX(N($B$5:$B$14=G5)*$C$5:$C$14),"")
在H5
中,选择范围=IF(LEN(G5)>0,SUM(($B$5:$B$14=G5)*($C$5:$C$14=H5)),"")
并将其拖放/复制。