У меня есть функция, которая объединяет столбцы из нескольких листов, объединяет комментарии и извлекает максимальное значение из листа «статусы».
Мне нужна возможность щелкнуть заголовки и отсортировать столбец A, а затем перейти и отсортировать другой столбец и многое другое, если мне нужно. В настоящее время у меня есть возможность сортировать только по одному столбцу:
=sort(
filter(
hstack(
choosecols('Raw Data'!A3:Z,5,21,4,3,9),
iferror(map('Raw Data'!D3:D, lambda(Σ, if (Σ = "",,textjoin(char(10),1,sort(filter({TEXT(Comments!C:C,"m/d/yy : ")&Comments!B:B},Comments!A:A=Σ),filter(Comments!C:C,Comments!A:A=Σ),))))),""),
xlookup('Raw Data'!D3:D,Statuses!A:A,Statuses!B:B,,,-1), choosecols('Raw Data'!A3:Z,6,23,7,11,1,2)
),
'Raw Data'!A3:A <> ""
),
column(E1), false
)
Есть ли способ добавить все столбцы в column(E1), false
вроде columns(1:13),false
?
Ссылка на лист здесь, а формула — в ячейке A2.
Опять же, мне нужна возможность сортировать и фильтровать любое количество столбцов в нужной последовательности, как если бы я это делал с обычным рабочим листом. Возможно ли это вообще?
Я не нашел способа добавить это автоматически, но предлагаю вам обходной путь, который сортирует диапазон по каждому столбцу с помощью REDUCE и убывающей последовательности номеров столбцов:
=REDUCE(
filter(
hstack(
choosecols('Raw Data'!A3:Z,5,21,4,3,9),
Iferror(map('Raw Data'!D3:D, lambda(Σ, if (Σ = "",,textjoin(CARACTER(10),1,sort(filter({TEXT(Comments!C:C,"m/d/yy : ")&Comments!B:B},Comments!A:A=Σ),filter(Comments!C:C,Comments!A:A=Σ),))))),""),
XLOOKUP('Raw Data'!D3:D,Statuses!A:A,Statuses!B:B,,,-1), choosecols('Raw Data'!A3:Z,6,23,7,11,1,2)
),
'Raw Data'!A3:A <> ""
),SEQUENCE(13,1,13,-1),
LAMBDA(a,v,SORT(a,v,FALSE)))
ОБНОВЛЕНИЕ ДЛЯ ДОБАВЛЕНИЯ ЗАГОЛОВКОВ
=VSTACK(
HSTACK(choosecols('Raw Data'!A1:Z1,5,21,4,3,9),"Comments","Status",choosecols('Raw Data'!A1:Z1,6,23,7,11,1,2)),
REDUCE(
filter(
hstack(
choosecols('Raw Data'!A3:Z,5,21,4,3,9),
IFERROR(map('Raw Data'!D3:D, lambda(Σ, IF(Σ = "",,textjoin(CHAR(10),1,sort(filter({TEXT(Comments!C:C,"m/d/yy : ")&Comments!B:B},Comments!A:A=Σ),filter(Comments!C:C,Comments!A:A=Σ),))))),""),
XLOOKUP('Raw Data'!D3:D,Statuses!A:A,Statuses!B:B,,,-1), choosecols('Raw Data'!A3:Z,6,23,7,11,1,2)
),
'Raw Data'!A3:A <> ""
),SEQUENCE(13,1,13,-1),
LAMBDA(a,v,SORT(a,v,FALSE))))
Я предлагал сортировку внутри формулы, вы тоже пытаетесь сортировать с помощью фильтров в заголовках?
правильно, возможно ли вообще сортировать заголовки, потому что формула перемещается, когда вы это делаете?
Я добавил опцию, которая объединяет заголовки имеющихся столбцов и остальных формул. Учтите, что сортировать по зеленым значкам в каждом столбце вы не сможете, но сможете использовать их для фильтрации. Вам следует удалить все заголовки и поместить формулу в A1, как я показываю на рисунке и на вашем листе.
Эй, спасибо! Итак, если вы вернетесь на лист, вы увидите, что я попытался отсортировать столбец А, и он смещает строки дальше по листу?