Как подсчитать итоговые и уникальные (на основе 2 отдельных столбцов), используя ArrayFormula в Google Sheets? - PullRequest
0 голосов
/ 30 января 2020

У меня есть следующая электронная таблица:

https://docs.google.com/spreadsheets/d/1pBL21fyuxYNb5YfERsFl7Y-CTdQEH7SgJQfuOdQ0V6c/edit?usp=sharing

Первые 2 столбца подсчитывают общее количество действий и сортируют их. То, что я хочу сделать, это также генерировать следующие 2 столбца, используя ту же формулу. 3-й столбец предназначен для подсчета уникального количества действий на основе имени пользователя, а 4-й столбец предназначен для подсчета уникального количества действий на основе имени пользователя. Я могу сделать формулу, которая подсчитывает уникальность отдельно, но в идеале я хотел бы, чтобы она работала вместе с первыми 2 столбцами.

Любая помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Попробуйте следующую формулу в ячейке A10 или любой свободной ячейке, кроме столбцов F, G и H:

=arrayformula({query({F3:F,F3:F},"select Col1,count(Col2) where Col1<>'' group by Col1 label count(Col2) 'Total'",1),iferror(vlookup(query(query({F3:F,F3:F},"select Col1,count(Col2) where Col1<>'' group by Col1 label count(Col2) 'Total'",1),"select Col1"),query(query({F3:G,G3:G},"select Col1,Col2,count(Col3) where Col1<>'' group by Col1,Col2 label count(Col3) 'Total'",1),"select Col1,count(Col2) group by Col1 label count(Col2) 'Unique (for id)'",1),2,0)),iferror(vlookup(query(query({F3:F,F3:F},"select Col1,count(Col2) where Col1<>'' group by Col1 label count(Col2) 'Total'",1),"select Col1"),query(query({F3:F,H3:H,H3:H},"select Col1,Col2,count(Col3) where Col1<>'' group by Col1,Col2 label count(Col3) 'Total'",1),"select Col1,count(Col2) group by Col1 label count(Col2) 'Unique (for name)'",1),2,0))})

Чтобы отсортировать результат (по столбцу 2), попробуйте:

=arrayformula({query({F3:F,F3:F},"select Col1,count(Col2) where Col1<>'' group by Col1 order by count(Col2) desc label count(Col2) 'Total'",1),iferror(vlookup(query(query({F3:F,F3:F},"select Col1,count(Col2) where Col1<>'' group by Col1 order by count(Col2) desc label count(Col2) 'Total'",1),"select Col1"),query(query({F3:G,G3:G},"select Col1,Col2,count(Col3) where Col1<>'' group by Col1,Col2 label count(Col3) 'Total'",1),"select Col1,count(Col2) group by Col1 label count(Col2) 'Unique (for id)'",1),2,0)),iferror(vlookup(query(query({F3:F,F3:F},"select Col1,count(Col2) where Col1<>'' group by Col1 order by count(Col2) desc label count(Col2) 'Total'",1),"select Col1"),query(query({F3:F,H3:H,H3:H},"select Col1,Col2,count(Col3) where Col1<>'' group by Col1,Col2 label count(Col3) 'Total'",1),"select Col1,count(Col2) group by Col1 label count(Col2) 'Unique (for name)'",1),2,0))})
1 голос
/ 30 января 2020

использование:

=ARRAYFORMULA(QUERY({F3:H, 
 IF((G3:G<>"")*(COUNTIFS(F3:F&G3:G, F3:F&G3:G, ROW(G3:G), "<="&ROW(G3:G))=1), F3:F&G3:G, ),
 IF((H3:H<>"")*(COUNTIFS(F3:F&H3:H, F3:F&H3:H, ROW(H3:H), "<="&ROW(H3:H))=1), F3:F&H3:H, )},
 "select Col1,count(Col1),count(Col4),count(Col5) 
  where Col1 !='' 
  group by Col1 
  order by count(Col1) desc 
  label count(Col1)'Total',
        count(Col4)'Unique (for id)',
        count(Col5)'Unique (for name)'", 1))

enter image description here

...