Working in Excel 2019. In the same realm as one of my previous questions, I'm working with a database that I'm trying to look through via functions to get my values. The VLOOKUP tool worked well for going through the time-table to find the value I need, but it's not working when I'm trying to find RPM as the look-up value. Here's the gist of the data.
We have Time(sec, A:A in "PPT_156Data" sheet), RPM (B:B in same sheet), and Pressure (Bar, C:C in same sheet).
From the graph, you can see that we ramp to 8000RPM over the course of around 60 seconds, and then ramp down to 0RPM over the next 30. Test times WILL vary and rates WILL vary from pump-to-pump, as each one will give different data values based on the pump. That's why, say, 1000RPM will not be in the same spot every time.
I'm trying to find the RPM at 1000 intervals up to 8000 and report out the pressure at said intervals.
Here's what I tried so far, with imagery as well.
'Disregard if you see W25 for S25, I had just been trying multiple things
First, I attempted the same VLOOKUP code I had done for the time-table prior
=VLOOKUP(S25,PPT156_Data!B:C,2,TRUE) 'S25 being lookup value
This worked fine, UP UNTIL it hit a particular spot. For some reason, as soon as it tries to find an approximate match for 6663RPM, it faults out and gives incorrect data. From then on, all the way to 8000RPM, it will ONLY give the result of 0.139BAR. I have no clue why. Trying to find that value in the return array gives multiple results, but it's not like it's the ONLY value left.
So, I tried to do a wildcard for it with the following code
=VLOOKUP("*"&S25&"*",PPT156_Data!B:C,2,FALSE) 'Attempted both False and True states
Gave N/A for both of the values. Not sure if I'm entering in the wildcard incorrectly here. The decimal places that the RPM can go to ranges between 2-5 (hundredths to hundred-thousandths, IE 7000.00750)
I then thought maybe an Index Match would work.
=INDEX(PPT156_Data!B:C,MATCH(S25,PPT156_Data!B:B,-1),2)
Tried that in wildcard format too, returned nothing. So, I decided to see if I could even match a value for RPM with the following attempts
=MATCH(S25,PPT_Data156!B:B,-1)
This gave nothing. HOWEVER, when setting the match specification to 1, it gives the very last row in the data set. So, I decided to find a value in column B, and attempt to match with it exactly.
=MATCH(7000.07,PPT_Data156!B:B,0)
This also returned nothing. Even though, you can see in my images, that the value is ABSOLUTELY there. SIGFIG shows it's 7000.1 but trust me, it's 7000.07. So that sort of threw me for a loop. Figuring maybe there was a different error and grasping at straws, tried another Index Match formula, this time subtracting the lookup value in an attempt to get it extremely close and absolute value/min it
=INDEX(PPT156_Data!C:C,MATCH(MIN(ABS(PPT156_Data!B:B-S25)),ABS(PPT156_Data!B:B-S25),1))
I'm at a loss. I'm not sure if because the rate ramps up and down, thus not being in ascending order, is causing a problem? I can't change that. I am thinking I may need to create a macro for this in some way? Maybe a helper table? But I can't even FIND the match value to create a helper table. Any help at all would be VERY appreciative.
Thank you for your time looking at my post.
I am presuming that you want the first pressure reading when the RPM hits above each 1000 interval. I got to a solution but feels a bit complex.
=index(C:C,1/max(iferror(1/(row(B:B)*(B:B>E12)),Null)))
Breaking this down, we create a boolean array where the RPM hits above the interval
=B:B>E12
and then we multiple this by the array of the rows of column B
row(B:B)*(B:B>E12)
which gives us an array of the row numbers when the RPM is above E12 but also zero for all the ones that do not.
=iferror(1/(row(B:B)*(B:B>E12)),Null)
We then force an error with the zeros by dividing and replace with null. We get the max since we inverse the row numbers and then inverse again to get the row number back.
=index(C:C,1/max(iferror(1/(row(B:B)*(B:B>E12)),Null)))
[Excel working screenshot][1]
[1]: https://i.stack.imgur.com/uhcaX.png
So I have a list - see example:
I want a function to check the complete list (imagine there is more than 1 entry), and returns with f.i. the 5 oldest rows (sorted by data in row B). As in complete rows.
I can get the lowest through:
=MIN(C3:C29)
But that doesn't seem as something usable for this no matter how I do it.
Then I though I could use the INDEX/LARGE functions (or MATCH? Would that be possible?), but I'm too stupid to make it work atm.
Is this even the right way?
I can make a macro doing it (filtering, copying first lines etc - stupid) but I know there is a smarter way of doing it.
Can anyone help me on my way or tell me if I'm looking up the wrong functions for this? Please tell me if I need more details.
Thanks
So, try this:
Cells formatted as shortdate.
And it works with months as well:
I am trying to pull prices from a file to a mixed tender file. My main subjects that I need to search for are POL, Destination City and Container Types. My 2 data sets are as below:
!
It is just a small portion to show the data type. I have cleaned the data a little bit too. so here is my code for taking the prices :
=VLOOKUP(P3,$A$2:$K$251,VLOOKUP(Q3,$A$2:$K$251,VLOOKUP(R3,$A$2:$K$251,5,),),)
it didn't work out and I only get error on container types, it cannot find it:
I am kinda stuck - what should I do? Kindly seeking your help.
Thank you
Try to use SUMIFS function instead.
In W3, copied down :
=SUMIFS($E:$E,$D:$D,P3,$A:$A,Q3,$B:$B,R3)
I am trying to extract unique Article Numbers from a big database inside excel. It will go up to 15000-20000 unique article numbers. I have tried to use the code below to solve this, and it does work. But the document gets so slowed down by this and thus becomes a pain to work with. This will be used every day so at this pace it would be unbearable to work with. Do you know any good ways of speeding this up? Read smt about binary search, but I don't know how to implement that into the code I have down below. Any help is appreciated:)
=IFERROR(IF(LOOKUP(2;1/(COUNTIF($A$1:A1;Unique) =0);Unique)= 0; "";LOOKUP(2;1/(COUNTIF($A$1:A1;Unique) =0);Unique) );"")
//The unique is just a named range, so it doesn't have to handle the full 20000 rows at all times
Oh that would work. I can write some vba code to perform that action :) Ty very much
In trying to find the summation of 1-20 with n^2/Pi^2 I receive a summation of the total being 21.2774 as opposed to the correct answer of 290.7918. The first line of my table showed a correct answer to the formula being 0.1013. I do not have access to the old document to see where my mistakes where made so I am trying top work backwards at this point but have not been successful. Any help would be appreciated.