2014-10-14 1 views
1

Я пытаюсь найти третье наиболее частое значение на листе Google. Я видел, как найти второй и первый, но я не могу найти, как найти третий и выше. Мне нужно знать, как рассчитать третье, четвертое, пятое, шестое, седьмое и восьмое места. Я работаю над системой лидеров для школы, в которой я работаю. Я знаю, что это, как найти второй наиболее часто:Как найти третье наиболее частое значение в листах google

=ArrayFormula(MODE(IF((F1:F85=MODE(F1:F85)),"",F1:F85))) 

и это, как найти первый:

=mode(F1:F65) 

Мне нужно найти все те, которые приходят после этого, хотя.

ответ

1

Мне нужно найти все те, которые приходят после этого.

Более масштабируемое решение, которое позволяет избежать вложенных IFs бы что-то вдоль линий:

=ArrayFormula(QUERY({F1:F85,LEN(F1:F85)},"select Col1, count(Col2) where Col2 > 0 group by Col1 order by count(Col2) desc",0))

Это создает таблицу каждого числа и связанных с ними частоты, отсортированных из наиболее частых наименее. Вы можете получить конкретное значение из этой таблицы, используя INDEX:

=INDEX(QUERY({F1:F85,LEN(F1:F85)},"select Col1, count(Col2) where Col2 > 0 group by Col1 order by count(Col2) desc",0),n+1,1)

где п положение вам требуется (1 = наиболее часто, 2 = второй наиболее часто, и т.д.).

Ваш начальныйThis question имел в виду двумерный диапазон, который будет немного более сложным, но все же выполнимым.

+0

Есть ли способ сделать стол идти горизонтально? Потому что это упростит, так как у меня есть таблица, похожая на нее, а вместо нее - запросы. Пожалуйста, помогите мне, если есть способ сделать стол горизонтальным. –

+0

Чтобы изменить ориентацию, вы можете использовать функцию «TRANSPOSE». – AdamL

+0

@AdamL Вы могли бы объяснить первый параметр 'QUERY()'; что означает '{F1: F85, LEN (F1: F85)}' делать в диапазоне «F1: F85»? Любая ссылка на это также будет замечательной! – Curious

0

Учитывая B1: B99 в нашем ассортименте, если A1 является наиболее распространенным, A2 является вторым наиболее распространенным, и так далее:

A1 = ArrayFormula(MODE(B1:B99)) 
A2 = ArrayFormula(MODE(IF((B1:B99=A1),"",B1:B99))) 
A3 = ArrayFormula(MODE(IF((B1:B99=A1),"",(IF((B1:B99=A2),"",B1:B99))))) 
A4 = ArrayFormula(MODE(IF((B1:B99=A1),"",(IF((B1:B99=A2),"",(IF((B1:B99=A3),"",B1:B99))))))) 

Мне интересно, если у кого есть лучшее решение, хотя.

+0

Большое вам спасибо. Мне потребовалось время, чтобы получить его, но теперь я получаю решение! Спасибо –

0

Я уверен, что есть более элегантное решение, чем другие ответы.

Попробуйте использовать этот Google Visualization API Query:

=query(A:B,"select A, count(B) group by A order by count(B) desc label count(B) 'Count' ",1) 

Это должно дать вам 2 колонки - первые дают различные значения в столбце А, второй дает число вхождений для каждого значения (в порядке убывания) ,

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