【问题标题】:How do you use ArrayFormula with arrays (after aggregation)?如何将 ArrayFormula 与数组一起使用(聚合后)?
【发布时间】:2020-07-31 10:07:51
【问题描述】:

在我的例子中:

https://docs.google.com/spreadsheets/d/1QQNTw_r9-q-FqVNwUoYklup73niZCFyO0VDUYImP5fo/edit?usp=sharing

我正在使用 Google 表单作为 eBay 的复制品来销售稀有物品。每个出价都从表格输出到“数据”工作表,然后我在“已处理”工作表中设置了 ArrayFormulas。这个想法是我想处理出价,以便我们过滤除出价最高的项目之外的所有内容。所有数据都应该自动更新,因此我要使用 ArrayFormulas。

我的策略是,在列 A 中,我首先过滤所有唯一项目 (=unique(filter(Data!A2:A,Data!A2:A<>""))) 并最终得到:

  • 侏罗纪公园 6-Pog 全息图套装
  • 小熊公主 TY 豆豆宝宝
  • 全息第一版喷火龙

但是,在 B 列中,我们必须找到对应于该唯一项目的最高出价,例如:

=IF(ISBLANK(A2),,ArrayFormula(MAX(IF(Data!A2:A=A2,Data!B2:B))))

但是,我不想让 A2 成为单个单元格 (A2) 而是一个数组 (A2:A),这样就不必手动将其复制到行中。同样,我也希望 D 和 E 列也是自动的。有什么方法可以实现吗?

【问题讨论】:

    标签: arrays sorting google-sheets google-sheets-formula transpose


    【解决方案1】:

    不确定它是否比之前发布的答案更容易,但如果将来发现这个线程,我认为这是解决这类问题的一种稍微简单的方法:

    在单元格 A1 中的新标签上试试这个:

    =FILTER(Data!A:D,COUNTIFS(Data!A:A,Data!A:A,Data!B:B,">"&Data!B:B)=0)
    

    【讨论】:

      【解决方案2】:

      我做了一些研究,发现一个与您正在寻找的答案非常相似的答案。在稍微重新排列公式以匹配您的工作表后,我能够让它工作: =ArrayFormula(vlookup(query({row(Data!A2:A),sort(Data!A2:C)},"select max(Col1) where Col2 <> '' group by Col2 label max(Col1)''",0),{row(Data!A2:A),sort(Data!A2:D)},{2,3,4,5},0))

      此公式会自动填充产品名称、最高出价、用户名和时间戳。我进行了一些测试,将我自己的随机名称和值添加到数据表中,公式效果很好。


      参考:https://webapps.stackexchange.com/a/75637

      【讨论】:

        【解决方案3】:

        使用:

        ={A1:D1; SORTN(SORT(A2:D, 1, , 2, ), 9^9, 2, 1, )}
        

        翻译:

        {A1:D1} - headers
        SORT(A2:D, 1, , 2, ) - sort 1st column then 2nd column descending
        9^9 - output all possible rows
        2 - use 2nd mode of sortn which will group selected column
        1 - selected column to be marged based on unique values
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-18
          • 1970-01-01
          • 2020-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-05
          • 1970-01-01
          相关资源
          最近更新 更多