我如何为产品降低变化?

问题描述 投票:0回答:1

当我在单元格中键入“产品”时。旁边的单元格将通过下拉菜单显示可用变化的列表?

这样吗? 这是数据表

data纸 | A列| B列|列C | | -------- | -------- | -------- | |单元1 |产品|变体| |单元2 |机器人|蓝色| |单元3 |士兵|黄色| |单元4 |机器人|绿色|

我希望做这样的事情 当我在单元格中键入“机器人”时。旁边的单元格将限制我的选择/数据验证,或将选择/数据验证过滤到机器人下的“变化”。

新纸 | A列| B列|列C | | -------- | -------- | -------- | |单元1 |产品|变体| |单元2 |我在这里输入机器人|可用变化的选择出现在此处|

可能会有可能吗?

为产品创建了一项变化的下降 您可以使用Google Apps脚本来实现此目标,将值从

DATA SHEET
google-sheets-api google-workspace
1个回答
0
投票
NEW SHEET

插入一个值,并在任何单元格中的下一个单元格中创建下拉菜单。

用户使用


function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var targetSheetName = "NEW SHEET";
  var dataSheetName = "DATA SHEET";

  if (sheet.getName() !== targetSheetName) {
    return;
  }

  var editedCell = e.range;
  var product = editedCell.getValue().toString().toLowerCase();
  var nextColumn = editedCell.getColumn() + 1;

  if (editedCell.getRow() === 1) {
    return;
  }

  var dataSheet = e.source.getSheetByName(dataSheetName);
  var dataRange = dataSheet.getDataRange().getValues();
  var variations = [];

  for (var i = 1; i < dataRange.length; i++) {
    if (dataRange[i][0].toString().toLowerCase() === product) {
      variations.push(dataRange[i][1]);
    }
  }

  var validationRange = sheet.getRange(editedCell.getRow(), nextColumn);

  if (variations.length > 0) {
    var rule = SpreadsheetApp.newDataValidation()
      .requireValueInList(variations, true)
      .build();
    validationRange.setDataValidation(rule);
  } else {
    validationRange.setDataValidation(null);
  }
}

样本输出


data板

动物 动物 格林 Soldier叶动物 data验证
蓝色
参考
event对象

image

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.