Actuarial Outpost

Actuarial Outpost (http://www.actuarialoutpost.com/actuarial_discussion_forum/index.php)
-   Software & Technology (http://www.actuarialoutpost.com/actuarial_discussion_forum/forumdisplay.php?f=17)
-   -   Excel question (http://www.actuarialoutpost.com/actuarial_discussion_forum/showthread.php?t=335326)

glassy 09-21-2018 01:24 PM

Excel question
 
g-lassie recently had a problem to solve with her spreadsheet. Here's how the sheet is set up:

Column A is a series of product names. They are grouped in certain categories, but the number of products in each group is not uniform (some groups have 3 products, some have 10, etc). Column B has a count of each product. After each group, Column A will say "Total" and Column B will have the total # of products in the group. The goal is to have in a new column the % of total: count of the particular item in the group / total count of items in the group.

I solved this for her by having column C =VLOOKUP("Total", $A2:$A$1000**, 2, FALSE) and column D = IF(A2="Total","",B2/C2), but I know this isn't ideal and I can't think of how to word a google search to find a solution. I'm sure I'm missing something pretty easy here.

Any way to do this in one nice formula? Please no array formulas if possible, I'd rather not open up that can of worms to her.


**The total number of rows in the sheet

Example with desired output:
Code:

PRODUCT        COUNT       
x1        52        5%
x2        301        29%
x3        293        29%
x4        219        21%
x5        157        15%
Total        1,022       
y1        19        3%
y2        183        30%
y3        163        26%
y4        141        23%
y5        114        18%
Total        620


tommie frazier 09-21-2018 01:32 PM

add a column C that tracks the grouping. So it captures if it is in x or y.

then have percent D2 = iferror(b2/ sumif(C:C,c2,B:B),0)

glassy 09-21-2018 01:42 PM

Yeah, that's pretty much what I did (see OP), but seems like there must be a "better" way.

tommie frazier 09-21-2018 04:14 PM

your percent calculations require a tracking of the total which is in a different place relative to each cell bc the groupings are of different sizes. and the vlookup on "total" alone will have issues unless the total is identified as the total for whatever grouping.

don't get me wrong, these two ways aren't that different. but I don't actually follow your way that well (and accept it is possible you don't follow mine as well). more than one way to skin the cat

mathmajor 09-21-2018 04:40 PM

Cell B2 and below:
=IF(A2="Total",SUM($B1:B$2)-2*SUMIF($A1:A$2,"Total",$B1:B$2),RANDBETWEEN(1,100))

(added randbetween to simulate values)

Cell C2 and below:
=IF(A2="Total","",B2/OFFSET(C2,MATCH("Total",A3:$A$250,0),-1))

Product Count Percent
x1 96 35.6%
x2 97 35.9%
x3 69 25.6%
x4 8 3.0%
Total 270
y1 18 11.4%
y2 88 55.7%
y3 52 32.9%
Total 158
z1 53 17.7%
z2 81 27.0%
z3 96 32.0%
z4 54 18.0%
z5 16 5.3%
Total 300

your welcome

|B|rad 09-21-2018 04:50 PM

Why cant you just combine the two columns you've suggested already?

column C = IF(A2="Total","",B2/VLOOKUP("Total", $A2:$B$1000**, 2, FALSE))

or who cares about 100%'s next to totals?:
column C = B2/VLOOKUP("Total", $A2:$B$1000**, 2, FALSE)

mathmajor 09-21-2018 05:05 PM

vlookup is going to capture the same total every time

MayanActuary 09-21-2018 05:18 PM

Quote:

Originally Posted by mathmajor (Post 9433532)
vlookup is going to capture the same total every time

The row isn't anchored in the formula so as you drag it down it gets the next highest "total"

Sredni Vashtar 09-21-2018 05:18 PM

Quote:

Originally Posted by tommie frazier (Post 9433232)
add a column C that tracks the grouping. So it captures if it is in x or y.

then have percent D2 = iferror(b2/ sumif(C:C,c2,B:B),0)

Quote:

Originally Posted by glassy (Post 9433249)
Yeah, that's pretty much what I did (see OP), but seems like there must be a "better" way.

I think tommie is saying something like:
C1= "Group"
C2= left(A2,1)= 'x'
D2= sumif on C2.

That assumes that like your example, you can actually recover the grouping from the product description.

Sredni Vashtar 09-21-2018 05:21 PM

Quote:

Originally Posted by |B|rad (Post 9433519)
Why cant you just combine the two columns you've suggested already?

column C = IF(A2="Total","",B2/VLOOKUP("Total", $A2:$B$1000**, 2, FALSE))

or who cares about 100%'s next to totals?:
column C = B2/VLOOKUP("Total", $A2:$B$1000**, 2, FALSE)

I agree with this...


I assume the OP wants a way that's less janky than a vlookup a random azz word.
But sometimes that's just how the data rolls.


All times are GMT -4. The time now is 02:30 PM.

Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Page generated in 0.12654 seconds with 9 queries