Considere la siguiente tabla:

       A             B            C        D
 1 category      subcategory    company  amount
 2 health care   diagnostics     AA       100
 3 health care   diagnostics     AB        50
 4 materials     mining          BA        75
 5 financials    banks           CA        30
 6 financials    insurers        CB        35
 7 financials    banks           CC        10
 8 financials    banks           CD        40
 9 financials    hedge fund      CE         5
10 health care   equipment       DA        50

Quiero (1) concatenar las empresas para cada categoría y (2) devolver la cantidad agregada.

      A              B              C
1 category       companies       amount
2 health care    AA AB DA          200     <--- 100 + 50 + 50
3 materials      BA                 75
4 financials     CA CB CC CD CE    120

Soy consciente de que (2) se puede hacer fácilmente usando una tabla dinámica, pero (1) no es compatible con pivotes. Entonces, dado el Excel a continuación, ¿qué fórmula necesito en B1 y C1 para obtener el resultado deseado?

      A              B              C
1 category       
2 health care    
3 materials      
4 financials     

He investigado concatenate(), que se necesita aquí, pero no veo cómo puedo dar argumentos a esa función, como pseudo:

=concatenate(C2:C10; "where (A:A) = 'health care')

¿Quién me puede ayudar?

1
Pr0no 22 ene. 2021 a las 01:32

1 respuesta

La mejor respuesta
=ARRAYFORMULA(QUERY({QUERY({A:D}, 
 "select Col1,sum(Col4) 
  where Col1 is not null 
  group by Col1 
  label sum(Col4)'amount'", 1), {"companies"; 
 TRIM(FLATTEN(QUERY(TRANSPOSE(QUERY(QUERY({A:D, C:C}, 
 "select max(Col3) 
  where Col1 is not null 
  group by Col1 
  pivot Col5"), 
 "offset 1", 0)),,9^9)))}}, 
 "select Col1,Col3,Col2", 1))

enter image description here

1
player0 21 ene. 2021 a las 23:14