首页 > 解决方案 > 依赖下拉样式,过滤总和高级年度预算跟踪器

问题描述

我一直在尝试寻找要使用的 Dependent 下拉脚本,但我找不到一个有效的。我没有这个想法。

我需要帮助的事情

  1. 我正在尝试在我的预算表中添加一个部分,当您从数据验证下拉列表中选择一个类别时,下一个单元格将有一个基于刚刚选择的类别的子类别下拉列表。在“EJan”、“EFeb”等工作表中。
  2. 我想在“EJan”中添加与子类别相关的所有内容,并将其总和粘贴到所需的子类别中,并将月份粘贴到“费用”中。

这是我的谷歌电子表格副本的链接

标签: google-sheetssumcategoriesdropdown

解决方案


我经常使用Jason Jurotich的这个脚本。
你可以在他的 YouTube 频道的描述中找到它:
在 GOOGLE 电子表格中的动态相关下拉列表

请看一下我准备并使用上述脚本的工作表副本。

https://docs.google.com/spreadsheets/d/1JvJunjYBYdgRY66Nx75UBjHjGDiYL0KascwV3YGuGRs/edit?usp=sharing


这是上述脚本 的精确副本:

function depDrop_(range, sourceRange) {
    var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build();
    range.setDataValidation(rule);
}

function onEdit() {
    var aCell = SpreadsheetApp.getActiveSheet().getActiveCell();
    var aColumn = aCell.getColumn();
    if (aColumn == 1 && SpreadsheetApp.getActiveSheet()) {
        var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
        var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
        depDrop_(range, sourceRange);
    } else if (aColumn == 2 && SpreadsheetApp.getActiveSheet()) {
        var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
        var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
        depDrop_(range, sourceRange);
    }


    //if (aColumn == 8 && SpreadsheetApp.getActiveSheet()){
    //var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
    //var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
    //depDrop_(range, sourceRange);
    //}
    //else if (aColumn == 9 && SpreadsheetApp.getActiveSheet()){
    //var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
    //var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
    //depDrop_(range, sourceRange);
    //}

}

推荐阅读