Как сгруппировать числа по меньше, чем в Excel - PullRequest
0 голосов
/ 22 января 2019

У меня есть большая таблица данных с множеством числовых значений в сводной таблице, я хотел бы сгруппировать значения в столбце «Вес» по: значения меньше

1000
1500
2000
3000
4000
5000
6000
etc...

А затем рядом с ним столбец «Подсчет», подсчитывающий, сколько существует значений, которые меньше 1000, меньше 1500 и так далее. Это очень большая таблица, в которой будут тысячи значений, поэтому их будет намного проще сжать. Спасибо.

Текущая таблица:

Weight

3944      
3300
1000
2993
442
9388
2992
2281
2991

Желаемая таблица:

Weight   Count

<1000      1
<1500      1
<2000      0
<3000      4
<4000      2
<5000      0
<6000      0
<7000      0
<8000      0
<8000      0
<9000      0
<10000     1

1 Ответ

0 голосов
/ 22 января 2019

Интересная проблема, решаемая без добавления вспомогательных столбцов ...

Вот что я бы сделал:

enter image description here

=INDEX(
    FREQUENCY(
        $A$2:$A$10,
        RIGHT($C$2:$C$13,LEN($C$2:$C$13)-1)-1
    ),
    MATCH($C2,$C$2:$C$13,0)
)

Я начну с внутренней функции и буду работать наружу.

RIGHT($C$2:$C$13,LEN($C$2:$C$13)-1)-1

Это берет строки в столбце "Weight (upto)" (например, "<1000"), удаляет символ "<" и минус 1 из результата (999, потому что мы хотим, чтобы "меньше" 1000, не "меньше или равно" 1000). </p>

Затем функция FREQUENCY принимает 2 аргумента. Первый - это наш диапазон фактических весов. Второе - это массив различных значений отсечения для групп, в которые нужно поместить эти веса (это то, что мы только что создали с помощью приведенной выше формулы).

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

Мы могли бы использовать ROW () - 1, но тогда, если вы каждый раз переместите свой стол с вершины листа, он сломается. Мы могли бы добавить вспомогательный столбец (содержащий инкрементные числа) для записи «Индекса веса», однако я хотел бы свести к минимуму количество вспомогательных столбцов, где это возможно, и в этом случае существует довольно простой обход: MATCH

Мы просто используем MATCH, чтобы вернуть индекс текущей группы весов в списке весов:

MATCH(<the current weight group>, <the complete weight group range>, <0 means we are looking for an exact match>)

Надеюсь, это имеет смысл. Все становится сложнее, когда вы попадаете в массивы. Если вам нужны дальнейшие разъяснения, пожалуйста, дайте мне знать.

...