How can I make a custom fill handle pattern? - excel

I have a column A3:A71 I wish to populate with values
=COUNTIF(B3:B71,B3)
Where the second argument is incremented with every cell.
Obviously I don't want to copy this function every time, so I was hoping that fill handle would help me. However although it correctly increments the second argument of COUNTIF, it also increments the first one. Even if I correctly populate the first two or three cells in the column A3:A71 with the values
=COUNTIF(B3:B71,B3)
=COUNTIF(B3:B71,B4)
=COUNTIF(B3:B71,B5)
when I drag down from the bottom right corner, I get the function:
=COUNTIF(B6:B74,B6)
=COUNTIF(B6:B74,B7)
=COUNTIF(B6:B74,B8)
=COUNTIF(B9:B77,B9)
=COUNTIF(B9:B77,B10)
=COUNTIF(B9:B77,B11)
Can anybody please tell me how can I force the first argument to stay the same while the second one is increased correctly?
I am using MS Office 2011 for MacOS, but a Windows solution would be just as helpful.

Please try:
=COUNTIF(B$3:B$71,B3)
There are further details at OwenBloggers.com including a table:
and mention that other terms are “absolute cell reference” and “locking”.

Related

Is there a way to get the the cell coordinates as an output

I am currently trying to build a sheet that allows the user to enter a list of stuff they need to do, and what day they need to do it by. Once they enter the day the need to do it by, which is not formatted as a date, but a simple number, it will then appear on the calendar. The issue I am running into is that it seems really hard to get the coordinates of a cell as an output. I am currently trying to use this line
'''=if(MATCH(J4,D5:D29),OFFSET(MATCH(J4,D5:D29),0,-2,1,1), "free")'''
but it keeps saying "the argument must be a range. Please tell me if I am missing something, or there is a way to do this better.
EDIT: The box that has the 2 and #N/A is where the data from the left side is supposed to be going. Since the date is 2, the word "heating" should be showing up in the cell.
Use simple XLOOKUP() function like-
=XLOOKUP(J$4,$D$5:$D$9,$B$5:$B$9)

VLOOKUP function not returning correct value, Index Match also incorrect. User Error?

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

FIND() formula to include "implicit intersection operator" change required

Over the weekend, my work laptop did a restart and Microsoft gave me the perfect gift in Excel, it introduced the implicit intersection operator which has completely messed up my world, literally every formula has gone crazy.
I've checked every link I can and cannot work out how to correct even the most basic formula. I would like to ask about this one so I can at least make some progress forwards.
=FIND('Value Definitions'!C3,'User Interface'!K:K) was my formula that was worked forever.
The explanation of this formula is to flag all value definitions that have been used within text of all rows in the user interface column K.
When Excel asks me to correct the formula, it rewrites it as =FIND('Value Definitions'!C3,#'User Interface'!K:K).
This results in #VALUE rather than a number of where the first occurrence was found. If I remove the # then I get #SPILL!.
Just to reiterate the purpose of the formula, I identify which phrases exist in an interface that come from the value definitions worksheet, irrespective of the number value I get (character count of first occurence), I just want to identify that it exists at least once. Then I can use this flag to lookup all related value definitions to be included on the user interface.
Thanks for your help in advance.

Excel - Index/Match to Parse Column Data Until Desired Value Shows

I'm not sure the best way to word this question, but basically I have a big list of different names and IDs that will be visited multiple times with data pulled from a Survey123 form. One of the fields is asking if a part has been repaired, which will be no a maximum of 3 times before turning yes.
I'm using Index/Match to keep track of the dates the visits took place, but if I try it for the repair column it will always just return the first value in the repair column. Is there a way I can have it parse all the repair column values and change the result if it is Yes?
Here is a visual of what I'm trying to achieve, using Index/Match will stop at the first result rather than cycling through.
You may try below formula. If any of visit has Yes in repaired column then it will return Yes or will return No.
=IF(SUMPRODUCT((A3:A5=F3)*(B3:B5=G3)*(D3:D5="Yes"))>0,"Yes","No")
Or you can use XLOOKUP() with Search_Mode option -1 means search last to first order.
=XLOOKUP(1,(A3:A5=F3)*(B3:B5=G3),D3:D5,"",0,-1)
You can use FILTER to achieve this
=FILTER(C2:C4,(A2:A4=F4)*(B2:B4=G4)*(C2:C4="Yes"),"No")

Excel: Returning values from a range that haven't already been specified

I have a dataset in long format with a unique ID representing people at different points in time. I already have a list of ID's with the first code, but would like to add a column for the second and third code, if available.
An example of the data, with what the output should look like at the bottom
I already have the first two columns in this example. I was thinking I would specify that I want to look at the values that are not the first code, and output a different code in the range if available, otherwise it returns blank. I also want to be able to use the command with few modifications in a third cell for a third code, again as long as it exists.
Ideally this can all be done without the use of vba, however if that would be easier, then by all means go ahead. Any solution not necessarily following my logic map are appreciated as well. Thanks in advance for the help!

Resources