强大的Excel查询功能 - 搜索前5次出现的内容

问题描述 投票:0回答:2

在 excel power query 中我有这个表:

CTR N. 索赔 n.索赔日期 风险金额 管理金额 3 123 2021年1月12日 405 0 1 456 2022年1月23日 405 800 1 458 2022年2月9日 56 0 1 455 2022 年 10 月 31 日 455 0 1 467 2022年11月20日 49 1230 1 477 2022 年 7 月 12 日 45 500 1 488 2023年2月2日 45 20 1 489 2023年2月10日 45 20 1 490 2023年6月4日 1230 300 1 500 2023年4月11日 1230 900 1 502 2023年4月20日 1230 1230 1 555 2023年5月5日 12 900 1 567 2023年6月19日 12 90 1 589 2023年6月25日 1230 90 1 599 2023年7月10日 90 90 5 676 2023 年 5 月 11 日 0 450 5 679 2023年12月23日 500 0 5 688 16/01/2024 23 23

我需要创建一个查询,其中对于合同编号并按索赔日期排序的前 5 个索赔,其中风险金额或管理金额 >400,相应值替换为 500。当该值不高于 400 或同一合约中出现5次的,风险金额和管理金额的值需要保持不变。 如何管理这个查询? 感谢您的回复。

根据此规则,结果表将是:

CTR N. 索赔 n.索赔日期 风险金额 管理金额 3 123 2021 年 1 月 12 日 500 0
1 456 2022 年 1 月 23 日 500 500 <- 1 substitution for ctr n 1 1 488 02/02/2023 45 20
1 489 10/02/2023 45 20
1 490 2023 年 6 月 4 日 500 300 <- 2 substitution for ctr n 1 1 500 11/04/2023 500 500 <- 3 substitution for ctr n 1 1 502 20/04/2023 500 500 <- 4 substitution for ctr n 1 1 555 05/05/2023 12 500 <- 5 substitution for ctr n 1 1 567 19/06/2023 1240 90 <- No other subst. need to be possible
1 589 2023年6月25日 1230 90 1 599 2023年7月10日 900 90 1 458 2022年2月9日 56 0 1 455 2022 年 10 月 31 日 455 0 1 467 2022年11月20日 49 1230 1 477 2022 年 7 月 12 日 45 500 5 676 2023 年 5 月 11 日 0 500 <- 1 substitution for ctr n 5 5 679 23/12/2023 500 0 <- 2 substitution for ctr n 5 5 688 16/01/2024 23 23

powerquery
2个回答
0
投票

要按照您的描述调整 Excel Power Query 中的表格,您首先需要将数据加载到 Power Query 中。然后,按合同号和索赔日期对数据进行排序。接下来,使用“分组依据”功能按合同编号对数据进行分组。在每个组中,您将应用自定义操作来修改“风险金额”或“管理金额”超过 400 的前 5 行,将这些金额更改为 500。确保每个合同更改的索赔数量不要超过 5 个。设置这些条件后,将分组的列展开回其原始格式,并将结果加载回 Excel 中。此方法可确保每份合同的金额得到正确调整,且不超过每份合同五次修改的限制。


0
投票

感谢您的支持。 我尝试按照您的步骤创建此代码:

    let
Source = Table.FromRecords({
    [#"CTR N." = 3, #"Claims n." = 123,#"Claims date" = #date(2021, 12, 1), #"Risk Amount" = 405, #"Managed Amount" = 0],
    [#"CTR N." = 1, #"Claims n." = 456, #"Claims date" = #date(2022, 1, 23), #"Risk Amount" = 405, #"Managed Amount" = 800],
    [#"CTR N." = 1, #"Claims n." = 458, #"Claims date" = #date(2022, 9, 2), #"Risk Amount" = 56, #"Managed Amount" = 0],
    [#"CTR N." = 1, #"Claims n." = 455, #"Claims date" = #date(2022, 10, 31), #"Risk Amount" = 455, #"Managed Amount" = 0],
    [#"CTR N." = 1, #"Claims n." = 467, #"Claims date" = #date(2022, 11, 20), #"Risk Amount" = 49, #"Managed Amount" = 1230],
    [#"CTR N." = 1, #"Claims n." = 477, #"Claims date" = #date(2022, 12, 7), #"Risk Amount" = 45, #"Managed Amount" = 678],
    [#"CTR N." = 1, #"Claims n." = 488, #"Claims date" = #date(2023, 2, 2), #"Risk Amount" = 45, #"Managed Amount" = 20],
    [#"CTR N." = 1, #"Claims n." = 489, #"Claims date" = #date(2023, 2, 10), #"Risk Amount" = 45, #"Managed Amount" = 20],
    [#"CTR N." = 1, #"Claims n." = 490, #"Claims date" = #date(2023, 4, 6), #"Risk Amount" = 1230, #"Managed Amount" = 300],
    [#"CTR N." = 1, #"Claims n." = 500, #"Claims date" = #date(2023, 4, 11), #"Risk Amount" = 1230, #"Managed Amount" = 900],
    [#"CTR N." = 1, #"Claims n." = 502, #"Claims date" = #date(2023, 4, 20), #"Risk Amount" = 1230, #"Managed Amount" = 1230],
    [#"CTR N." = 1, #"Claims n." = 555, #"Claims date" = #date(2023, 5, 5), #"Risk Amount" = 12, #"Managed Amount" = 900],
    [#"CTR N." = 1, #"Claims n." = 567, #"Claims date" = #date(2023, 6, 19), #"Risk Amount" = 12, #"Managed Amount" = 90],
    [#"CTR N." = 1, #"Claims n." = 589, #"Claims date" = #date(2023, 6, 25), #"Risk Amount" = 1230, #"Managed Amount" = 90],
    [#"CTR N." = 1, #"Claims n." = 599, #"Claims date" = #date(2023, 7, 10), #"Risk Amount" = 90, #"Managed Amount" = 90],
    [#"CTR N." = 5, #"Claims n." = 676, #"Claims date" = #date(2023, 11, 5), #"Risk Amount" = 0, #"Managed Amount" = 450],
    [#"CTR N." = 5, #"Claims n." = 679, #"Claims date" = #date(2023, 12, 23), #"Risk Amount" = 988, #"Managed Amount" = 0],
    [#"CTR N." = 5, #"Claims n." = 688, #"Claims date" = #date(2024, 1, 16), #"Risk Amount" = 23, #"Managed Amount" = 23]
     }),

SortedTable = Table.Sort(Source, {{"CTR N.", Order.Ascending}, {"索赔日期", Order.Ascending}}), GroupedTable = Table.Group(SortedTable, {"CTR N."}, {{"所有行", every _, type table}}), CustomColumn = Table.AddColumn(GroupedTable, "修改的行", 每个 让 First5Rows = Table.FirstN([所有行], 5), ModifiedRows = Table.TransformRows(First5Rows, 每个 如果 [风险金额] > 400 或 [管理金额] > 400,则 [风险金额] = 500 别的 [风险金额] = [风险金额] ) 在 修改行 ), ExpandedTable = Table.ExpandTableColumn(CustomColumn, "修改的行", {"风险金额", "管理金额"}, {"风险金额", "管理金额"}) 在 扩展表

我哪里错了?

© www.soinside.com 2019 - 2024. All rights reserved.