Это можно сделать с помощью формулы, но она довольно длинная, и VBA, вероятно, является лучшим решением. Кроме того, это не будет обрабатывать возможный случай, когда у вас есть три значения & gt; 7. Но я все равно покажу вам метод формулы.
Давайте начнем с более простого случая, когда есть только одна ячейка & gt; 7:
Формула в F1:
=IF(COUNTIF($A$1:D$1,">7")>1,"Double",IF($A1>7,"U",IF($B1>7,"X",IF($C1>7,"Y",IF($D1>7,"Z","")))))
Часть COUNTIF () подсчитывает количество ячеек в диапазоне A1: D1, которые больше 7. Если эта сумма больше 1, IF () возвращает «Double», что является просто заполнителем для большей формулы, которая приходит потом. Если сумма не больше 1, формула использует ваш вложенный оператор IF (), чтобы отобразить код для ячейки & gt; 7.
Для случая, когда две ячейки & gt; 7, вложенный IF () не будет работать. Нам нужно знать, какие столбцы & gt; 7. Если у нас есть эти данные,
Сначала мы создаем массив, в котором перечислены столбцы & gt; 7. Это выражение (A1:D1>7)*COLUMN(A1:D1)
делает это
Первая часть (A1:D1>7)
спрашивает, какие клетки & gt; 7 и оценивает массив {TRUE, FALSE, TRUE, FALSE}. Вторая часть - это номера столбцов A1: D1 или {1,2,3,4}. Умножение этих двух массивов приводит к тому, что логические значения TRUE и FALSE преобразуются в 1 и 0, поэтому результатом является массив {1,0,3,0}, который представляет собой номера столбцов со значением & gt; 7.
Теперь мы можем использовать эти числа для поиска кодов столбцов с помощью INDEX ():
INDEX({"U","X","Y","Z"},LARGE((A1:D1>7)*COLUMN(A1:D1),2))
Здесь LARGE () возвращает второе по величине значение в массиве номеров столбцов & gt; 7 (который равен 1), и INDEX () использует его для возврата первого элемента в массиве букв - U.
Аналогично, это выражение получает коды, соответствующие второму и первому наибольшим номерам столбцов, разделенным запятой:
INDEX({"U","X","Y","Z"},LARGE((A1:D1>7)*COLUMN(A1:D1),2))&","&INDEX({"U","X","Y","Z"},LARGE((A1:D1>7)*COLUMN(A1:D1),1)
Теперь мы подставим все это в первое уравнение выше, заменив «Double». Эта формула в F1 является формулой массива и должна быть введена с Ctrl сдвиг Войти
=IF(COUNTIF($A$1:D$1,">7")>1,INDEX({"U","X","Y","Z"},LARGE((A1:D1>7)*COLUMN(A1:D1),2))&","&INDEX({"U","X","Y","Z"},LARGE((A1:D1>7)*COLUMN(A1:D1),1)),IF($A1>7,"U",IF($B1>7,"X",IF($C1>7,"Y",IF($D1>7,"Z","")))))
Я говорил вам, что эта формула будет «довольно длинной». Надеюсь, это поможет.