Excel 公式显示特定范围的 (1,0)

Excel 公式显示特定范围的 (1,0)

我遇到的问题是,如果订单号(A 列)的值超过 4 个,我只想查看订单号。当它们有 4 个值时,我只想查看该订单中的最后 4 个值。在 DI 列中写入 1 和 0 以与我可以过滤的内容相对应。

但我不知道如何在 Excel 中编写公式来从 B 列执行此操作。

在此处输入图片描述

答案1

在 VBA 上插入一个模块,并在模块上插入以下代码:

Function OverFour(Target As Range, top_value As Integer) As Integer
    thisrow = Target.Row 'row of the order cell
    thiscolumn = Target.Column 'column of the order cell
    thisvalue = Target.value 'value of the order cell
    thisorder = Cells(thisrow, thiscolumn)
    notSame = True
    newrow = thisrow
    finalvalue = 0
    'the following part checks how many rows are on the block of repeated values
    While notSame = True 
        newrow = newrow + 1
        k = Cells(newrow, thiscolumn)
        j = Cells(newrow, thiscolumn - 1)
        If k = 1 Or k = "" Then
            newrow = newrow - 1
            notSame = False
        End If
    Wend
    'if the number of rows is larger than top_value
    'and this cell is in the range from top_value to the end of the block
    'then output an 1
    If Cells(newrow, thiscolumn) >= top_value Then
        If newrow - thisrow <= top_value - 1 Then
            finalvalue = 1
        End If
    End If
    OverFour = finalvalue
End Function

现在,在单元格 D2 中插入:

=OverFour(B2,4)

并将其复制(向下拖动)至 D 列的其他单元格。

该函数使用两个引用:

  • B2在这种情况下,订单的单元格。
  • 所需最高价值4在此示例中。

它的好处是,如果您决定标记前 2、3、4、5 名或任何您想要的,它就可以起作用。

相关内容