Excel 如果countif大于7
我在excel文件上有点小问题。我使用以下公式的目的是: 如果所选单元格包含另一个值(字符串),则函数返回一个值。这工作做得很好。但是我有20个if/countif要添加,但它不起作用,因为我不能超过7。。。 有没有办法轻松解决这个问题? 我也给你的vba代码下的excel代码 非常感谢你的帮助Excel 如果countif大于7,excel,vba,Excel,Vba,我在excel文件上有点小问题。我使用以下公式的目的是: 如果所选单元格包含另一个值(字符串),则函数返回一个值。这工作做得很好。但是我有20个if/countif要添加,但它不起作用,因为我不能超过7。。。 有没有办法轻松解决这个问题? 我也给你的vba代码下的excel代码 非常感谢你的帮助 =SI(NB.SI([@[ENTRY_LABEL]];"*MAZ*");"MAZ";SI(NB.SI([@[ENTRY_LABEL]];"*MGN*");"MGN";SI(NB.SI([@[ENTRY_
=SI(NB.SI([@[ENTRY_LABEL]];"*MAZ*");"MAZ";SI(NB.SI([@[ENTRY_LABEL]];"*MGN*");"MGN";SI(NB.SI([@[ENTRY_LABEL]];"*Magnitude*");"MGN";SI(NB.SI([@[ENTRY_LABEL]];"*AJU*");"AJU";SI(NB.SI([@[ENTRY_LABEL]];"*Reclas*");"Reclass";"")))))
VBA代码:
Range(ActiveCell, ActiveCell.End(xlDown)).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*MAZ*""),""MAZ"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*MGN*""),""MGN"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*Magnitude*""),""MGN"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*AJU*""),""AJU"",IF(COUNTIF(Tableau4[[#This Row],[ENTRY_LABEL]],""*Reclas*""),""Reclass"","""")))))"
在这种情况下,可以使用VBA公式。只需在模块级的Visual Basic编辑器中编写如下内容:
Public Function many_ifs(my_cell As Range) As String
Select Case my_cell.Value
Case 1
many_ifs = "one"
Case 2
many_ifs = "two"
Case 3
many_ifs = "three"
Case 4
many_ifs = "four"
Case Else:
many_ifs = "Unknown"
End Select
End Function
然后从Excel中调用它,作为常规公式,如下所示:
以下是如何开始使用VBA:
我终于用上了它,它很管用
Public Function cat1_0lia(my_cell As Range) As String
Dim result As String
Select Case True
Case my_cell.Value Like "*MAZ*":
result = "MAZ"
Case my_cell.Value Like "*Maz*":
result = "MAZ"
Case my_cell.Value Like "*maz*":
result = "MAZ"
Case my_cell.Value Like "*Mis à 0*":
result = "MAZ"
Case my_cell.Value Like "*Mgn*":
result = "MGN"
Case my_cell.Value Like "*MGN*":
result = "MGN"
Case my_cell.Value Like "*Magnitude*":
result = "MGN"
Case my_cell.Value Like "*AJU*":
result = "AJU"
Case my_cell.Value Like "*Aju*":
result = "AJU"
Case my_cell.Value Like "*aju*":
result = "AJU"
Case my_cell.Value Like "*RECLASS*":
result = "RECLASS"
Case my_cell.Value Like "*Reclass*":
result = "RECLASS"
Case my_cell.Value Like "*reclass*":
result = "RECLASS"
Case Else:
result = ""
End Select
cat1_0lia = result
End Function
也谢谢你!很高兴看到您以自己的方式解决了这个问题!:)@Vitya为我的编辑提供了一个借口,但只是为了使它更简洁,而且不难修复,我只需要知道应用的方法;)我用过这个,效果很好