Как сделать выбор с переменной с помощью Google Sheets - PullRequest
2 голосов
/ 08 октября 2019

У меня есть лист Google с несколькими столбцами, где записываются запросы поддержки от клиентов.

     A                B                      C
-+---------------+------------------------+-------------
1| Date-1        | John                   | Ticket-101 
2| Date-1        | Anita                  | Ticket-102
3| Date-2        | John                   | Ticket-103
4| Date-3        | Dani                   | Ticket-104
5| Date-3        | Billy                  | Ticket-105

Я хочу создать два новых столбца со статистическими данными о клиентах. В этих новых столбцах я хочу указать имя клиента и количество открытых заявок в службу поддержки.

Конечный результат должен быть следующим:

     A                B             C            D          E
-+---------------+------------+-------------+-----------+---------------
1| Date-1        | John       | Ticket-101  | John      |   2    |
2| Date-1        | Anita      | Ticket-102  | Anita     |   1    |
3| Date-2        | John       | Ticket-103  | Dani      |   1    |
4| Date-3        | Dani       | Ticket-104  | Billy     |   1    |
5| Date-3        | Billy      | Ticket-105  | 

Я создал столбец D таким образом:

=UNIQUE(QUERY(B1:B))

Для подсчета того, сколько раз клиент связывается с нами, я использую:

=COUNTA(IFERROR(QUERY(B1:B, "select B where B='John'", 0)))

Конечно, это очень глупое решение, потому что для каждого нового клиентаЯ должен создать новую формулу с

.... где B = 'Имя клиента' ".....

Мне интересно, возможно ли этосоздать формулу таким образом, чтобы имя клиента автоматически заполнялось? Я представляю что-то вроде этого:

=ARRAYFORMULA(COUNTA(IFERROR(QUERY(B1:B, "select B where B='value-of-D'", 0))))

Ответы [ 2 ]

1 голос
/ 08 октября 2019
=QUERY(B:C, 
 "select B,count(C) 
  where B!='' 
  group by B 
  label count(C)''", 0)

0

Также вы можете заказать его как:

=QUERY(B:C, 
 "select B,count(C) 
  where B!='' 
  group by B 
  order by count(C) desc
  label count(C)''", 0)

enter image description here

0 голосов
/ 08 октября 2019

Попробуйте

=query(B:C, "Select B, count(C) where B<>'' group by B label B 'Name', count(C) 'Count'", 1)

и посмотрите, работает ли это?

...