Is it possible to have a "dynamic array" inside MATCH function? [closed] - excel

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I have a large amount of data that was converted to excel recently.
There are just two columns and more than 100000 lines. There is an Image as an example attached here.
The systems are always in the second columns as well as the data, but the loads and the rest of the information are in the first column, as you can see in the example, the "Max load" always repeat, but in the system 001 there is a difference of two lines between it and the system name, but in the second system the difference is three lines. I want to make a table for Max load with all the systems, those are the things I tried:
I used MATCH to find the line where the System name appears, knowing that the difference would be either 2 or 3 lines, I made a table with 2 and 3 in the header and I added it to the line I found and MATCH, it kind of work, but I wanted something better than this improvisation.
I also tried using (where X2= the line where the system name appears)
=MATCH(AA1;OFFSET(A1:X2:0:100:1);0)
Because I thought that OFFSET would return a range to MATCH, but it didn't work.
I want to know if there is a way to find the text "Max load" after the line I found using the Systems' names in MATCH. Basically, I want to know if there is a way of using kind of a "dynamic array" inside MATCH, so I would use it to find "Max load" right after the system that I am looking for.
I don't if this works, but if there is any other way of doing it, I am glad to know about it.
Thanks very much,
Matheus

You can use multiple match with index. Use below formula. It will not care how many rows are different from system to data.
=INDEX(D:D,MATCH(H4,D:D,0)+MATCH("Max Load",INDIRECT("C" & MATCH(H4,D:D,0) & ":C200000"),0)-1)

I think you are overthinking this way too much. If you just have either two or three rows, if offsetting the answer by 1 gives you 0 then use a simple if statement to offset it by 3.
=IF(INDEX(E:E,MATCH(H3,E:E,0)+2)>0,INDEX(E:E,MATCH(H3,E:E,0)+2),INDEX(E:E,MATCH(H3,E:E,0)+3))

Another option
In I4, formula copied right to J4 and all copied down :
=INDEX($D:$D,AGGREGATE(15,6,ROW($C$6:$C$1000)/($C$6:$C$1000=I$3),ROW($A1)))

Another solution would be
=INDEX(INDEX($D:$D,MATCH($F4,$D:$D,0)):$D$200000,MATCH(G$3,INDEX($C:$C,MATCH($F4,$D:$D,0)):$C$200000,0))

Related

