Excel 数据验证以另一个单元格值为条件

标签 excel excel-formula vba

上下文如下:

Sheet 1 : 
A1 = "50255"
A2 = "Soccer players"
A3 = The cell I'm having a problem with

Sheet 2 :
A1:A5 : List of soccer plays (Ronaldo, Zidane...)

Sheet 3 :
A lot of datas in which I can possibly find my Sheet1!A1 value

我希望能够做到这一点:

If A1<>"" then Vlookup in Sheet 3 and print my value "50255".
If A1="" then diplay the list of possible values you can set for Sheet2!Soccer players (Ronaldo, Zidane...)

问题:我可以在两个不同的单元格中完成这两件事,但我无法在一个单元格中完成我想做的事情...

综上所述:我想要获得 Vlookup 的结果或(如果为空)可能值的列表。

我在数据验证方面尝试过:

=SI($E$31<>"";RECHERCHEV($E$31;'1 - Data players'!$G:$XFD;EQUIV('2 - OD'!$E38;'1 - Data players'!$G$6:$EX$6;0);FAUX);indirect($E$38))

英文Excel公式:

=IF($E$31<>"",VLOOKUP($E$31,'1 - Data players'!$G:$XFD,MATCH('2 - OD'!$E38,'1 - Data players'!$G$6:$EX$6,0),FALSE),INDIRECT($E$38))

你能帮我吗?

最佳答案

您可以将 vlookup 公式和验证放入同一单元格中。唯一的问题是,如果您使用下拉菜单设置值,它会覆盖公式。出于您的目的,您是否需要稍后返回公式?如果没有,那么以下解决方案可能是合适的。

请注意,要使用来自不同工作表的验证,您需要首先将范围名称应用于值列表,然后在数据验证中引用范围名称。

我已按照您的示例设置了 3 个工作表。我已将“玩家”设置为包含玩家名称列表的 Sheet2 上 A1:A3 的范围名称。然后我将 vlookup 公式放入 A3 中:

=IFERROR(VLOOKUP(A1,Sheet3!$A$1:$B$3,2,0),"")

Formula

然后使用 List 选项向 A3 添加数据验证:

=IF($A$1="",Players,"")

Data Validation

如果我清除 A1 中的值,则会出现下拉菜单:

Dropdown

关于Excel 数据验证以另一个单元格值为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42157144/

相关文章:

excel - 如何在 Excel 中仅删除第一个逗号(确切字符、符号或字符串)

function - 在 Excel 中设置范围时 VBA 失败

excel - FileSystemObject - 无法打开保存在文件夹中的文件

excel - Access 数据库中的 vba 上传中的语法错误

excel - 连接两个路径字符串以获得最终路径?

excel - IF() 函数不适用于使用 VLOOKUP() 获取的数字

vba - 数据透视表计算项产生错误

excel - 验证复利公式

sql - 如何解决 MS-Access 中的 "Enter Parameter value"错误

excel - 如何在 Excel 中将文本日期转换为日期格式,如 mm/dd/yyyy