假设我们有一个如下所示的数据框,其中表 1 中有两个变量。
Var1 Var2
1 1
1 2
1 5
1 9
1 10
2 9
2 7
2 2
2 1
2 3
3 4
3 5
3 6
3 8
3 10
在表 2 中,我们有以下用于 Var 2 中唯一值的矩阵。
1 2 3 4 5 6 7 8 9 10 Total
1 115 101 173 230 253 175 111 324 317 251 2050
2 9 24 94 43 58 79 44 82 112 71 616
3 19 21 28 29 68 69 17 42 54 28 375
4 61 53 57 77 132 74 58 125 107 116 860
5 45 37 95 85 99 72 58 176 197 136 1000
6 18 36 34 37 63 48 29 82 107 92 546
7 6 11 40 56 89 53 20 62 47 62 446
8 30 23 38 80 111 70 35 88 153 131 759
9 43 35 62 94 135 122 71 215 230 122 1129
10 14 20 42 46 62 47 37 126 143 105 642
Total 360 361 663 777 1070 809 480 1322 1467 1114
所需输出:
对于 Var 1 中的每个唯一 ID,Var 2 中行总数和列总数之和最大的值是多少。
对于这个虚拟示例,这就是结果。
注意: 在解决方案中,我想使用矩阵的工作表名称(如sheet2)作为下拉列表中的用户输入。因此,公式中不能不使用XLOOKUP函数。
尝试使用以下公式并尝试根据您的套装调整数据:
• 单元格中使用的公式 E15
=LET(
_var1, A2:A16,
_var2, B2:B16,
_uniqVar2r, XLOOKUP(_var2,E2:E11,P2:P11),
_uniqVar2c, XLOOKUP(_var2,F1:O1,F12:O12),
_merged, SORT(HSTACK(_var1,_var2,_uniqVar2r+TOCOL(_uniqVar2c)),{1,3},{1,-1}),
INDEX(_merged,XMATCH(UNIQUE(_var1),_var1),{1,2,3}))
当数据位于不同的工作表中时也显示工作情况: