excel某单元格A1输入条件满足条件时A1自动生成数值,若不满足则需要在B1手动输入一个数值?可以实现么?

比如
AA 对应的是 1
BB 对应的是 2

如果我输入AA 则B1跳出1,如果输入BB则B1跳出2,如果我输入别的比如ZZ,那可以在B1再手动输入数值么?(AA BB ZZ都是举例的 ,没有实际意义)
不报希望~要是谁能解决加分~~加满!
忘记说了,如果满足条件的话B列要锁定住,如果不满足条件的话,那么我需要手动输入,就像2楼说的,如果结果是#N/A,,那我需要手动输入结果。

一、在B1中输入公式:  =IF(A1="AA",1,IF(A1="BB",2))

直接然后往下拉,填充B列其他单元格即可。

如果输入了AA,则B列会自动显示1,

输入了BB,则B列会自动显示2,

输入其他内容,则显示False.

二、这是A列输入的内容种类较少的情况下可以使用,如果A列输入内容种类太多,可以这样:

  先输入好对应的情况,在写公式,如图:

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-23
可以实现的的.请点击我的名字看我的联系方式.
详谈后我将会给你一个文件看效果.
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub '选择多个单元格区域则退出过程
If .Column = 1 And .Value = "AA" Then .Value = 1 '只有在A列输入AA,或者BB才能改变数值. 输入AA,显示为1,输入BB显示为2.还可以添加其他的.
If .Column = 1 And .Value = "BB" Then .Value = 2
End With
End Sub

这是VBA代码. 还可以继续添加,这个就不是公式能赶上的了.因为公式判断了需要使用循环引用才能在自身显示结果.否则无法实现本身自己的变化.
我的这个代码,是表示只要你在A列输入AA,及该单元格变成1,输入BB及显示2

再次修改代码.圆满完成楼主要求:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub '选择多个单元格区域则退出过程
If .Column = 1 Then
If .Value = "AA" Then
Worksheets(1).Unprotect "1111" '解除保护
.Offset(0, 1).Value = 1 '在A列输入AA,显示为1
Worksheets(1).Columns(2).Locked = True '锁定B列
Worksheets(1).Protect "1111" '再次保护
ElseIf .Value = "BB" Then
Worksheets(1).Unprotect "1111"
.Offset(0, 1).Value = 2 '输入BB显示为2
Worksheets(1).Columns(2).Locked = True
Worksheets(1).Protect "1111"
Else '不等于AA,BB的话,解除保护,不再锁定B列
Worksheets(1).Unprotect "1111"
Worksheets(1).Columns(2).Locked = False
End If
End If
End With
End Sub本回答被提问者采纳
第2个回答  2011-01-21
可以,但需要有一个对照表作为数据源,不然怎么知道该跳出什么呢?

在B1输入公式
=vlookup(a1,{"aa",1;"bb",2;"cc",3},2,0)
如果在A1输入ZZ,不在给定的范围,就会出来结果N/A,手动改一下就行

上面列的对照数据比较简单,如果多了就见一个辅助列,比如放到表2的AB列,把公式的数据区域改为引用
=vlookup(a1,sheet2!a:b,2,0)
第3个回答  2011-01-21
用IF函数可以实现。双层嵌套
在B1单元格输入:=IF(A1="AA",1,IF(A2="BB",2,"请手动输入"))
第4个回答  2011-01-21
用VBA实现
代码如下
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R&
Dim T As String
If Target.Column = 1 And Target.Count = 1 Then
R = Target.Row
T = Target.Value
If T = "AA" Then
Cells(R, 2) = 1
ElseIf T = "BB" Then
Cells(R, 2) = 2
End If
End If
End Sub
把代码复制到你要输入的工作表对应编辑框中,当你在A列输入时自动在B列按你的要求生成

或者用以下代码
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If .Column = 1 And .Value = "AA" Then Cells(.Row, 2) = 1
If .Column = 1 And .Value = "BB" Then Cells(.Row, 2) = 2
End With
End Sub