Как определить только один самый низкий номер в той же категории - PullRequest
0 голосов
/ 21 января 2020

Итак, у меня есть таблица, например,

- Category / Price
- A / 500
- A / 200
- A / 200
- B / 1000
- B / 2000
- B / 1000

Как найти только ОДИН наименьшее число в каждой категории по формулам Excel или VBA (даже если в одной категории есть 2 наименьших значения)?

Мой ожидаемый результат будет:

- Category / Price / CheckLowest
- A / 500 / 
- A / 200 / TRUE
- A / 200 / 
- B / 1000 / TRUE
- B / 2000 / 
- B / 1000 /

Первый раз, чтобы задать вопрос здесь. Спасибо.

Ответы [ 3 ]

0 голосов
/ 21 января 2020

Я бы повторил приведенный выше комментарий о следовании принципам «как спросить».

Однако я создал UDF в VBA, который должен решить ваши проблемы. Предполагая, что вы знакомы с VBA, код выглядит следующим образом:

Function Price_Checker(Target As String, Rg As Range) As Double
Dim i As Long
Dim arr As Variant
Dim Price As Double
Dim Low_Price As Double

Low_Price = 1E+99
arr = Rg

For i = LBound(arr, 1) To UBound(arr, 1)
    If arr(i, 1) = Target Then
        Price = arr(i, 2)
        If Price < Low_Price Then
            Low_Price = Price
        End If
    End If
Next i

Price_Checker = Low_Price

End Function

Любые вопросы, дайте мне знать

РЕДАКТИРОВАТЬ: Аналогично, функция MINIFS, кажется, работает так же эффективно.

= MINIFS (диапазон цен, ассортимент продукции, целевой продукт)

Просто замените вышеуказанное фактическими ячейками / диапазонами

0 голосов
/ 21 января 2020

Используйте эту формулу массива для ячейки C2, затем перетащите ее вниз и вправо, если необходимо.

=IF(SMALL(IF($A$2:$A$7=A2,$B$2:$B$7,""),1)=B2,TRUE,"")

Нажмите CTRL + SHIFT + ENTER для вычисления формулы как формулы массива.

enter image description here

0 голосов
/ 21 января 2020

Вы можете достичь этого, используя Формула массива , как в столбце C. Вам нужно нажать Ctrl+Shft+Enter, чтобы правильно запустить эту формулу. Однако вы можете перетащить формулу после ввода в первую ячейку (в этом случае ячейка C2 ).

=MIN(IF($A$2:$A$7=A2,$B$2:$B$7,""))

Столбец D имеет нормальную формулу, просто нажмите ввод как обычно.

=COUNTIFS($A$1:A2,A2,$B$1:B2,C2)=1

Ниже приведен скриншот с формулами:

Formulas:

И следующий вывод:

Output

Вы также можете решить эту проблему с помощью VBA. в этом случае вы можете сначала попробовать его и сообщить нам с вашим кодом, который вы пробовали, если столкнетесь с какой-либо проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...