Подсчитайте, сколько совпадений в одной строке в 3 столбцах

#excel #excel-formula #excel-365

#excel #excel-формула #excel-365

Вопрос:

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

У меня есть столбец с именами людей, и для каждого из этих людей у меня есть 3 столбца данных из 3 разных источников — мне нужно определить, сколько раз данные в этих 3 столбцах совпадают для каждого человека. После тщательного поиска в Google я смог найти решения, в которых результат суммируется в ячейке, полученной из диапазона COUNTIF, однако мне нужны результаты, суммированные в одной строке для каждого человека.

Например: «Дейв» находится в ячейке A2, его результаты были следующими: столбец B2 = СБОЙ, C2 = ПРОХОД и D2 = ПРОХОД — итак, в этом случае у нас есть 2 совпадения, поскольку было 2 прохода. «Sue» находится в ячейке A3, ее результаты были следующими: столбец B3 = СБОЙ, C3 = СБОЙ и D3 = СБОЙ — таким образом, в этом случае у нас есть 3 совпадения, поскольку было 3 сбоя. «Колин» находится в ячейке A4, его результаты были следующими: столбец B4 = TBA, C4 = FAIL и D4 = PASS — так что в этом случае у нас 0 совпадений, поскольку ни один из результатов не совпадает.

В идеале я хотел бы, чтобы количество совпадений было указано в столбце E для каждого отдельного пользователя, поэтому результаты сопоставления Дейва будут в ячейке E2, Сью — в E3, а Дейва — в E4.

Заранее большое спасибо за вашу помощь.

С наилучшими пожеланиями,

TE

Комментарии:

1. Что ты считаешь? Неверные значения или пропущенные значения? Почему Дэйв получил 2 (2 паса), а Сью — 3 (0 пасов)?

2. По сути, я проверяю соответствие результатов, а не сами результаты.

Ответ №1:

Вы могли бы попробовать:

введите описание изображения здесь

Формула в E1 :

 =INDEX({0,2,3},MAX(COUNTIF(B1:D1,B1:D1)))
 

Немного объяснений для тех, кому интересно:

  • COUNTIF(B1:D1,B1:D1) — Приведет к массиву из трех значений (по 1 на столбец), в зависимости от того, как часто эти значения появляются в трех ячейках.
  • MAX() — Получить максимальное значение из предыдущего массива.
  • INDEX({0,2,3}) — Поскольку результат MAX() может быть только 1-3, мы можем передать это как параметр строки в INDEX() функцию. Затем это приведет к 0, 2 или 3.

Немного менее подробным и, возможно, более явным было бы:

 =MIN(((B1=C1) (C1=D1) (B1=D1))*2,3)
 

С помощью этой последней формулы мы используем тот факт, что TRUE и FALSE эквивалентны 1 и 0 , и поэтому мы можем добавить несколько логических значений. С помощью некоторой математики мы можем получить желаемый результат.

Комментарии:

1. Боже, что это за колдовство? Не могли бы вы объяснить логику, стоящую за этим? Я протестировал, и это работает отлично, но я пытаюсь понять, как (и почему, лол) вы это разработали

2. @FoxfireAndBurnsAndBurns, я отредактировал ответ, включая некоторые пояснения и другую возможную формулу. Надеюсь, это поможет.

3. Братан, ты крут. Спасибо за добавление объяснения. Это проясняет мысли. Спасибо, что поделились

Ответ №2:

Вы можете использовать IF() MAX() и COUNTIF вместе взятые.
В E2:

 =IF(MAX(COUNTIF(B2:D2,B2),COUNTIF(B2:D2,C2),COUNTIF(B2:D2,D2))=1,0,MAX(COUNTIF(B2:D2,B2),COUNTIF(B2:D2,C2),COUNTIF(B2:D2,D2)))
 

Таким образом, он выполняет три отдельных подсчета, чтобы увидеть, сколько «дублируется» из каждой ячейки.
Возьмите максимальное из них и сравните с 1, если это верно, тогда верните 0, иначе верните максимальное значение.

введите описание изображения здесь

Ответ №3:

Будет ли что-то подобное работать в столбце E?

 =if(countif(B2:D2,B2)=3,3,if(countif(B2:D2,B2)=2,2,if(countif(B2:D2,C2)=2,2,0)))
 

Дайте мне знать, если это сработает для вас.

введите описание изображения здесь

Комментарии:

1. Это не сработало бы со Сью. Он вернул бы 0, а ОП сказал, что совпадения сью равны 3

2. В моем тестировании это действительно возвращает 3 для Sue. Смотрите изображение, добавленное к ответу выше.