У меня есть ряд из 6 буквенно-цифровых значений, как на картинке. Мне нужна формула, которая определит три самых высоких числовых значения в каждой строке, а затем отобразит буквы, связанные с этими значениями, в правильном порядке (по убыванию). Например, строка 1 приводит к ответу RES, так как R является самым высоким в строке, за которым следует E, за которым следует S. При наличии совпадения (как показано выше), первое, которое появляется, получает предпочтение. Я основной пользователь Excel, и это поставило меня в тупик. Я могу сделать элементы решения, но мне не нравится, когда я пытаюсь объединить. Благодарен за вашу помощь.

3 ответа3

0

Предполагая, что ваши данные «R35» находится в A1 .

делать

H1  --->  =VALUE(RIGHT(A1,LEN(A1)-1))

и перетащите до L1 , затем

N1  --->  =IF(COUNTIF($H1:$L1,H1)=1,H1,H1+0.5)
O1  --->  =IF(COUNTIF($H1:$L1,I1)=1,I1,I1+0.4)
P1  --->  =IF(COUNTIF($H1:$L1,J1)=1,J1,J1+0.3)
Q1  --->  =IF(COUNTIF($H1:$L1,K1)=1,K1,K1+0.2)
R1  --->  =IF(COUNTIF($H1:$L1,L1)=1,L1,L1+0.1)

затем

T1  --->  =RANK(N1,$N1:$R1,0)

и перетащите до X1 , затем

Z1  --->  =INDEX($A1:$F1,MATCH(1,$T1:$X1,0))
AA1  --->  =INDEX($A1:$F1,MATCH(2,$T1:$X1,0))
AB1  --->  =INDEX($A1:$F1,MATCH(3,$T1:$X1,0))

затем

AD1  --->  =LEFT(Z1)&LEFT(AA1)&LEFT(AB1)

наконец .. выберите H1:AD1 и тяните до AD6 .

AD колонка должна быть то, что вы ищете. Вы можете скрыть столбцы или сделать это на другом листе, чтобы он выглядел проще.

Пожалуйста, поделитесь, если вы застряли (в понимании формулы или делать это). (:

Надеюсь, поможет.

p/s: +0,5, +0,4 .. +0.1 используется для удовлетворения этого требования

первый появившийся получает предпочтение

0

Мне нужно 6 вспомогательных клеток без использования VBS. Итак, если ваши данные находятся в диапазоне от A1 до F1:

установите G1 в

=INT(RIGHT(A1,2)&"006")

установите H1 в

=INT(RIGHT(B1,2)&"005")

установите I1 в

=INT(RIGHT(C1,2)&"004")

установите J1 в

=INT(RIGHT(D1,2)&"003")

установите K1 в

=INT(RIGHT(E1,2)&"002")

установите L1 в

=INT(RIGHT(F1,2)&"001")

и М1 для

=LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,1),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,2),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,3),G1:L1,0))),1)

Вы должны быть в состоянии скопировать и вставить эти 7 формул по строкам. Обратите внимание, что повторяющиеся значения обрабатываются слева направо.

0

Как это устроено:

Мои исходные данные находятся в диапазоне A2:F3 .

  • Запишите эту формулу в ячейку B6 чтобы разделить алфавиты из исходных данных и заполнить справа.

      =LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
    
  • Чтобы разделить числа из исходных данных, введите эту формулу в ячейку B7 , заполните справа, а затем вниз.

     =VALUE(RIGHT(A2,LEN(A2)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1))
    
  • В ячейке B10 напишите эту формулу массива, заполните вправо, затем нажмите F2 и нажмите Ctrl+Shift+Enter и заполните вниз.

    {=LARGE(B7:G7,{1,2,3})}
    
  • Запишите эту формулу в ячейку B13 заполните ее вправо, затем вниз.

       =IFERROR(INDEX(B$6:$G$6,MATCH(B10,B7:$G7,0)),"")
    
  • Наконец, в ячейке B16 написать эту формулу и заполнить вниз.

=CONCATENATE(B13,C13,D13)

При необходимости настройте параметры ячейки в формуле.

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