Вам не нужен VBA (макрос), чтобы сделать это.Это можно сделать с помощью формулы рабочего листа.
Например:
Если вашими производителями являются P1, P2, P3, P4 и ваш лист выглядит следующим образом: -
A B C D E F
+-------------------------------------------
1 | Month P1 P2 P3 P4 Top Producer
2 | Jan 5 4 3 2
3 | Feb 2 3 5 1
4 | Mar 6 4 4 3
...
...
Следующая формула, помещенная в ячейки F2, F3, F4, ..., выберет лучшего производителя в каждом месяце.
=INDEX($B$1:$E$1,MATCH(MAX(B2:E2),B2:E2,0))
Как правило, лучше по возможности использовать встроенные функции Excel.Прибегайте к VBA, только если вам это действительно нужно.Даже если бы вы использовали верхние данные о производителе / месяце для какой-либо другой операции, которая возможна только в VBA, по крайней мере для вас будет произведен по крайней мере вывод данных о главном производителе / месяце с помощью рабочего листа, что упростит VBA, требуемый для всего процесса..
Транспонирование диапазона также может быть выполнено с использованием формулы листа с помощью функции TRANSPOSE () .
Кстати: я не уверен, что вы хотите сделатьесли два производителя имеют одинаковое выходное значение.В примере VBA в вашем вопросе логика выглядит следующим образом: - если два производителя достигли единой вершины в месяц, выберите первого, с которым столкнулись.Формула, которую я дал выше, должна повторять эту логику.