Forum Discussion

Frederic_J's avatar
Frederic_J
Copper Contributor
May 24, 2024

SUMPRODUCT with * wildcard

Hello,

 

I would like to use the function sumproduct for a table dealing with different projects and their financial parameters, as well as their geography (country and region). I need to synthetize the values for a particular project or a particular country or region (in which case a weighted average is necessary therefore the sumproduct came to my mind). Unfortunately, the sumproduct works well for a given project but if I need to get the synthesis for a country or region, I need to declare the wildcard * for the project and in that case, the sumproduct does not work.  I found many posts indicating a partial solution (like ISNUMBER(FIND(xxxxx))), but none of them brings an answer to my problem and I cannot believe there is no smart solution for that simple issue.

 

Table definition (CSV):

Region, Country, Project, Turnover, Margin

Europe, Slovakia, ABC, 10, 5%

Europe, Slovakia, ABD, 15, 2%

Europe, Poland, ABB, 20, 12%

 

I need a formula which returns the weighted margin depending on the selected region, country or project.

 

Could you please help me ?

 

 

 

Best regards,

 

Frédéric

 

 

    • Frederic_J's avatar
      Frederic_J
      Copper Contributor
      Hi Martin, thank you for your answer. No, a simple average is not adapted unfortunately, I need to use a weighted average for the calculation of margin (weighted by the turnover actually).
      • Martin_Angosto's avatar
        Martin_Angosto
        Iron Contributor

        Frederic_J 

         

        Hi, sorry I misunderstood that. What about this one?

         

        =LET(array,A2:E4,filteredArray,FILTER(array,CHOOSECOLS(array,2)=B6),partialWA,SUMPRODUCT(CHOOSECOLS(filteredArray,4),CHOOSECOLS(filteredArray,5)),partialWA/SUM(CHOOSECOLS(filteredArray,4)))

         

        See also attached.

Resources