如何在排序前使用条件'if'按列排序?



我想使用以下公式按日期对列表库排序:

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)

但它不起作用。如何编写此代码?

如果我

理解正确,如果Tabela4.finalizado为空,您希望按计算日期排序。如果它不为空,您希望发生什么?如果预期结果是不对结果进行排序,则可以在 SortByColumns 之外使用 If 表达式:

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)

如果您需要其他东西,请澄清您的问题,我们将能够为您提供帮助。

相关内容

  • 没有找到相关文章

最新更新