Создание матрицы цен с двусторонним поиском в Excel с использованием VBA (Index / Match / SumProduct) - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать матрицу ценообразования для продуктов, но использование формул Index / Match или SumProduct оказывается для меня кошмаром, мне интересно, будет ли VBA проще?

По существу, еслиширина или высота продукта находится между двумя цифрами, мне нужна указанная цена, чтобы взять следующую ценовую скобку.(Примечание: округление или использование функций потолка в формуле у меня тоже не работает)

Примеры кода, который я пробовал использовать:

=SUMPRODUCT(--(HeightRange=CEILING(Height,1000))*--(WidthRange=CEILING(Width,10))*PriceRange)

=INDEX(PriceRange,MATCH(MIN(ABS(HeightRange-Height)),ABS(HeightRange-Height),-1),MATCH(MIN(ABS(WidthRange-Width)),ABS(WidthRange-Width),-1))

Пример таблицы: enter image description here

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Вы можете использовать =AGGREGATE() примерно так:

=INDEX(A:E,AGGREGATE(15,3,(($A$4:$A$11>=N3)/($A$4:$A$11>=N3))*ROW($A$4:$A$11),1),AGGREGATE(15,3,(($B$3:$J$3>=M3)/($B$3:$J$3>=M3))*COLUMN($B$3:$J$3),1))

0 голосов
/ 27 февраля 2019

Вы можете напрямую использовать формулы, как оба парня сказали выше ... Мой здесь:

=INDEX($A:$J,MATCH($N3,$A:$A,0),MATCH($M3,B$3:J$3,0))
0 голосов
/ 27 февраля 2019

Использование:

=INDEX(B:J,MATCH(N3,A:A),MATCH(M3,B$3:J$3))
...