所以我连续有Fruit-Apple-25
,Vegetable-Tomato-22
之类的字段。是否可以创建一个新字段,将其命名为Fr_Grp_App
,Vg_Grp_Tm
。我现在使用的只是选择它是苹果还是番茄,而不添加其他前缀。我该怎么办。
if(not(iserror(find("Apple",D3))),"Apple",if(not(iserror(find("Tomato",D3))),"Tomato")
因此,如果其水果为前缀,则应为Fr;如果其蔬菜为前缀,则应为Vg
答案 0 :(得分:3)
您没有要求,但是我认为在UDF中执行此操作将使您对如何定义这些组有更多的控制权,并可以进行扩展而不会陷入真正可怕的字符串处理公式中。
要执行此操作,请在VBE中创建一个新模块并将其粘贴到:
Public Function FoodGroup(foodString As String) As String
'Variables
Dim Group As String
Dim Food As String
'Get the incoming group and food name from the string
Group = Split(foodString, "-")(0)
Food = Split(foodString, "-")(1)
'Handle group names
Select Case Group
Case "Fruit"
Group = "Frt"
Case "Vegetable"
Group = "Veg"
End Select
'Handle Fruit Names
Select Case Food
Case "Tomato"
Food = "Tm"
Case "Apple"
Food = "App"
End Select
'Return
FoodGroup = Group & "-Grp-" & Food
End Function
保存工作簿,然后可以在工作簿中使用此新的UDF: