我完全停留在Excel VBA中创建用户定义的函数以解决以下问题。任何帮助将不胜感激。
我的excel文件看起来像这样(为了简洁起见,只添加了一小部分):
A B C D
1 Susan Reagan Smith
2 Jill L Taylor
3 Sarah Sullivan Williams
4 Roger J Lopez
我想要一个函数来确定:如果A1 = Susan或Jill OR Sarah,AND LEN(字符串的长度)B1> 1那么D1 = A1 / 2 B1 C1 ELSE A1 / 2 C1
因此D列的输出如下:
A B C D
1 Susan Reagan Smith Susan /2 Reagan Smith
2 Jill L Taylor Jill /2 Taylor
3 Sarah Sullivan Williams Sarah /2 Sullivan Williams
4 Roger J Lopez Roger /2 Lopez
我想使用VBA,因为我要添加许多名称,并且不需要在单元格D1中使用大量嵌套if语句的大型公式。我自己一直在努力,但这只是一团糟,我不好意思在这里发布它。谢谢你们!
答案 0 :(得分:3)
Public Function JoinNames(A, B, C)
If FirstNameMatches(A) And Len(B) > 1 Then
JoinNames = A & " /2 " & B & " " & C
Else
JoinNames = A & " /2 " & C
End If
End Function
Private Function FirstNameMatches(N) As Boolean
Select Case N
Case "Susan", "Jill", "Sarah"
FirstNameMatches = True
End Select
End Function
答案 1 :(得分:0)
在工作表上的其他位置列出名称。
使用IF(ISNA(MATCH(A1, list_of_names, 0)), "Not found", "Found")
确定名称是否被识别。