Наиболее частое наблюдение в ряду с двумя ранжированными тайбрейками - PullRequest
0 голосов
/ 16 мая 2018

У меня есть набор данных в Excel, где я хотел бы найти формулу для поиска наиболее частых наблюдений (от столбца B до столбца F) для каждой строки. Однако, если есть какие-либо связи, есть два прерывателя связи, ранжированные в следующем порядке: Первый прерыватель связи состоит в том, что, если число 4 связано как наиболее частые наблюдения в любом ряду, результатом в этом ряду должно быть 4 Второй прерыватель связи заключается в том, что если есть связь (где 4 не привязана для наиболее частого наблюдения), она должна показать значение в столбце G.

На рисунке ниже я сделал грубый набросок (слева) данных, которые у меня есть сейчас, и (справа) результата, который я хочу.

Изображение набора данных:

Какую формулу мне нужно написать, чтобы получить желаемый результат?

Заранее спасибо,

Anders

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

@ xidgel: Это отличный ответ, но вам также придется учитывать случай, когда все наблюдения совпадают.

=IF(ISNA(MODE.MULT(MyData)),
    IF(ISNA(MATCH(4,MyData,0)),Fruit,4), 
    IF(ROWS(MODE.MULT(MyData))<2, 
    IF(AND(COUNTIF(MyData,"<>"&MODE.MULT(MyData))=0,MODE.MULT(MyData)<>4),Fruit,MODE.MULT(MyData)),
    IF(ISNA(MATCH(4,MODE.MULT(MyData),0)),Fruit,4)))

введено как формула массива CTRL-SHIFT-ENTER.

0 голосов
/ 17 мая 2018

Посмотрите, работает ли это для вас:

=IF(ISNA(MODE.MULT(MyData)),IF(ISNA(MATCH(4,MyData,0)),Fruit,4),IF(ISERR(INDEX(MODE.MULT(MyData),2)),MODE.MULT(MyData),IF(ISNA(MATCH(4,MODE.MULT(MyData),0)),Fruit,4)))

введено как формула массива CTRL-SHIFT-ENTER.

Здесь MyData является заполнителем для строки данных. В вашем примере MyData будет одной строкой из столбцов B-F; для случая A MyData = {1,1,1,1,2}. Fruit является заполнителем соответствующего значения из столбца G. Вы можете заменить MyData на B2:F2 и Fruit на G2, затем скопировать и вставить в другие места.

Вот как это работает. В формуле используется функция MULT.MODE Excel, которая возвращает столько значений режима, сколько имеется в данных.

MULT.MODE возвращает N/A, если в MyData нет повторяющихся элементов. Это ситуация для ваших дел D и E. Это означает, что есть N-way tie, поэтому мы должны применить правила разрыва связей. Это делается с помощью функции MATCH, чтобы узнать, найдено ли 4 в MyData; если это так, верните 4, в противном случае верните Fruit.

Если MyData имеет повторяющиеся элементы, MULT.MODE возвращает массив, содержащий режим или найденные режимы. Если связь отсутствует, MULT.MODE возвращает один элемент, иначе массив будет содержать как минимум два элемента. Чтобы проверить связи, мы пытаемся получить доступ ко 2-му элементу массива с использованием INDEX(MULT.MODE(MyData),2). Это приведет к ошибке, если нет связи.

Если связи нет, найдите полученную ошибку с помощью ISERR. Без связи мы возвращаем результат MULT.MODE.

При наличии связи ошибка не возникает. В этом случае мы используем MATCH для поиска 4 в результатах MULT.MODE. Если 4 найдено, мы возвращаем 4; если не вернуть Fruit.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...