Как я могу отсортировать столбцы с условным "если" перед сортировкой?
Я хочу отсортировать список галерей по дате сортировки по формуле:
SortByColumns(
AddColumns(
Tabela4;
"CalcDate";
Max(
DateValue(Data)+Qtde_dias_para_contato;
DateValue(Data_cotação)+Qtde_dias_para_contato;
DateValue(data_contato_1)+Qtde_dias_para_contato;
DateValue(data_contato_2)+Qtde_dias_para_contato;
DateValue(data_contato_3)+Qtde_dias_para_contato;
DateValue(data_contato_4)+Qtde_dias_para_contato;
DateValue(data_contato_5)+Qtde_dias_para_contato;
DateValue(data_contato_6)+Qtde_dias_para_contato;
DateValue(data_contato_7)+Qtde_dias_para_contato;
DateValue(data_contato_8)+Qtde_dias_para_contato;
DateValue(data_contato_9)+Qtde_dias_para_contato;
DateValue(data_contato_10)+Qtde_dias_para_contato;
DateValue(data_contato_11)+Qtde_dias_para_contato;
DateValue(data_contato_12)+Qtde_dias_para_contato));
"CalcDate";
Ascending)
Этот код работает, но мне нужно, чтобы это происходило только тогда, когда таблица столбцов имеет определенное значение.
Я попробовал этот код:
SortByColumns(
AddColumns(
Tabela4;
"CalcDate";
If(
Tabela4.finalizado = "";
Max(
DateValue(Data)+Qtde_dias_para_contato;
DateValue(Data_cotação)+Qtde_dias_para_contato;
DateValue(data_contato_1)+Qtde_dias_para_contato;
DateValue(data_contato_2)+Qtde_dias_para_contato;
DateValue(data_contato_3)+Qtde_dias_para_contato;
DateValue(data_contato_4)+Qtde_dias_para_contato;
DateValue(data_contato_5)+Qtde_dias_para_contato;
DateValue(data_contato_6)+Qtde_dias_para_contato;
DateValue(data_contato_7)+Qtde_dias_para_contato;
DateValue(data_contato_8)+Qtde_dias_para_contato;
DateValue(data_contato_9)+Qtde_dias_para_contato;
DateValue(data_contato_10)+Qtde_dias_para_contato;
DateValue(data_contato_11)+Qtde_dias_para_contato;
DateValue(data_contato_12)+Qtde_dias_para_contato)));
"CalcDate";
Ascending)
Но это не работает. Как я могу написать этот код?
1 ответ
Если я правильно понимаю, вы хотите отсортировать по расчетной дате, если Tabela4.finalizado
пустой. Что бы вы хотели, чтобы произошло, если бы оно не было пустым? Если ожидаемый результат предназначен для того, чтобы результат не сортировался, вы можете иметь выражение If вне SortByColumns:
If(
Tabela4.finalizado = "";
SortByColumns(
AddColumns(
Tabela4;
"CalcDate";
Max(
DateValue(Data)+Qtde_dias_para_contato;
DateValue(Data_cotação)+Qtde_dias_para_contato;
DateValue(data_contato_1)+Qtde_dias_para_contato;
DateValue(data_contato_2)+Qtde_dias_para_contato;
DateValue(data_contato_3)+Qtde_dias_para_contato;
DateValue(data_contato_4)+Qtde_dias_para_contato;
DateValue(data_contato_5)+Qtde_dias_para_contato;
DateValue(data_contato_6)+Qtde_dias_para_contato;
DateValue(data_contato_7)+Qtde_dias_para_contato;
DateValue(data_contato_8)+Qtde_dias_para_contato;
DateValue(data_contato_9)+Qtde_dias_para_contato;
DateValue(data_contato_10)+Qtde_dias_para_contato;
DateValue(data_contato_11)+Qtde_dias_para_contato;
DateValue(data_contato_12)+Qtde_dias_para_contato));
"CalcDate";
Ascending);
Tabela4)
Обратите внимание, что с If
условие. Tabela4 является таблицей (то есть содержит несколько записей / строк), поэтому Tabela4.finalizado
это не строка, это таблица строковых значений, поэтому приведенное выше выражение не будет работать.
Если вы хотите отсортировать по вычисленной дате для строк, которые имеют finalizado = "", и не показывать другие строки, то вы можете отфильтровать таблицу перед ее сортировкой:
SortByColumns(
AddColumns(
Filter(Tabela4; finalizado = "");
"CalcDate";
Max(
DateValue(Data)+Qtde_dias_para_contato;
DateValue(Data_cotação)+Qtde_dias_para_contato;
DateValue(data_contato_1)+Qtde_dias_para_contato;
DateValue(data_contato_2)+Qtde_dias_para_contato;
DateValue(data_contato_3)+Qtde_dias_para_contato;
DateValue(data_contato_4)+Qtde_dias_para_contato;
DateValue(data_contato_5)+Qtde_dias_para_contato;
DateValue(data_contato_6)+Qtde_dias_para_contato;
DateValue(data_contato_7)+Qtde_dias_para_contato;
DateValue(data_contato_8)+Qtde_dias_para_contato;
DateValue(data_contato_9)+Qtde_dias_para_contato;
DateValue(data_contato_10)+Qtde_dias_para_contato;
DateValue(data_contato_11)+Qtde_dias_para_contato;
DateValue(data_contato_12)+Qtde_dias_para_contato));
"CalcDate";
Ascending)
Если вам нужно что-то еще, уточните свой вопрос, и мы сможем вам помочь.