excel 关于单元格设置数据有效性后不能输入公式的问题,,比较难,求高手。

如上图,
即可以在A列输入编号后,B列和C列可以自动显示出相对应的名称、单价。
也可以直接在B列选择名称后自动补齐相对应的编号和单价。
这个怎么实现?

你的要求用公式无法办到。
如果在A列输入编号,B列自动显示名称,那么B列要输入公式,反之,在B列输入名称,要在A列显示编号,那要在A列输入公式,你只能选其一,(可用Vlookup),无法同时用公式。
如果要达到你的要求,用VBA应该可实现。追问

这么说就是无法实现在A1单元格输入公式来改变B2单元格的内容了?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-21
先填公式,再设有效性
=if(a2="","",vlookup(a2,d:f,2,))
=if(a2="","",vlookup(a2,d:f,3,))
往下拉追问

这个办法可以有,可惜,用鼠标选择操作后,那个单元格的公式就没了,那一行的输入编号自动查找功能就失效了,,,有没有更好的方法?

追答

那只能用vba了

第2个回答  推荐于2016-06-25
以你的图看:数据库的数据在D-F列,可以:
B2=vlookup(a2,d:F,2,0)
C2=vlookup(a2,d:F,3,0)
都下拉

为了美观还可以:
B2=if(a2="","",vlookup(a2,d:F,2,0))
C2=if(a2="","",vlookup(a2,d:F,3,0))追问

这样是可以输入编号自动查找出相对应的名称和单价
但是不能做到纯鼠标操作直接选择名称自动查找单价和编号

追答

那你B列做出数据有效性,试试这个:

A2=OFFSET($E$1,MATCH(B2,$E$2:$E$6,0),-1)

C2=if(b2="","",vlookup(b2,e:F,2,0))

做数据有效性的时候不要手输入,用选择:


其实,A列做出序号的数据有效性,在B、C输入我最开始给的公式,A列用鼠标选择出来,B、C自动带出来。这样公式最简单。

追问

这个表格一般都是用输入编号来查询相对应的单价,只有在忘记产品名称编号的时候才会用到用鼠标点下拉箭头来选择产品名称。

追答

你又想有数据有效性,可以选,又想有公式在里面?好像是没法共存。

本回答被提问者采纳