【问题标题】:How to filter on values produced by a formula in google sheets without moving the formula?如何在不移动公式的情况下过滤谷歌表格中公式产生的值?
【发布时间】:2020-05-25 03:07:57
【问题描述】:

我正在使用 FILTER 函数根据源选项卡中 K 列中的条件将数据从工作表中的一个选项卡拉到另一个选项卡。源选项卡每晚更新一次(BigQuery 连接的自动刷新)。我想从源选项卡中拉入 A-I 列,然后允许用户编辑与从源选项卡中拉入的每一行相关的 K-O 列。

问题是我还想每天按状态列对我从源选项卡中提取的范围进行排序。而且我希望整行(包括手动输入的 col K-O)在我排序时也能改变顺序,以便它们与我从源中提取的值保持联系。我不能使用 SORT 功能,因为那时只有 A-I 列会调整。

我也无法过滤源数据,因为 K 列中的条件是人员分配,如果我更改源数据中的顺序,它会更改人员分配,使整个工作表无用。

所以我在非源选项卡的第一行添加了过滤器,并计划只运行一个未过滤的宏,然后重新过滤工作表并设置一个触发器,以便它每天自动运行。但是,当我尝试过滤工作表 Z --> A 时,具有过滤功能的行会移动并弄乱整个工作表。

是否有锁定 FILTER 公式,以便在我重新排序工作表时它不会移动,但行值会移动?

或者有没有办法在 FILTER 函数下方插入一个空白行,以便我可以将过滤器添加到该行而不是其中包含公式的实际行。

我也愿意接受任何其他建议,这对我来说是一个巨大的挫败感。

【问题讨论】:

    标签: sorting google-apps-script google-sheets filter


    【解决方案1】:

    使用脚本:

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Sheet2");                                   //SHEET NAME HERE
    var range = sheet.getRange("A2:Z");                                        //RANGE HERE
    
    function onEdit(e)  {
    range.sort([{column: 4, ascending: false}, {column: 1, ascending: true}]); //SORT CRITERIA
    }
    

    【讨论】:

    • 太棒了,这似乎有效 - 非常感谢!我正在尝试进行一项修改,如何强制 onEdit 函数仅在编辑一列而不是整个工作表时运行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多