如果单词以后缀之一结尾则标记为1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果单词以后缀之一结尾则标记为1相关的知识,希望对你有一定的参考价值。
假设我有这个。
Words Mark Suffix
Happily ly
Emotional dom
Emotionally
Surfdom
如果单词在后缀列表中以某个后缀结尾,我想标记为1,否则为0。
Words Mark Suffix
Happily 1 ly
Emotional 0 dom
Emotionally 1
Surfdom 1
我尝试过lookup
和vlookup
,但它们不完整。我该怎么办?
答案
如果这三列是A,B和C,则B2 ==IF(OR(RIGHT(A2,LEN($C$2))=$C$2,RIGHT(A2,LEN($C$3))=$C$3),1,0)
上面的公式提供了灵活性,可以将任何值放在C2和C3中并标记它们。
您不必参考C列=IF(OR(RIGHT(A2,2)="ly",RIGHT(A2,3)="dom"),1,0)
如果您在C列中有大量数据,则不合适。在这种情况下,您可能需要VBA解决方案。
另一答案
我没有找到可以完成此工作的工作表函数,但这是一个像UDF一样的用户定义函数。
Function Suffixed(Cell As Range) As Integer
Dim Suff As Variant ' list of Suffixes
Dim Word As String ' the word extracted from 'Cell'
Dim L As Integer ' length of suffix string
Dim R As Long ' row counter
Word = Cell.Value
If Len(Word) Then ' skip if blank (return 0)
' set the range in column D, starting in row 2 to the column's end
Suff = Range(Cells(2, "D"), Cells(Rows.Count, "D").End(xlUp)).Value
For R = 1 To UBound(Suff)
L = Len(Suff(R, 1))
If StrComp(Right(Word, L), Suff(R, 1), vbTextCompare) = 0 Then
Suffixed = 1
Exit For
End If
Next R
End If
End Function
将代码安装在标准代码模块中。那不是Excel设置的代码模块。您必须将其插入,其默认名称为Module1
。之后,您可以使用您惯用的语法从工作表中调用该函数。例如,
=Suffixed(A2)
如果单词以列表中的后缀结尾,该函数将返回1,否则返回0。您可以修改代码以将后缀列表移动到所需位置。更改列字母的两个实例和数字2的一个实例,以指定列表的第一行。
' set the range in column D, starting in row 2 to the column's end
Suff = Range(Cells(2, "D"), Cells(Rows.Count, "D").End(xlUp)).Value
列表的末尾是动态的,代码将找到它。不要在列表中留空。
以上是关于如果单词以后缀之一结尾则标记为1的主要内容,如果未能解决你的问题,请参考以下文章