-1

Проблема, с которой я столкнулся, заключается в том, что я хочу посмотреть номер заказа (столбец A) только в том случае, если их значение превышает 4. Когда у них есть 4 значения, я хочу посмотреть только последние 4 значения в этом порядке. В столбце D я написал 1 и 0, чтобы соответствовать тому, с чем я могу фильтровать.

Но я не знаю, как я могу написать формулу в Excel, чтобы сделать это из столбца B.

1 ответ1

0

На 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 или все, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .