Google Sheets - Группировка по If / Then Buckets, расчетные значения - PullRequest
0 голосов
/ 03 октября 2018

В Google Sheets я пытаюсь написать запрос (не отдельную сводную таблицу или скрипт), который группирует по вычисленному значению на основе оператора if / then.

Вотмои примерные данные:

Name    Days
Bob     0
Ed      1
Frank   2
Joey    4
Deluth  7
Henry   12

Группировка по столбцу B довольно прямолинейна:

=QUERY(A1:B7,"SELECT B, COUNT(B) GROUP BY B")

, которая выдает:

Days    count
0       1
1       1
2       1
4       1
7       1
12      1

Но что я?я пытаюсь сделать, это сгруппировать дни в конкретные корзины.Сегментами и желаемым выводом будет этот желаемый вывод :

Days    count
0       1
1       1
2-5     2
6-9     1
10+     1

Так что это почти «если 0, то« 0 », если 1, то« 1 », если> 1 И <= 5, затем «2-5» и т. Д. С Group By в конце? Как это будет записано в формате QUERY? </p>

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Если разрешен вспомогательный столбец, то (с небольшим обманом для упорядочения) вы можете применить существующую формулу, изменив только A1 на A2:

Вставьте новый ColumB и в B2 и скопируйтевниз к костюму:

=lookup(C2,{0,1,2,6,9},{"00","01","02-5","06-9","10+"})
0 голосов
/ 04 октября 2018

Если бы у вас был верхний предел каждого диапазона в (скажем) G2: G6, вы могли бы использовать Частоту, чтобы получить результат:

=frequency(B2:B,G2:G)

Затем вы могли бы объединить это с ячейками бина, чтобы получитьдва столбца вместе:

=ArrayFormula({D2:D6,frequency(B2:B,G2:G)})

Извлечение верхнего предела из ячеек бина немного неловко, но вы можете сложить все это вместе без вспомогательного столбца:

=ArrayFormula({D2:D6,frequency(B2:B,--(right(D2:D5,len(D2:D5)-iferror(find("-",D2:D5),0))))})

enter image description here

Обратите внимание, что вам не нужно определять диапазон '10 + ', кроме как для целей отображения. Частота автоматически группирует все оставшиеся значения (выше 9) в отдельную ячейку.

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

...