【问题标题】:Google Sheets How to find the Top 3 closest columns to a given column谷歌表格如何找到与给定列最接近的前 3 列
【发布时间】:2017-04-03 00:21:46
【问题描述】:

我在谷歌表格中有一张像这样的表格,

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

我的目标是找出哪 2 列 C1、C2、C3 最接近 C4,

通过计算每列与C4列之间的平均差,

e,g C1 列的平均值为 abs( ( (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(...),就会出现一个表格

谢谢

【问题讨论】:

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


    【解决方案1】:

    试试公式:

    =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 功能。

    【讨论】:

      猜你喜欢
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多