首页 > 解决方案 > Power Query 问题中的 IF 函数

问题描述

我在 Power Query 中有这张表:

在此处输入图像描述

我想做一个 if 函数:

= if[quantitée facturée]=1 = [quantité retournée] = 1 then 1 else 0

但我不明白为什么函数的每个结果都是“0”,即使quantité facturée=/quantité retournée

我也试过:

= if [quantitée facturée]=1 and [quantité retournée]=1 then 1 else 0

= if [quantitée facturée]=1 or [quantité retournée]=1 then 1 else 0

= if [quantitée facturée] = [quantité retournée] then 1 else 0

= if [quantitée facturée] <> [quantité retournée] then 1 else 0

我寻求每次客户退回已交付的订单并将其视为中性交付

这是我使用上述功能得到的结果:

在此处输入图像描述

有任何想法吗?

编辑:M代码:

let
    Source = Excel.Workbook()
    EXPBLLT1_Sheet = Source{[Item="EXPBLLT1",Kind="Sheet"]}[Data],
    #"En-têtes promus" = Table.PromoteHeaders(EXPBLLT1_Sheet, [PromoteAllScalars=true]),
    #"Type modifié" = Table.TransformColumnTypes(#"En-têtes promus",{{"CODART", type text}, {"LIBELL", type text}, {"QLIVRE", Int64.Type}, {"NUMSER", type text}, {"SORPCE_A", type text}, {"CODCLI", type text}, {"RAISOC", type text}, {"NUMDOC", type text}, {"CODOBJ", type text}, {"CHRONO", Int64.Type}, {"ENTPCE", type text}, {"ENTMVT", type text}, {"SORPCE_B", type text}, {"SORMVT", type text}, {"DATEMV", type date}, {"SORPMR", type text}, {"BL", type text}, {"NUM_CDE", type text}, {"CHIRURGIEN", type text}, {"CODREP", type text}, {"PATIENT", type text}, {"DATE_INTER", type date}, {"ENTDAT", type date}, {"SORDAT", type date}, {"EMPDES", type text}, {"LIBFOU", type text}, {"BL 2", Int64.Type}, {"Compteur BL", Int64.Type}, {"année.mois inter", type date}, {"Mouvement", type text}}),
    #"Personnalisée ajoutée" = Table.AddColumn(#"Type modifié", "Quantité facturée", each [SORMVT]="700"),
    #"Type modifié1" = Table.TransformColumnTypes(#"Personnalisée ajoutée",{{"Quantité facturée", Int64.Type}}),
    #"Personnalisée ajoutée1" = Table.AddColumn(#"Type modifié1", "Quantitée retournée", each [ENTMVT]="610"),
    #"Type modifié2" = Table.TransformColumnTypes(#"Personnalisée ajoutée1",{{"Quantitée retournée", Int64.Type}}),
    #"Lignes filtrées" = Table.SelectRows(#"Type modifié2", each true),
    #"Personnalisée ajoutée2" = Table.AddColumn(#"Lignes filtrées", "Quantité retournée", each [SORMVT]="610"),
    #"Type modifié3" = Table.TransformColumnTypes(#"Personnalisée ajoutée2",{{"Quantité retournée", type number}, {"Quantitée retournée", type text}}),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Type modifié3",{"Quantité facturée", "Quantitée retournée", "Quantité retournée"}),
    #"Personnalisée ajoutée3" = Table.AddColumn(#"Colonnes supprimées", "quantitée facturée", each [SORMVT]="700"),
    #"Personnalisée ajoutée4" = Table.AddColumn(#"Personnalisée ajoutée3", "quantitée livrée", each [ENTMVT]="610"),
    #"Personnalisée ajoutée5" = Table.AddColumn(#"Personnalisée ajoutée4", "quantité retournée", each [SORMVT]="610"),
    #"Personnalisée ajoutée6" = Table.AddColumn(#"Personnalisée ajoutée5", "Livraison blanche", each if [quantitée livrée] = [quantité retournée] then 1 else 0),
    #"Type modifié4" = Table.TransformColumnTypes(#"Personnalisée ajoutée6",{{"Livraison blanche", type text}}),
    #"Colonnes supprimées1" = Table.RemoveColumns(#"Type modifié4",{"Livraison blanche"}),
    #"Personnalisée ajoutée7" = Table.AddColumn(#"Colonnes supprimées1", "Livraison blanche", each if [ENTMVT]="710" = [SORMVT]="700" then 1 else 0),
    #"Type modifié5" = Table.TransformColumnTypes(#"Personnalisée ajoutée7",{{"Livraison blanche", Int64.Type}}),
    #"Lignes filtrées2" = Table.SelectRows(#"Type modifié5", each true),
    #"Colonnes supprimées2" = Table.RemoveColumns(#"Lignes filtrées2",{"Livraison blanche"}),
    #"Personnalisée ajoutée8" = Table.AddColumn(#"Colonnes supprimées2", "Livraisons blanches", each if [ENTMVT]="610" = [SORMVT]="700" then 1 else 0),
    #"Lignes filtrées1" = Table.SelectRows(#"Personnalisée ajoutée8", each true),
    #"Colonnes supprimées3" = Table.RemoveColumns(#"Lignes filtrées1",{"Livraisons blanches"}),
    #"Personnalisée ajoutée10" = Table.AddColumn(#"Colonnes supprimées3", "Livraisons blanches", each if [quantitée livrée]="TRUE" = [quantité retournée]="TRUE" then 1 else 0),
    #"Type modifié6" = Table.TransformColumnTypes(#"Personnalisée ajoutée10",{{"quantitée facturée", Int64.Type}, {"quantitée livrée", Int64.Type}, {"quantité retournée", Int64.Type}}),
    #"Colonnes supprimées4" = Table.RemoveColumns(#"Type modifié6",{"Livraisons blanches"}),
    #"Personnalisée ajoutée9" = Table.AddColumn(#"Colonnes supprimées4", "Livraisons blanches", each if [quantitée livrée]=1 = [quantité retournée]=1 then "1" else "0"),
    #"Colonnes supprimées5" = Table.RemoveColumns(#"Personnalisée ajoutée9",{"Livraisons blanches"}),
    #"Personnalisée ajoutée11" = Table.AddColumn(#"Colonnes supprimées5", "Livraisons blanches", each if[quantitée livrée]=1 =[quantité retournée]=1 then 1 else 5),
    #"Colonnes supprimées6" = Table.RemoveColumns(#"Personnalisée ajoutée11",{"Livraisons blanches"}),
    #"Personnalisée ajoutée12" = Table.AddColumn(#"Colonnes supprimées6", "Livraisons blanches )", each if[quantitée facturée]=1 = [quantité retournée] = 1 then 1 else 0),
    #"Type modifié7" = Table.TransformColumnTypes(#"Personnalisée ajoutée12",{{"Livraisons blanches )", Int64.Type}}),
    #"Lignes filtrées3" = Table.SelectRows(#"Type modifié7", each true),
    #"Colonnes supprimées7" = Table.RemoveColumns(#"Lignes filtrées3",{"Livraisons blanches )"}),
    #"Personnalisée ajoutée13" = Table.AddColumn(#"Colonnes supprimées7", "Livraisons blanches", each if [quantitée facturée]=1 and [quantité retournée]=1 then 1 else 0),
    #"Colonnes supprimées8" = Table.RemoveColumns(#"Personnalisée ajoutée13",{"Livraisons blanches"}),
    #"Colonne conditionnelle ajoutée" = Table.AddColumn(#"Colonnes supprimées8", "Livraisons blanches", each if [quantitée livrée] = 0 then 0 else if [quantitée livrée] = [quantité retournée] then 1 else 0),
    #"Colonne conditionnelle ajoutée1" = Table.AddColumn(#"Colonne conditionnelle ajoutée", "quantité retournée test", each if [SORMVT] = "610" then 1 else 0),
    #"Colonne conditionnelle ajoutée2" = Table.AddColumn(#"Colonne conditionnelle ajoutée1", "quantité facturée test", each if [SORMVT] = "700" then 1 else 0),
    #"Colonne conditionnelle ajoutée3" = Table.AddColumn(#"Colonne conditionnelle ajoutée2", "quantitée livrée test", each if [ENTMVT] = "610" then 1 else 0),
    #"Colonnes supprimées9" = Table.RemoveColumns(#"Colonne conditionnelle ajoutée3",{"quantitée facturée", "quantitée livrée", "quantité retournée"}),
    #"Colonnes renommées" = Table.RenameColumns(#"Colonnes supprimées9",{{"quantité retournée test", "quantité retournée"}, {"quantité facturée test", "quantité facturée"}, {"quantitée livrée test", "quantitée livrée"}}),
    #"Colonnes permutées" = Table.ReorderColumns(#"Colonnes renommées",{"CODART", "LIBELL", "QLIVRE", "NUMSER", "SORPCE_A", "CODCLI", "RAISOC", "NUMDOC", "CODOBJ", "CHRONO", "ENTPCE", "ENTMVT", "SORPCE_B", "SORMVT", "DATEMV", "SORPMR", "BL", "NUM_CDE", "CHIRURGIEN", "CODREP", "PATIENT", "DATE_INTER", "ENTDAT", "SORDAT", "EMPDES", "LIBFOU", "BL 2", "Compteur BL", "année.mois inter", "Mouvement", "quantitée livrée", "quantité retournée", "quantité facturée", "Livraisons blanches"}),
    #"Colonnes supprimées10" = Table.RemoveColumns(#"Colonnes permutées",{"Livraisons blanches"}),
    #"Colonne conditionnelle ajoutée4" = Table.AddColumn(#"Colonnes supprimées10", "Livraisons blanches", each if [quantitée livrée] = 0 then 0 else if [quantitée livrée] = [quantité retournée] then 1 else 0),
    #"Type modifié9" = Table.TransformColumnTypes(#"Colonne conditionnelle ajoutée4",{{"quantitée livrée", Int64.Type}}),
    #"Lignes filtrées5" = Table.SelectRows(#"Type modifié9", each true),
    #"Type modifié10" = Table.TransformColumnTypes(#"Lignes filtrées5",{{"quantité facturée", Int64.Type}, {"quantité retournée", Int64.Type}, {"Livraisons blanches", Int64.Type}}),
    #"Lignes filtrées4" = Table.SelectRows(#"Type modifié10", each true),
    #"Type modifié8" = Table.TransformColumnTypes(#"Lignes filtrées4",{{"Livraisons blanches", Int64.Type}}),
    #"Duplication de la colonne" = Table.DuplicateColumn(#"Type modifié8", "DATEMV", "DATEMV - Copier"),
    #"Fractionner la colonne par délimiteur" = Table.SplitColumn(Table.TransformColumnTypes(#"Duplication de la colonne", {{"DATEMV - Copier", type text}}, "fr-FR"), "DATEMV - Copier", Splitter.SplitTextByEachDelimiter({"/"}, QuoteStyle.Csv, true), {"DATEMV - Copier.1", "DATEMV - Copier.2"}),
    #"Type modifié11" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur",{{"DATEMV - Copier.1", type date}, {"DATEMV - Copier.2", Int64.Type}}),
    #"Colonnes supprimées11" = Table.RemoveColumns(#"Type modifié11",{"DATEMV - Copier.1"}),
    #"Colonnes renommées1" = Table.RenameColumns(#"Colonnes supprimées11",{{"DATEMV - Copier.2", "Année"}}),
    #"Type modifié12" = Table.TransformColumnTypes(#"Colonnes renommées1",{{"Année", type text}})
in
    #"Type modifié12"

标签: powerbipowerquerypowerbi-desktopm

解决方案


很难说出您在寻找什么,但自定义列公式的潜在版本是

= if [quantitée facturée]=1 and [quantité retournée]=1 then 1 else 0

= if [quantitée facturée]=1 或 [quantité retournée]=1 then 1 else 0

= if [quantitée facturée] = [quantité retournée] then 1 else 0

= if [quantitée facturée] <> [quantité retournée] then 1 else 0


推荐阅读