QUERY, чтобы объединить имена двух регионов и суммировать количество их вхождений - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть массив с государствами / регионами в Великобритании.Некоторые регионы встречаются в этом списке более одного раза, поэтому я выполнил COUNTIF, чтобы определить, сколько раз каждый из них встречается.

Теперь мне нужно выполнить QUERY, чтобы получить список 5 лучших регионов.

Как правило, в большинстве случаев речь идет о районе Лондона.

Проблема в том, что в регионах есть два государства, которые относятся к району Большого Лондона - Лондон и Большой Лондон.

Эти два мне нужно объединить и суммировать их значения.Должен быть только один регион - Большой Лондон, и его значение должно содержать сумму Лондона и Большого Лондона.

У меня есть набор данных:

+----------------+-------+
| State/Province | count |
+----------------+-------+
| Hampshire      | 1     |
+----------------+-------+
| Kent           | 2     |
+----------------+-------+
| West Lothian   | 3     |
+----------------+-------+
| London         | 4     |
+----------------+-------+
| Greater London | 5     |
+----------------+-------+
| Cheshire       | 6     |
+----------------+-------+

Я управлялчтобы собрать это QUERY до сих пор:

=QUERY(A1:B,"select A, max(B) group by A order by max(B) desc limit 5 label max(B) 'Number of occurrences'",1)

Это дает мне такой вывод:

+----------------+-----------------------+
| State/Province | Number of occurrences |
+----------------+-----------------------+
| Cheshire       | 6                     |
+----------------+-----------------------+
| Greater London | 5                     |
+----------------+-----------------------+
| London         | 4                     |
+----------------+-----------------------+
| West Lothian   | 3                     |
+----------------+-----------------------+
| Kent           | 2                     |
+----------------+-----------------------+

Что мне нужно, так это записи Большого Лондона и Лондонабыть объединенным под названием Greater London и суммировать их количество вхождений, обеспечивая такой результат:

+----------------+-----------------------+
| State/Province | Number of occurrences |
+----------------+-----------------------+
| Greater London | 9                     |
+----------------+-----------------------+
| Cheshire       | 6                     |
+----------------+-----------------------+
| West Lothian   | 3                     |
+----------------+-----------------------+
| Kent           | 2                     |
+----------------+-----------------------+
| Hampshire      | 1                     |
+----------------+-----------------------+

Извинения за то, что не поделились листом, но у меня есть ограничения безопасности, которыене позволяя мне поделиться какой-либо ссылкой на лист за пределами фирмы.

Ответы [ 3 ]

0 голосов
/ 06 марта 2019
=QUERY(ARRAYFORMULA(SUBSTITUTE(
 IF((A1:A="London")+(A1:A="London2")+(A1:A="London3"),
 "♥",A1:A),"♥","Greater London")),
 "select Col1, count(Col1) 
  where Col1 is not null and not Col1 = '#N/A'
  group by Col1 
  order by count(Col1) desc
  limit 5
  label count(Col1) 'Number of occurrences'", 1)

0

0 голосов
/ 07 марта 2019
=QUERY(ARRAYFORMULA(SUBSTITUTE(
 IF((QUERY(A1:B,"where B=1")="London")+
    (QUERY(A1:B,"where B=1")="London2")+
    (QUERY(A1:B,"where B=1")="London3"),
 "♥",QUERY(A1:B,"where B=1")),"♥","Greater London")),
 "select Col1, count(Col1) 
  where Col1 is not NULL and not Col1 = '#N/A'
  group by Col1 
  order by count(Col1) desc
  limit 5
  label count(Col1) 'Number of occurrences'", 1)

0

0 голосов
/ 24 февраля 2019
=QUERY(QUERY(ARRAYFORMULA(
 {SUBSTITUTE(IF(A1:A="London","♥",A1:A),"♥","Greater London"),B1:B}),
 "select Col1, sum(Col2) 
  where Col1 is not null 
  group by Col1"),
 "select Col1, max(Col2) 
  group by Col1 
  order by max(Col2) desc 
  limit 5 
  label max(Col2)'Number of occurrences'",1)

0

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