代码之家  ›  专栏  ›  技术社区  ›  Michi

创建唯一列表,并对每一行的值进行求和(无需在LET函数中多次定义筛选条件)

  •  -1
  • Michi  · 技术社区  · 4 月前
    0 A. B C D E F G H 一、
    1. 数据列表 过滤器_01 过滤器_02
    2. 日期 品牌 类型 prod。 瓦尔。 Br_B t1
    3. 2022-05-10 Br_A t1 P1 15 Br_C t2
    4. 2023-01-15 Br_A t1 P1 18 t3
    5. 2022-08-12 Br_B t2 P2 30
    6. 2022-09-15 Br_B t3 P3 50 结果
    7. 2023-06-15 Br_B t1 P3 20 prod。 瓦尔。
    8. 2023-06-18 Br_B t4 P1 80 P2 80
    9 2024-05-17 Br_B t4 P4 25 P3 122
    10 2023-08-19 Br_C t3 P5 85 P1 80
    11 2022-09-30 Br_C t5 P3 70 P4 25
    12 2024-04-25 Br_C t5 P3 32 P5 85
    13 2025-08-29 Br_D t3 P1 45
    14 2022-03-25 Br_E t1 P2 60
    15 2022-03-26 Br_E t3 P2 85
    16 2024-05-20 Br_E t5 P3 90
    17 2024-06-03 Br_E t2 P4 15
    18 2024-07-30 Br_E t1 P4 26

    In Cell G8 我已经实现了这个公式:

    =LET(
    a,COUNTIF(G2:G4,B2:B18)+AND(G2:G4=""),
    b,COUNTIF(H2:H4,C2:C18)+AND(H2:H4=""),
    c,FILTER(A2:E18,a*b,""),
    d,CHOOSECOLS(c,4,5),
    d)
    

    此公式尚未给出中显示的结果 Range G8:H11 因为它没有列出 prod. 唯一并总结 val. 每独特 prod。 .


    虽然解决方案来自 this question 在这种情况下,它并不能完全解决问题,因为我正在寻找一个公式,在这个公式中,我只需要定义一次过滤器,而不是多次。此外,与其他问题相比,过滤器有点复杂,因为它们引用了一个具有多个条件的范围。
    总之,我正在寻找这样的东西:

    =LET(
    a,COUNTIF(G2:G4,B2:B18)+AND(G2:G4=""),
    b,COUNTIF(H2:H4,C2:C18)+AND(H2:H4=""),
    c,FILTER(A2:E18,a*b,""),
    d,CHOOSECOLS(c,4,5),
    e,unique_list_with_summed_up_values_based_on_a_and_b;
    e)
    

    我需要如何修改公式才能使其工作?

    注意:我正在使用Office365(版本2410),但我还没有GROUPBY功能。

    1 回复  |  直到 4 月前
        1
  •  1
  •   Michi    4 月前

    试试下面的公式-

    =LET(
    x,FILTER(D3:E18,IF(COUNTA(G2:G4)=0,1,COUNTIFS(G2:G4,B3:B18))*IF(COUNTA(H2:H4)=0,1,COUNTIFS(H2:H4,C3:C18))),
    y,UNIQUE(CHOOSECOLS(x,1)),
    z,MAP(y,LAMBDA(t,SUM(CHOOSECOLS(FILTER(x,CHOOSECOLS(x,1)=t),2)))),
    HSTACK(y,z))
    

    enter image description here