У меня есть некоторые данные Excel, которые выглядят примерно так:

John / Tim      Upheld
Sam             Upheld
Tim / Dave      Upheld
Sam / John      Not Upheld
Tim             Not Upheld
Dave / Tim      Upheld

Как я могу сделать следующее в Excel, если я могу вообще?

  1. Подсчитайте каждое уникальное имя, разделенное косыми чертами в столбце A, и оцените их по порядку совпадений (т. Е. Тим [4], Дейв [2], Сэм [2], Джон [1]).
  2. Посчитайте, сколько раз каждое уникальное имя появляется с «Поддерживается» в столбце B (т. Е. Тим [3], Дейв [2], Джон [1], Сэм [1]).

Может быть, это лучше сделать с помощью скрипта Python или аналогичного?

2 ответа2

0

Размещение ваших данных в диапазоне A1:B6, а имена - это диапазон C1:C4 формулы массива (введите с помощью Ctrl + Shift + Enter, а не просто kbd> Enter) в D1, а затем скопируйте в столбец

= СУММ (ЕСЛИ (ЕЧИСЛО (FIND (С1, $ A $ 1:$ A $ 6)), 1,0))

дает правильные ответы на первую часть.

Вторая часть становится более сложной ...

Вместо использования массива formlulae, вы можете просто использовать дополнительные столбцы, по два на каждое имя.

Итак, две колонки для Джона начнутся:

= IF(ISNUMBER(FIND("Джон", $ A1)), 1,0)

а также

= ЕСЛИ (И (ISNUMBER (FIND ("Джон", $ A1)), B1 = "отстаиваемых"), 1,0)

Тогда ваши ответы - это просто итоги столбцов (которые для аккуратности могут быть скрыты, а итоги используются в хорошей итоговой таблице).

0

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

Я бы подумал, что лучше сделать это в сценарии некоторого описания, хотя VBA, вероятно, будет логичным выбором.

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