Excel 如果countif大于7

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_

我在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_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为我的编辑提供了一个借口,但只是为了使它更简洁,而且不难修复,我只需要知道应用的方法;)我用过这个,效果很好