I have a spreadsheet that will always return varying row contents. So I need to search each row to find the january, february, march, april, may, june, july, etc content and extract the counts from that in the cell with substring. I'm not certain how to do this since the location in the row will always vary. Any ideas? I was thinking vlookup or index or match, or mid/search, but I'm not sure.
Example spreadsheet content, notice some rows have the overallCount and some have overrideCount, and a string like "overallCount 2022/12 35" is the complete cell value, where 2022 is the year, and 12 is the month:
result1 result2 result3 result4
overallCount 2023/01 11 overallCount 2022/12 35 overallCount 2022/01 12 overrideCount 2022/08 5
overallCount 2023/02 1 overallCount 2022/11 34 overrideCount 2022/02 9 overrideCount 2022/01 5
------ (3 rows) OverrideYearOrders overrideCount 2022/10 2 overallCount 2023/01 6
And the rows can have varying column numbers as well if there are more or less orders for each device.
I want to add a formula in result8 column or so, and search to the left of each row, and pull out the counts in columns for Jan, Feb, March, April, May, etc. I was thinking of something like this:
=VLOOKUP("overrideCount 2022/12",H6:AC8517,1,FALSE)
but it's not returning the count. It's returning #N/A
example per-row output on the right:
Overall Override
Jan2022 Feb March April May June July Aug Sept Oct Nov Dec Jan2023 Jan2022 Feb Mar ...
35 11 5
As you can see, not every month has a count that would be found in the row. How would I pull those monthly counts for overall and override out to the right in each row?
Update*
This is the generated table per comment below:
result1 | result2 | result3 | result4 | result5 | Output to right here Overall Jan2022 | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Override Jan2023 | Override Jan2022 | Feb |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
overallCount 2023/01 11 | overallCount 2022/12 35 | overallCount 2022/01 12 | overrideCount 2022/01 5 | 35 | 11 | 5 | |||||||||||||
overallCount 2023/02 1 | overallCount 2022/11 34 | overrideCount 2022/02 9 | overrideCount 2022/01 5 | 34 | 5 | 9 | |||||||||||||
------ | (3 rows) | OverrideYearOrders | overrideCount 2022/10 2 | overallCount 2023/01 6 | 6 |
Example output is shown to right in generated table above, and also example per-row output is given in this before this added update already.
FORMULA:
This formula will get you to where you want pending a couple changes.
Drag and drop the formula for as far as you need it (row and columns).
First formula, totaling overallCount (F2:s2)
=IF(SUMPRODUCT(--IFERROR(SEARCH("overallCount "&TEXT(F$1,"yyyy/mm"),$A2:$E2)>0,FALSE)*SUMPRODUCT(--IFERROR(RIGHT($A2:$E2,LEN($A2:$E2)-(FIND("overallCount "&TEXT(F$1,"yyyy/mm"),$A2:$E2)+20)),0)))>0,SUMPRODUCT(--IFERROR(SEARCH("overallCount "&TEXT(F$1,"yyyy/mm"),$A2:$E2)>0,FALSE)*SUMPRODUCT(--IFERROR(RIGHT($A2:$E2,LEN($A2:$E2)-(FIND("overallCount "&TEXT(F$1,"yyyy/mm"),$A2:$E2)+20)),0))),"")
Second formula, totalling overrideCount (R2:AG2)
=IF(SUMPRODUCT(--IFERROR(SEARCH("overrideCount "&TEXT(T$1,"yyyy/mm"),$A2:$E2)>0,FALSE)*SUMPRODUCT(--IFERROR(RIGHT($A2:$E2,LEN($A2:$E2)-(FIND("overrideCount "&TEXT(T$1,"yyyy/mm"),$A2:$E2)+21)),0)))>0,SUMPRODUCT(--IFERROR(SEARCH("overrideCount "&TEXT(T$1,"yyyy/mm"),$A2:$E2)>0,FALSE)*SUMPRODUCT(--IFERROR(RIGHT($A2:$E2,LEN($A2:$E2)-(FIND("overrideCount "&TEXT(T$1,"yyyy/mm"),$A2:$E2)+21)),0))),"")
EXPLANATION:
SUMPRODUCT
function which multiplies the corresponding elements of the arrays and returns the sum of products.SEARCH
function to look for the occurrence
of the string in the cells using the format
"yyyy/mm", in the cells of the range A2:E2 and returns TRUE if
found, otherwise returns FALSE.IFERROR
function to check for errors and returns
0 if error is found.RIGHT
function and is used to extract the rightmost
part of the cell, starting from the position of the found string -20/-21 (calculation that takes advantage of the date in the column header plus its position in order to autofill). In short, it totals the number after the date.EXAMPLE:
The following formula is the root formula that is just wrapped in an IF
THEN
statement to show empty cells instead of 0's. This formula is written assuming Cells A1:E1 are the 'results' headers, and starting at Cell F1 is the date start of your dates. (Jan22-Feb23 of each category)
SUMPRODUCT(--IFERROR(SEARCH("overallCount "&TEXT(F$1,"yyyy/mm"),$A2:$E2)>0,FALSE)*SUMPRODUCT(--IFERROR(RIGHT($A2:$E2,LEN($A2:$E2)-(FIND("overallCount "&TEXT(F$1,"yyyy/mm"),$A2:$E2)+20)),0)))