Как создать формулу фильтра в виде формулы массива - PullRequest
1 голос
/ 26 июня 2019

У меня есть несколько столбцов, которые зависят от этой формулы.

У меня есть экземпляры, в которых сотрудник может иметь несколько назначений для одного и того же проекта, и я использую формулу для объединения строк и добавления значения, которое вызывает дополнительноестрока в соответствующей строке: enter image description here

Сначала я выполняю = Unique(A3:D), чтобы извлечь список, а затем:

=IF($A3<>"",join(", ",filter(Sheet1!E$3:E,Sheet1!$A$3:$A=$G3)),"")

Как я могу сделать этоArrayFormula?Я попробовал это так, но результат неверный:

=arrayformula(IF($A2:A<>"",join(", ",filter(Sheet1!E$2:E,Sheet1!$A$2:$A=$G2:G)),""))

Вот пример электронной таблицы: https://docs.google.com/spreadsheets/d/1cLXNidk6FSZbUeU0CK3XlMPWdpBMbnKMXC5gzTfMvY0/edit?usp=sharing

1 Ответ

1 голос
/ 27 июня 2019

сделать все за один раз:

=ARRAYFORMULA(SPLIT(REGEXREPLACE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE({
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select Col1,count(Col1) where Col1 is not null group by Col1 pivot Col2", 0),
 "select Col1 offset 1", 0),
 IF(QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "offset 1",0)<>"", 
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, "♦"&E3:E&","}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "limit 0",1), )})
 ,,999^99))), ", ♦", ", "), ",$", ), "♦"))

0


только столбец K :

=QUERY(ARRAYFORMULA(SPLIT(REGEXREPLACE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE({
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select Col1,count(Col1) where Col1 is not null group by Col1 pivot Col2", 0),
 "select Col1 offset 1", 0),
 IF(QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "offset 1",0)<>"", 
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, "♦"&E3:E&","}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "limit 0",1), )})
 ,,999^99))), ", ♦", ", "), ",$", ), "♦")), "select Col5", 0)
...