Google Sheet: 如果单元格为空则显示第一个数据验证值
Google Sheet: Show first data validation value if cell is empty
大家下午好,
如果单元格 A18 和 F18 是 [=23],我正在寻找一种方法让我的下拉列表显示第一个值=]空。数据验证范围是从单元格 X18 到 AA18(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。
大家下午好,
如果单元格 A18 和 F18 是 [=23],我正在寻找一种方法让我的下拉列表显示第一个值=]空。数据验证范围是从单元格 X18 到 AA18(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。