excel如何设置文本对应数值?
如图:当我C2栏输入A2A4,在D2栏自动输出B2B4的值,如何设置? 展开
1.将数字格式转化为文本格式:TEXT(value, format_text),参数含义:
value 数值(可以是对包含数值的单元格的引用);ormat_text (注:使用双引号括起来作为文本字符串的数字格式,例如, "#,##0.00"
如有下表,F列中都是文本格式分数,现在要将这些分数转化为文本格式:
2.鼠标点到H2单元格输入函数“=TEXT(F2,"###")”点击enter。
3.这种格式在Excel表格中是可以复制引用的,所以用这种方法可以对表格中格式进行批量处理。
4.通过这种方法可以再format_text中输入想要的对应格式。
5.同样可以用函数将文本格式转化为数字格式。可用VALUE(text),VALUE函数只有一个参数text,表示需要转换成数值格式的文本。text参数可以用双引号直接引用文本,也可以引用其他单元格中的文本。如将下图中文本格式生日转化为数值格式。
6.如将C2单元格的文本可是日期转化为数值格式存在D2单元格,可以将鼠标点击C2单元格输入“=VALUE(C2)”后回车。这种格式同样可以复制。
亲,这个有点复杂,还涉及到您输入的先后顺序,例如是白菜猪肉、还是猪肉白菜……
用VBA合适一些。
按ALT+F11打开VBA编辑窗口,按下图粘贴代码:
附件范例也已经上传了,供亲参考。
Private Sub Worksheet_Change(ByVal Target As Range)
If Selection.Count = 1 Then
If Target.Column = 3 Then
Dim rg As Object
Dim st, FBarr() As String
Dim i, FAarr() As Integer
i = 0
For Each rg In Application.Intersect(UsedRange, Columns(1))
If InStr(1, Target.Value, rg.Value) <> 0 Then
i = i + 1
ReDim Preserve FAarr(1 To i), FBarr(1 To i)
FAarr(i) = InStr(1, Target.Value, rg.Value)
FBarr(i) = rg.Offset(0, 1).Value
End If
Next
If i = 0 Then
st = ""
Else
For i = 1 To UBound(FAarr)
st = st & Application.Index(FBarr, Application.Match(Application.Small(FAarr, i), FAarr, 0))
Next
End If
Target.Offset(0, 1).Value = st
End If
End If
End Sub
真真真白丁 大侠,如果输入:狗肉鱼狗肉 则输出:308,而不是"30830",这如何处理?
兄台所言极是,小弟已修订代码,见附件。
Private Sub Worksheet_Change(ByVal Target As Range)
If Selection.Count = 1 Then
If Target.Column = 3 Then
Dim rg As Object
Dim st As String
Dim flag As Integer
st = Target.Value
flag = 0
For Each rg In Application.Intersect(UsedRange, Columns(1))
If InStr(1, Target.Value, rg.Value) <> 0 Then
st = Replace(st, rg.Value, rg.Offset(0, 1).Value)
flag = 1
End If
Next
If flag = 0 Then
st = ""
End If
Target.Offset(0, 1).Value = st
End If
End If
End Sub
如果输入:白菜猪肉鱼,如何输出:2138? 输入更多的对应名称,如何输出对应的值?
我上面的回答中已说明:
=====注意,这样的局限性很大,C2要求必须是要输入两个名称,否则公式出错。=====
如果是没有规律的,这回答中还有一网友用的VBA解决。