Oct 26 2022 02:34 PM
This is a 2 steps request.
First, I want to select and input a list of addresses (of values, not text) into a cell like this a3,b5,d55,k20 and have it display exactly like that. Not as a value or a formula.
Next in another cell, I need to calculate the MAX value in that list.
Do any of you see a simple way to do that?
jgb
Oct 26 2022 04:21 PM - edited Oct 26 2022 04:24 PM
@JG_Berson This is pretty simple but does require Excel 365 (and TBH I don't recommend this and would recommend re-evaluating what you are doing and see if there is a 'better' way):
=LET(in,TEXTSPLIT(A1,","),REDUCE(0,in,LAMBDA(p,I,MAX(p,INDIRECT(TRIM(I))))))
A1 is the text based list of cells
this assumes min of 0 but if all the numbers might be negative then change the '0' after REDUCE to something like -9.9E99
Oct 27 2022 08:26 AM
@mtarlerThanks and YIKES!!!
I've done some pretty complex formulas in the past, but this is a new one for me.
No doubt it would work, but I can't test or use it as I only have EXCEL 2013.
I will heed your advice to find a different way to display that list.
thanks again
jgb
Oct 27 2022 08:37 AM
Oct 27 2022 08:56 AM
@Patrick2788 I agree and suggest as much also.
@JG_Berson as for more simple formula it turns out INDIRECT might work on an array (it originally failed for me but I think that was because I had to add the TRIM). So here is a more simple formula but still won't work for you:
=MAX(INDIRECT(TRIM(TEXTSPLIT(G1,","))))
but using the old trick to go from text to array may work for you but you will probably have to enter the formula using CTRL-SHIFT-ENTER:
=MAX(INDIRECT(TRIM(MID(SUBSTITUTE(G1,",",REPT(" ",LEN(G1))),(ROW($A$1:INDEX($A:$A,LEN(G1)-LEN(SUBSTITUTE(G1,",",""))+1))-1)*LEN(G1)+1,LEN(G1)))))
I'll cross my fingers for you.
Oct 27 2022 09:22 AM
Oct 27 2022 11:21 AM
This is what I want to do. I only started this sheet yesterday and I am just testing functions at this point.
I am creating a "Critical Path" spreadsheet. I do have a lot of experience with CPM and a lot of, but dated, experience with EXCEL. Nothing out there does what I want, or is corporate based, extensive and way too expensive for what I need to do.
In CPM, or more accurately in this case, "Precedence Method" all work on a project is divided into definable "activities" that are linked in a logical chain and network fashion. No activity can start until all preceding linked activities have completed.
So, with a list of preceding activities and the date they each finish on, the start date of any following activity can be determined, and that start date is based on the completion date any of the preceding linked activities that have completed. (That's the basic theory, and it gets a bit more complex than that.)
That date is called the "Early Start". Add the duration the activity is expected to take, and you get the completion or "Early Finish" date, and that date feeds the next linked activity's early start date, which is the day after. If there is more than one preceding activity, the latest early finish date determines that early start date.
So, in my spreadsheet, I have a cluster of cells for each activity. They contain, among other things, the activities ID, which in my case is a cell reference, the text description, early start date, duration, early finish and a list of preceding activities.
It is the list of preceding activities and the early start that is the focus of this problem.
To keep it simple, the Activity ID is its Early Finish Cell address. I just want to simply type that list in without framing it as a displayed formula.
Like this, in cell, say D5, type in A3,M7,V66,R3
Then in the Early Start cell, the basic formula would be =MAX(0,D5)+1 which gives me my Early Start date.
I will probably need another cell to convert the list of Activity ID's to cell addresses.
Show me how to include here the spreadsheet, and I will post it.
jgb
Oct 27 2022 11:39 AM
Oct 27 2022 12:26 PM
Oct 27 2022 01:49 PM - edited Oct 27 2022 01:50 PM
so I first agree that you might want to re-look at MS Project or other project management solutions.
That said, in excel I could see you doing a solution by having a list of all the tasks/sprints and what the next task ID would be. Then you might be able to use LARGE() to find the largest something like [range of end dates]*ISNUMBER(SEARCH([this task ID], [range of next tasks]))
here is a snap shot where I tested it:
Oct 27 2022 02:32 PM
Oct 27 2022 03:06 PM
Oct 28 2022 09:58 AM
Thanks. Good news!!! I found a solution.
Kept me up most of the night and after 2 hours testing this morning, got it to work.
It is not exactly the way I originally wanted, but it gives the exact same result I wanted in one cell.
Originally I wanted to simply type a list of cell refs as text like this A3,T5,G44 then in another cell calculate the Early Start as a max(list)+0 value of that string. The problem was converting that text string into actual cell refs for the MAX() function. Wasn't going to happen.
My eureka moment (4am) was to put the cell refs directly into the Early Start cell and calculate the truncated text string in the list cell. In other words vice-versa to the original plan. I had to enter that list anyway, so which cell it went into didn't matter.
I ended up with the Early Start cell being the input cell as a MAX() formula.
That cell would be =MAX(A3,T5,G44)+1 in cell ES
Then the list was a nested text formula of FORMULATEXT(ES) then MID(that,6,100) to strip off the "=MAX(" (100 is arbitrary) then finally =SUBSTITUTE(all that),")+1","",1) to strip off the trailing ")+1".
=SUBSTITUTE(MID(FORMULATEXT(ES),6,100),")+1","")
and that resulted in converting formula =MAX(A3,T5,G44)+1 into text A3,T5,G44
Now I have to do something similar to calculate the Late Finish, and that's gonna be tougher.
Thanks again for the help.
jgb
Oct 28 2022 01:03 PM