Google表格如何查找给定列的前3个最接近的列

时间:2017-04-03 00:21:47

标签: excel google-sheets spreadsheet google-sheets-api

我有像Google这样的Google表格中的表格,

-------------------
   | A | B | C | D |
-------------------
1  |C1 |C2 |C3 |C4 |
2  | 1 | 2 | 1 | 2 |
3  | 2 | 3 | 4 | 3 |
4  | 5 | 7 | 1 | 6 |
-------------------

我的目标是找到哪两列C1,C2,C3最接近C4,

通过计算每列和列C4的平均差异,

e,g列C1的绝对值为(((1-2)+(2-3)+(5-6))/ 3)

,即abs(((A2-D2)+(A3-D3)+(A4-D4))/(行数))

我使用ARRYFORMULA获取一列的平均差异,然后我将其水平拖动以使As增加到Bs等等

=ArrayFormula({A1;abs(average( (checks if there is empty cell) ,$D2:$D-(A2:A) )))})

如果我在单元格Z1中使用它,Z1将显示' C1'和Z2将显示C1列的平均差异

但是我不确定如何使用单个嵌套公式对所有列A:C一次执行,而不必拖动它

就像我在Z1中输入=FORMULA(...)一样,表格会显示

谢谢

1 个答案:

答案 0 :(得分:0)

尝试以下公式:

=QUERY(ARRAYFORMULA(ABS((ROW(A2:C)*COLUMN(A2:C))^0*D2:D26-A2:C26)), "select avg(Col"&JOIN("), avg(Col",ArrayFormula(row(INDIRECT("A1:A"&COLUMNS(A2:C)))))&")")

<强>解释

  • (ROW(A2:C)*COLUMN(A2:C))^0*D2:D26 - 复制C4以与其他人进行比较
  • "select avg(Col"&JOIN("), avg(Col"... - 撰写查询以获取每列的平均值。

注意:在您的公式abs(average(必须更换→average(abs(才能首先完成abs功能。