2017-05-04 3 views
1

私は複雑さを増し続けているDAX文を持っています。私はそれを効率的に書いているかのように感じます。この声明を簡素化する方法を誰にでも教えてもらえますか?次のDAX文を簡略化するにはどうすればよいですか?

EVALUATE 
ADDCOLUMNS (
    ADDCOLUMNS (
     ADDCOLUMNS (
      ADDCOLUMNS (
       ADDCOLUMNS (
        ADDCOLUMNS (
         ADDCOLUMNS (
          Query_NewSales, 
          "isKit", NOT (
           ISBLANK (
            LOOKUPVALUE (Query_Kits[KitName], Query_Kits[KitName], Query_NewSales[Item]) 
           ) 
          ) 
         ), 
         "AvgCPI", IF (
          [isKit], 
          LOOKUPVALUE (
           DAX_KitsPricedMissingRemoved[Total Price], 
           DAX_KitsPricedMissingRemoved[KitName], Query_NewSales[Item] 
          ), 
          LOOKUPVALUE (
           DAXTable_NewPurchasesGroupedByItem[AvgCPI], 
           DAXTable_NewPurchasesGroupedByItem[Item], Query_NewSales[Item] 
          ) 
         ) 
        ), 
        "isValid", NOT (ISBLANK ([AvgCPI])) 
       ), 
       "VenueFeeCalculated", IF ([isValid], [Sold Price] * [Linked.VenueFee]), 
       "TransactionFeeCalculated", IF ([isValid], [Sold Price] * [Linked.PaymentFee]) 
      ), 
      "Gross Profit", IF (
       [isValid], 
       [Sold Price] - [VenueFeeCalculated] 
        - [TransactionFeeCalculated] 
        - [Shipping Cost] 
      ) 
     ), 
     "Total Fees", [TransactionFeeCalculated] + [VenueFeeCalculated], 
     "Net Profit", IF ([isValid], [Gross Profit] - [AvgCPI]) 
    ), 
    "Fees Percent", IF ([isValid], [Linked.VenueFee] + [Linked.PaymentFee]), 
    "Shipping Percent", IF ([isValid], [Shipping Cost]/[Sold Price]), 
    "Overhead Percent", IF ([isValid], ([Sold Price] - [Gross Profit])/[Sold Price]) 
) 

それは仮想テーブルの全体の束を作成するため、このコードはまた、非効率的なようだが、それをこのようにやってなくて、私は、クエリの後半で追加してい列を参照することはできません。私は、質問を続けていくうちに、重複、三重項などを持ちたくはありません。すべての入れ子なしでこれを行う方法がなければならないようです。

+1

をあなたがコードを打破するために計算列またはメジャーにそれらADDCOLUMNS文を抽出することもできます。 – David

答えて

0

代わりに、複数の対策にクエリを破ることができます。

define measure Query_NewSales[isKit] = SUMX(Query_NewSales, IF(NOT (
    ISBLANK (
    LOOKUPVALUE(Query_Kits[KitName],Query_Kits[KitName],Query_NewSales[Item]) 
)), 1, 0)) 
measure Query_NewSales[AvgCPI] = SUMX(Query_NewSales, IF(Query_NewSales[isKit], 
    -- lookup to DAX_KitsPricedMissingRemoved 
    ,-- lookup to DAXTable_NewPurchasesGroupedByItem 
)) 
EVALUATE ADDCOLUMNS(Query_NewSales, "IsKit", Query_NewSales["IsKit"], ...)  
関連する問題