根据另一个 table 的值创建一个新的 table?

Create a new table based on value of another table?

我有与员工姓名、开始和结束日期、每年授予的股份数量以及该计划将持续的年数相关的数据。

例如,员工 A 在 2020 年 4 月 1 日被授予为期 4 年的 5000 股股票,其归属期为 2021 年 4 月 1 日、2022 年 4 月 1 日、2023 年 4 月 1 日和 2024 年 4 月 1 日

客户提供的数据将只有员工姓名、开始和结束日期(2020 年 4 月 1 日) 2024 年 4 月 1 日,每年授予的股份数量(5000 股)和该计划将授予的年数(4 年)。看起来像这样

是否可以根据上述table在power bi中创建一个新的table

我已经能够在power bi中使用这个公式

让 StDt = [#"授权日期#(lf)(dd/mm/yyyy)"], AllDates = {Number.From([#"授予日期#(lf)(dd/mm/yyyy)"])..Number.From([#"归属结束日期#(lf)(dd/mm/yyyy)"])},

StofMonthDates = List.Distinct(List.Select(List.InsertRange(List.Transform(所有日期,每个 Date.StartOfYear(Date.From())),0, {[#"授权日期#(lf)(dd/mm/yyyy)"]}),each Number.From () >= Number.From(StDt))) 在 StofMonthDates

但是因为我使用的是年初功能,所以它给了我 1 月 1 日,我希望它给出与每个授予日期相同的日期,只有年份应该改变。

更新:您可以使用以下代码创建一个新的 table:

Year_Table = 
    GENERATE(
        YourTable,
         FILTER(
             SELECTCOLUMNS(
                 GENERATESERIES(1, 100),
                    "ID", [Value],
                    "End date", DATE(YEAR(YourTable[Grand date]) + [Value], MONTH(YourTable[Grand date]), DAY(YourTable[Grand date]))
                 ),
            [ID] <= YourTable[Vesting period]
            )
        )

输出:

更新,现在每个月:

Month_Table = 
    GENERATE(
        YourTable,
         FILTER(
             SELECTCOLUMNS(
                 GENERATESERIES(1, 100),
                    "ID", [Value] / 12,
                    "End date", DATE(YEAR(YourTable[Grand date]), MONTH(YourTable[Grand date]) + [Value], DAY(YourTable[Grand date]))
                 ),
            [ID] <= YourTable[Vesting period]
            )
        )