Forum Discussion
GENERATESERIES con SELECTEDVALUE
- 3 years ago
@v-cgao-msft Gracias.
Lo siguiente es tanto para mí como para otros que se encuentran con este feed. PowerBI no puede crear una nueva tabla calculada utilizando la entrada de segmentaciones de datos. Sin embargo, puede crear una tabla calculada virtual en una medida que puede obtener los resultados que desea, pero es difícil de auditar. En consecuencia, le recomiendo que cree una tabla calculada con entradas "codificadas" para auditar/programar/compilar, mientras replica la salida de medida que busca utilizando la tabla virtual con fines dinámicos.
Esta es mi tabla calculada de auditoría. Notará que el RETORNO tiene que ser una tabla.
zzNewTable = VAR StrtDate = DATE ( 2023, 6, 1 ) VAR EndDate = EOMONTH(StrtDate,60+1) VAR CalMth = GENERATESERIES ( 0, DATEDIFF ( StrtDate, EndDate, MONTH ), 1 ) // NetRent = AcquisitionCost * LRF * (1-TechServicingFee) VAR NetRent = 10000 * 0.015 * (1-0.05) // Deployment = AcquisitionCost - LeaseTransactionCosts VAR Deployment = 10000 + 50 // Exit = AcquisitionCost * RV% - LeaseTransitionCosts VAR Exit = 10000 * 0.75 - 50 VAR T1_1 = ADDCOLUMNS( CalMth, "Date", IF([Value]=0,EOMONTH(StrtDate,[Value]),EOMONTH(StrtDate,[Value]-1)+1), "@AcqCost", 10000, "@LRF", 0.015, "@RV%", 0.75, "@LeaseTerm", 60, "@NetRent", IF([Value]=0,(-1)*Deployment,IF([Value]=61,Exit,NetRent)) , "@StartMonth", 6 ) VAR UnlevIRR = XIRR(T1_1,[@NetRent],[Date]) RETURN T1_1Esta es mi medida. Notará que el RETORNO debe ser una medida (y no una tabla)
zzVirtual Table Measure = VAR StrtDate = DATE ( [Measure - Start Year], [Measure - Start Month], 1 ) VAR EndDate = EOMONTH(StrtDate,[Measure - Lease Term]+1) VAR CalMth = GENERATESERIES (0, DATEDIFF (StrtDate, EndDate, MONTH ), 1 ) // NetRent = AcquisitionCost * LRF * (1-TechServicingFee) VAR NetRent = // 10000 * 0.015 * (1-0.05) [Measure - Acquisition Price] * [Measure - Lease Rate Factor] * (1-[Measure - Technical Servicing Fee]) // Deployment = AcquisitionCost - LeaseTransactionCosts VAR Deployment = // 10000 + 50 [Measure - Acquisition Price] + [Measure - Lease Transaction Costs] // Exit = AcquisitionCost * RV% - LeaseTransitionCosts VAR Exit = // 10000 * 0.75 - 50 [Measure - Acquisition Price] * [Measure - Residual Percentage] - [Measure - Lease Transaction Costs] VAR T1_1 = ADDCOLUMNS( CalMth, "Date", IF([Value]=0,EOMONTH(StrtDate,[Value]),EOMONTH(StrtDate,[Value]-1)+1), "@AcqCost", 10000, "@LRF", 0.015, "@RV%", 0.75, "@LeaseTerm", 60, "@NetRent", IF([Value]=0,(-1)*Deployment,IF([Value]=[Measure - Lease Term]+1,Exit,NetRent)) , "@StartMonth", 6 ) VAR UnlevIRR = XIRR(T1_1,[@NetRent],[Date]) RETURN UnlevIRR
@v-cgao-msft Gracias.
Lo siguiente es tanto para mí como para otros que se encuentran con este feed. PowerBI no puede crear una nueva tabla calculada utilizando la entrada de segmentaciones de datos. Sin embargo, puede crear una tabla calculada virtual en una medida que puede obtener los resultados que desea, pero es difícil de auditar. En consecuencia, le recomiendo que cree una tabla calculada con entradas "codificadas" para auditar/programar/compilar, mientras replica la salida de medida que busca utilizando la tabla virtual con fines dinámicos.
Esta es mi tabla calculada de auditoría. Notará que el RETORNO tiene que ser una tabla.
zzNewTable =
VAR StrtDate =
DATE ( 2023, 6, 1 )
VAR EndDate =
EOMONTH(StrtDate,60+1)
VAR CalMth =
GENERATESERIES (
0,
DATEDIFF (
StrtDate,
EndDate,
MONTH
),
1
)
// NetRent = AcquisitionCost * LRF * (1-TechServicingFee)
VAR NetRent =
10000 * 0.015 * (1-0.05)
// Deployment = AcquisitionCost - LeaseTransactionCosts
VAR Deployment =
10000 + 50
// Exit = AcquisitionCost * RV% - LeaseTransitionCosts
VAR Exit =
10000 * 0.75 - 50
VAR T1_1 =
ADDCOLUMNS(
CalMth,
"Date",
IF([Value]=0,EOMONTH(StrtDate,[Value]),EOMONTH(StrtDate,[Value]-1)+1),
"@AcqCost",
10000,
"@LRF",
0.015,
"@RV%",
0.75,
"@LeaseTerm",
60,
"@NetRent",
IF([Value]=0,(-1)*Deployment,IF([Value]=61,Exit,NetRent)) ,
"@StartMonth",
6
)
VAR UnlevIRR =
XIRR(T1_1,[@NetRent],[Date])
RETURN
T1_1
Esta es mi medida. Notará que el RETORNO debe ser una medida (y no una tabla)
zzVirtual Table Measure =
VAR StrtDate =
DATE ( [Measure - Start Year], [Measure - Start Month], 1 )
VAR EndDate =
EOMONTH(StrtDate,[Measure - Lease Term]+1)
VAR CalMth =
GENERATESERIES (0, DATEDIFF (StrtDate, EndDate, MONTH ), 1 )
// NetRent = AcquisitionCost * LRF * (1-TechServicingFee)
VAR NetRent =
// 10000 * 0.015 * (1-0.05)
[Measure - Acquisition Price] * [Measure - Lease Rate Factor] * (1-[Measure - Technical Servicing Fee])
// Deployment = AcquisitionCost - LeaseTransactionCosts
VAR Deployment =
// 10000 + 50
[Measure - Acquisition Price] + [Measure - Lease Transaction Costs]
// Exit = AcquisitionCost * RV% - LeaseTransitionCosts
VAR Exit =
// 10000 * 0.75 - 50
[Measure - Acquisition Price] * [Measure - Residual Percentage] - [Measure - Lease Transaction Costs]
VAR T1_1 =
ADDCOLUMNS(
CalMth,
"Date",
IF([Value]=0,EOMONTH(StrtDate,[Value]),EOMONTH(StrtDate,[Value]-1)+1),
"@AcqCost",
10000,
"@LRF",
0.015,
"@RV%",
0.75,
"@LeaseTerm",
60,
"@NetRent",
IF([Value]=0,(-1)*Deployment,IF([Value]=[Measure - Lease Term]+1,Exit,NetRent)) ,
"@StartMonth",
6
)
VAR UnlevIRR =
XIRR(T1_1,[@NetRent],[Date])
RETURN
UnlevIRR