Ranking formula in excel based on two columns - excel

I'm trying to rank the following items based on price using the following formula =SUMPRODUCT(([Item]=[#Item])*([#Price]<[Price]))+1, but it isn't returning any results:
When I use the same formula in the following test table it works, =SUMPRODUCT(($A$2:$A$7=A2)*(B2<$B$2:$B$7))+1:
Can someone please let me know what I am doing wrong? Thanks
EDIT 2 : Evaluation https://imgur.com/a/eXIYPAP

Your formula works fine for me.
Are you sure that A2 and A3 are the same value? There may be some hidden white space causing problems. Just try
=A2=A3
in another cell to make sure they are the same.
USE COUNTIFS INSTEAD
I don't know why your formula isn't working, however, I would suggest avoiding SUMPRODUCT where you can.
=COUNTIFS([Item],[#Item],[Price],">"&[#Price])+1
This will count the number of prices higher than the current one for each item (+1, if you want the rank to start at 1 instead of 0)

If your goal is to get the ranking for each unique item, =SUMPRODUCT(([Item]=[#Item])*([Price]>[#Price]))+1 should do the trick. If the goal is to get the ranking based only on price, don't have it figured out yet.

Related

Use VLOOKUP as criteria inside COUNTIFS

After years of using this community, I have a question that I can't find an answer to. I hope you all can help!
I am trying to get a count of the number of "Grounded" items that each individual is overdue for. My screenshot (Count Tracker) shows a very condensed version of what I'm working with. Columns A-C is my large (15,000 rows) data field that is imported from an external source. In columns G-H I have listed each possible task (about 100 rows) and the type (Grounded and Non-Grounding plus many others). Column F is where I am trying to get the count.
My formula in F9 currently uses COUNTIFS to get a count of the instances in the large array that equal E9 ("Smith" in this case) and where the due date in the large array is less than or equal to the current date in F8. What I can't figure out is how to also add to count the Tasks in the large array where the task type in Column H equals "Grounded". I tried VLOOKUP, but it seems it doesn't like it and tells me there is a problem with the formula. It doesn't work, but here's the general idea of what I'm after:
=COUNTIFS($A$2:$A$7,$E9,$C$2:$C$7,"<="&$F$8,VLOOKUP($B$2:$B$7,$G$2:$H$4,2,FALSE),"=Grounded")
With how the data is currently presented, Smith should have a count of 1 and Jones should have a count of 0. I have a feeling that this is more simple than I'm making it to be, but I can't figure it out. I am using Excel 2016.
Hopefully I explained the problem well enough. Thank you for your assistance.
With Excel 2016 I'd say MMULT() is a good alternative here:
CSE-Formula in F9:
=SUM((A$2:A$7=E9)*(MMULT((TRANSPOSE(G$2:G$4)=B$2:B$7)*(TRANSPOSE(H$2:H$4)="Grounding"),ROW(G$2:G$4)^0))*(C$2:C$7<=F$8))
You could add a fourth column that stores whether that Task is Grounded
The formula for D2 would then be:
=INDEX($H$2:$H$4,MATCH(B2,$G$2:$G$4,0))
Modify your CountIfs formula to use this new column as a criteria
=COUNTIFS($A$2:$A$7,$E9,$C$2:$C$7,"<="&$F$8,$D$2:$D$7, "Grounded")
Try this Sumproduct+Vlookup formula without helper solution, and can work for your Excel 2016
In F9, formula copied down :
=SUMPRODUCT((A$2:A$7=E9)*(VLOOKUP(T(IF({1},$B$2:$B$7)),G$2:H$4,2,0)="Grounded")*($C$2:$C$7<=$F$8))

Sumifs or index match?

Thank you for helping me out. I am working on a way to add up how many pieces each department is handling per week...My data are organized as below. Each row represents an order. There is an order qty. And the orange grid has the week numbers during which the department is handling that order.
Data layout
I am trying to summarize by week how many pieces each department is handling..and While I have a series of sumif statements to work around, I am wondering if the brain trust has a more elegant solution...Thanks again.
desired output
MMULT() with SUMPRODUCT() may give you expected result.
=SUMPRODUCT(MMULT(($C$2:$G$4=$A8)*($C$1:$G$1=B$7),TRANSPOSE({1,1,1,1,1}))*($B$2:$B$4))
You may need to enter the formula as array entry means confirm with CTRL+SHIFT+ENTER. If you have Excel O365 then you can use dynamic formula SEQUENCE() which will give you best performance for large numbers of columns. Try-
=SUMPRODUCT(MMULT(($C$2:$G$4=$A8)*($C$1:$G$1=B$7),SEQUENCE(COLUMNS($C$1:$G$1),,,0))*($B$2:$B$4))

How do I use index match to find the first sale that a customer has made?

I have a table:
and I want to find the first order date for each customer.
For this, I have created a new column of customers and deleted the duplicates and tried using the function:
=MIN(IF($A$2:$A$74686=L2,$I2:$I74688))
But it doesn't seem to do what I want it to as the cells get larger.
I feel like I have to use an index match with the min function but I am unsure how to approach this.
As per my comment, it seems that in your current formula:
You are using ranges that are different in dimensions
You are using absolute references wrongly (in case you need to drag down)
So the correct formula would be:
=MIN(IF(A$2:A$74688=L2,I$2:I$74688))
Don't forget to enter through CtrlShiftEnter

How to Exclude 0 values from my =Count formula?

DESPERATE for any help :-)
I need to exclude 0 values from my =COUNT excel formula in order to get an automated frequency value feeding another formula in my model.
Actual Base Formula:
=COUNT(J10,J11,J12,N10,N11,N12,J14,J15,J16,N14,N15,N16)
I am trying to get the formula to NOT count when any of these cells have O values. For instance, if J10 is greater than 0, include it in the count.
I have tried several different "IF" statements, but am failing miserably!
I basically need to dummy proof this by automating it versus having users simply count the cells with values and enter the number into the frequency field for my score calculator. Thanks so much for any help!!
Since your range is disjointed the best method is four(4) countifs:
=COUNTIF(J10:J12,">0")+COUNTIF(N10:N12,">0")+COUNTIF(J14:J16,">0")+COUNTIF(N14:N16,">0")
Fixed based on the comments.
=COUNTIF(J10:J12,">0")+COUNTIF(N10:N12,">0")+COUNTIF(J14:J16,">0")+COUNTIF(N14:N16,">0")

CountIF error with <0

I would need some help again with another excel countif expression. I have the line i2:al2 which contains leftover stock data.I am building a worksheet to calculate remaining stocks in % as per supervisor's wish.
As I am working with %, for example if I say that 90% sales that means we have 103 stock left and with 91% sales I have 100 stock left.
Anyways I got around to count the number of stock left in line i2:a12 using countifs.
Example if I need to calculate leftover stock for sales at 90% which means leftover stock level of 100 to 102. I have used :
=countif(range,">100")-countif(range,">102")
This method seems to work till I reach negative numbers, i.e. oversales. For example, if I try to do the following:
=countif(range,"-100")-countif(range,">0")
the formula seems to stop working. If I count manually using a conditional formatting I get a totally different answer for the oversales.
Maybe I am getting the logic of the countif function wrong. My purpose for the expressison is:
=count(in range, values >=X & <=Y)
As I have only access to excel 2003 I cannot use Countifs method. Anyone could help me on this issue?
Many thanks.
You can use an array formula:
=SUM((range>=x)*(range<=y))
For that to work, you need to press CTRL-SHIFT-ENTER for that to use array formula.
Alternatively, using what simoco gives in the comment works too without having to save as array formula.

Resources