Excel Dynamic Array Dynamically placed under another [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 6 months ago.
Improve this question
Use Case: Golf irrigation valve assembly ordering. My boss said:
Hey [piratecheese13], I don't want this part summary to include blanks between [dynamic arrays] and I want to add and remove things to the [precedent to the array]
I have suggested inserting and deleting rows as needed. This is not a solution. She wants to get my list, add and remove rows from the precedent to the array, and send it to a vendor for ordering. Any work she does beyond that, is work she'd rather I do before it gets to her.
I have a neat little Dynamic Array function =FILTER(PartsAndQuantities1,(Parts1<>"")*(IF(Quantities1=0,"",Quantities1)<>""))and it works flawlessly to summarize while removing 0 counts and blank rows. The next step is to insert the same exact formula for a different range without risking a spill if a row is added or a blank if a row is removed
Here's that function in green working as intended with a 2nd function in red manually typed below
Here's what happens if my boss decides to remove a fitting from F9. She sees a blank in the summary a half hour later and assumes there was an error. Again, easily solved by removing a row but that's not an option.
Here's what happens if my boss decides to add a fitting to F12. She sees #Spill! and knows there is an error Again, easily solved by inserting rows but that's not an option.
Things I Have Attempted:
Just stick an & Between 2 functions. I really thought this would work but
this results in F7&F18 and G7&G18 etc as & appears to do work on every line instead of starting after the first FILTER() completes. adding parentheticals around each filter changes nothing. Using + results in value error. Nesting the function within AND() only ever results in Booleans TRUE & FALSE
I've also tried this tutorial on CHOOSE() which handles multiple arrays but only one column and seems like it wouldn't fit
Note: my boss doesn't want to insert lines to solve spill errors, she REALY doesn't want to deal with macro enabled workbooks
Thanks to Scott Craner this was exactly what I needed!
=VSTACK(FILTER(F7:G15,(F7:F15<>"")*(IF(G7:G15=0,"",G7:G15)<>"")),FILTER(F17:G23,(F17:F23<>"")*(IF(G17:G23=0,"",G17:G23)<>"")))

Delete rows between certain values [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 9 months ago.
Improve this question
I'd like make a task for my work way more simple, but in pretty lost since I'm just starting to learn VBA.
What I wanna make easier is a process of removing certaing data from an excel sheet.
Please, see the image, I think it's easier to understand.
I'd like to ask for an input of a market in column P. Let's say the user enters "Portugal". Then it would look for the rows that have that value in column P and delete the ones that doesn't contain information for Portugal (e.g. it would delete rows from 6 to 9 and 21 to 25, but rows 2-5 and 10-20 should not be deleted).
Any good ideas? I think it should be simple somehow but I can't think of any solution.
Thanks
Let me teach you some Excel magic:
Select the entire column "P".
Press Ctrl+G , choose "Special" and then "Blanks".
Click in the address bar and type =P2.
Press Ctrl+ENTER (don't forget the Ctrl button!)
This should fill in the "P" column as you desire and from then on, you can use the basic autofilter.

Excel Drop Down List value used in if statement to calculate totals Dynamically (on the fly)

Hi I am creating a simple Entrepreneurship Aptitude for characteristics you should have and also questions, each with true and false or small answers. The questions are written in a drop down list and the answers (yes, no, maybe, etc) are also in a drop down list.
What I would like to know is how do you use an if statement that would be like:
=if( DropDownItemTwo at B3 == 'yes' at C3) { add 1 to the total }
I attached a picture so you can see my drop down list and page structure.
Beside Question on the right under 'Results' it should add to the total in the blank spot beside it ( hopefully dynamically so the user sees it updating ). This would also happen beside the characteristics title under 'Results'.
Thank you for taking time for viewing my question and possibly answering it, I look forward to knowing how to do this if it is even possible.
Here's something you can do.
Use MATCH() on your source list to output an index value to a
cell.
Based on this index value and the users input (yes/no
etc.) a decision is made.
Take a look at the attached image to get you in the right direction.

Suggestions for building and managing complex functions in Excel [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Far too often, I've got a formula that wraps functions inside of functions inside of functions, and when some new condition requires that I wrap another function around it, I often find myself completely losing track of which parentheses go where, which function applies to which set of parameters and usually find myself debugging a statement for a half hour after my modification produces unexpected results.
What I've BEEN doing is to cut the function into its individual parts in a column...each row representing a single function, and when I'm satisfied that end result is what it needs to be, I copy each piece back into it's respective spot in the preceding cell until I have a completed, and hopefully working, function.
CONSIDER:
=IF((ISERROR((VLOOKUP(D2,$A$2:$A9,1,0))),(IF((D2=(VLOOKUP(D2,$A$2:$A$9,1,0))),0,D2)),E2)
0 =IF((ISERROR((VLOOKUP(D2,$A$2:$A9,1,0))),L17,E2)
TRUE =ISERROR((VLOOKUP(D2,$A$2:$A9,1,0))
0 =IF((D2=L18),0,D2)
the =VLOOKUP(D2,$A$2:$A$9,1,0)
It'd be great to be able to document inline or have something similar to a VBA popup ion which to edit formulae, but since that doesn't exist, I'd be interested to know what other techniques for effectively building complex functions you've found helpful. Thoughts?
Normally, I split formulas over multiple columns - each column then contains a part of the formula. I never stuck them into a single cell - while "cleaner" they are impossible to debug.
If the columns are to much, I build a "admin" sheet, which can be hidden.
I dislike the excel formula editor in general - while I really like the power of the formulas, the editor is a pain to use.

EXCEL spreadsheet -- matrices product term by term [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I have two table with figures with dimension 9*9. I would like to compute
sum(aij*bij) over j
with obvious notation with one formula only.
For now, I am first computing a 9*9 table filled with aij*bij in each cell, and then in a new column I am doing a sum over columns of values in this 9*9 table. It is two step. I would like to do that in one step to save space and time.
What is syntax ?
Thanks
You should be able to use SUMPRODUCT formulas to sum products over columns.
If your original arrays are in ranges A1:I9 and K1:S9, then the first entry in your result array would be =SUMPRODUCT(A1:I1, K1:S1). Copying this formula down for eight rows more gives you the rest of the result elements..
Summing the products over all elements would be even easier: SUMPRODUCT(A1:I9,K1:S9)
Another approach here - use array SUM formula: =SUM(A1:I1*K1:S1). However, as you type it into cell, press CTRL+SHIFT+ENTER instead of usual ENTER. As a result, this formula will be displayed as {=SUM(A1:I1*K1:S1)} - brackets indicate that this is an array formula. However, they should NOT be manually added.
#chuff answer is absolutely correct and I upvoted it, but using array formulas has at least 1 advantage: with them you may do much more magic tricks which are not / hardly implemented using SUMPRODUCT or any similar functions.
Please also see Remark section there: http://office.microsoft.com/en-001/excel-help/sumproduct-HP005209293.aspx
Use this sample file as a demo for both solutions: https://www.dropbox.com/s/0xr8iif920uqpqf/SUMPRODUCT.xlsx
Choose any solution which is more suitable for you! (:

Resources