Google Sheet: 如果单元格为空则显示第一个数据验证值

Google Sheet: Show first data validation value if cell is empty

大家下午好,

如果单元格 A18F18 是 [=23],我正在寻找一种方法让我的下拉列表显示第一个值=]空。数据验证范围是从单元格 X18AA18(4 个值)。

所以基本上,当我输入名称 'Test' 时,它会从另一个选项卡中获取数据:“治疗者”、“坦克”、“圣骑士”和“混合 DPS”,并将其显示在单元格中X18 至 AA18。使用数据验证,将使用这些值生成下拉列表。但是,一旦输入名称,我希望下拉列表的默认值为 X18.

的值

所以:如果A18为空,F18的值应该与X18匹配。 (如果没有给出名称,F18 中将没有任何内容,因此它应该保持为空)

如果我理解正确,只需将公式放入单元格 F18:F。

=IF($A18<>"",$X18,"")

如果 A 列不为空,则获取 X 列中的值,否则为空(或从下拉列表中获取 select)。看看你链接的sheet,我已经更新了。

从下拉列表中选择将覆盖公式,如果这是您所指的问题,您唯一的解决方法是创建帮助列或使用脚本。

更新

为了使用脚本完成此操作,您可以添加以下内容:

function onEdit(e) {

  var editRange = { // A18:A250
    top : 18,
    bottom : 250,
    left : 1,
    right : 1
  };

    //Get sheet from which the event occured
  var range = e.range
  var sheet = range.getSheet();  

    // Exit if wrong sheet
  if (sheet.getSheetName() != "War Board") return;

    // Exit if we're out of range
  var thisRow = e.range.getRow();
  if (thisRow < editRange.top || thisRow > editRange.bottom) return;

  var thisCol = e.range.getColumn();
  if (thisCol < editRange.left || thisCol > editRange.right) return;

  //Set default if value is not blank
  if (!range.isBlank()) range.offset(0, 5).setValue(range.offset(0, 23).getValue());

  //Set blank if value is blank
  if (range.isBlank()) range.offset(0, 5).setValue("");
}

如果在 A 列中给出了名称,这会将 F 的值设置为 X 列中的相应值。如果 A 列中的单元格被清空,它将清空单元格 F。