2017-06-28 1 views
0

次のExcel 2016 Power Query(Get & Transformクエリ)があります。それが正常に動作しますが、私は2 SelectRowsラインでフィールド名の変数を使用しようとしている:私はこの試みたExcel Power Query SelectRows行のフィールド名に変数を使用しようとしたときにエラーが発生しました

let 

    //Variables: 
     //Server Name: 
      DefnameServerName = Excel.CurrentWorkbook(){[Name="IMPORT_SERVER_NAME"]}[Content], 
      ServerName = DefnameServerName{0}[Column1], 
     //Database Name: 
      DefnameDatabaseName = Excel.CurrentWorkbook(){[Name="IMPORT_DATABASE_NAME"]}[Content], 
      DatabaseName = DefnameDatabaseName{0}[Column1], 
     //Schema Name: 
      DefnameSchemaName = Excel.CurrentWorkbook(){[Name="IMPORT_SCHEMA_NAME"]}[Content], 
      SchemaName = DefnameSchemaName{0}[Column1], 
     //Table Name: 
      DefnameTableName = Excel.CurrentWorkbook(){[Name="IMPORT_TABLE_NAME"]}[Content], 
      TableName = DefnameTableName{0}[Column1], 
     //ID Field Name: 
      DefnameFieldNameID = Excel.CurrentWorkbook(){[Name="IMPORT_FIELDNAME_ID"]}[Content], 
      FieldNameID = DefnameFieldNameID{0}[Column1], 
     //Customer Field Name: 
      DefnameFieldNameCustomer = Excel.CurrentWorkbook(){[Name="IMPORT_FIELDNAME_CUSTOMER"]}[Content], 
      FieldNameCustomer = DefnameFieldNameCustomer{0}[Column1], 
     //Region Field Name: 
      DefnameFieldNameRegion = Excel.CurrentWorkbook(){[Name="IMPORT_FIELDNAME_REGION"]}[Content], 
      FieldNameRegion = DefnameFieldNameRegion{0}[Column1], 
     //Month Field Name: 
      DefnameFieldNameMonth = Excel.CurrentWorkbook(){[Name="IMPORT_FIELDNAME_MONTH"]}[Content], 
      FieldNameMonth = DefnameFieldNameMonth{0}[Column1], 
     //Forecast Value Field Name: 
      DefnameFieldNameForecastValue = Excel.CurrentWorkbook(){[Name="IMPORT_FIELDNAME_FORECAST_VALUE"]}[Content], 
      FieldNameForecastValue = DefnameFieldNameForecastValue{0}[Column1], 

    //Parameters: 
     //ID: 
      DefnameParameterID = Excel.CurrentWorkbook(){[Name="IMPORT_PARAMETER_ID"]}[Content], 
      ParameterID = DefnameParameterID{0}[Column1], 
     //Customer: 
      DefnameParameterCustomer = Excel.CurrentWorkbook(){[Name="IMPORT_PARAMETER_CUSTOMER"]}[Content], 
      ParameterCustomer = DefnameParameterCustomer{0}[Column1], 

    Source = Sql.Database(ServerName, DatabaseName), 
    dbo_MidtermOmnibusForecast = Source{[Schema=SchemaName,Item=TableName]}[Data], 
    RemoveOtherColumns = Table.SelectColumns(dbo_MidtermOmnibusForecast,{FieldNameID, FieldNameCustomer, FieldNameMonth, FieldNameForecastValue, FieldNameRegion}), 
    FilterByUUID = Table.SelectRows(RemoveOtherColumns, each ([UUID] = ParameterID)), 
    FilterByCustomer = Table.SelectRows(FilterByUUID, each ([ForecastName] = ParameterCustomer)), 
    PivotMonths = Table.Pivot(Table.TransformColumnTypes(FilterByCustomer, {{FieldNameMonth, type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(FilterByCustomer, {{FieldNameMonth, type text}}, "en-US")[ForecastDate]), FieldNameMonth, FieldNameForecastValue, List.Sum), 
    SortByCustomerThenRegion = Table.Sort(PivotMonths,{{FieldNameCustomer, Order.Ascending}, {FieldNameRegion, Order.Ascending}}) 
in 
    SortByCustomerThenRegion 

FilterByUUID = Table.SelectRows(RemoveOtherColumns, each ([FieldNameID] = ParameterID)), 
    FilterByCustomer = Table.SelectRows(FilterByUUID, each ([FieldNameCustomer] = ParameterCustomer)), 

をそして私はこれを試してみた:

FilterByUUID = Table.SelectRows(RemoveOtherColumns, each (FieldNameID = ParameterID)), 
    FilterByCustomer = Table.SelectRows(FilterByUUID, each (FieldNameCustomer = ParameterCustomer)), 

しかし、どちらもクエリを破棄します。 2つのSelectRows行のフィールド名に変数を使用するには、何が必要ですか?

答えて

0

答えはhttps://social.technet.microsoft.com/Forums/en-US/13df0744-4f27-4f3a-8565-7e24b1d73c17/error-trying-to-use-variable-for-the-field-name-in-a-selectrows-line?forum=powerqueryで提供されました:あなたは、変数フィールド名と角括弧を使用していますが、代わりにこのようRECORD.FIELDを使用することはできません

FilterByUUID = Table.SelectRows(RemoveOtherColumns, each (Record.Field(_, FieldNameID) = ParameterID)), 

を(これはどこの正方形のみ必要です上記のSelectRows行にあるように、括弧はフィールド名のまわりで使用されます。上記のコード内のSelectColumns行のように、角括弧がない場合は、変数名をスワップするだけです--Greg)

関連する問題