Forum Discussion
Formula help please
Hi Donna,
As usual, that could be done by several ways. If you attach small sample file not to to construct your data structure from scratch that will be easier to answer.
here's the second sheet
- SergeiBaklanSep 22, 2017Diamond Contributor
Hi Donna,
The formula is in attached files, if you open them and save Production Sheet in some folder full path substitutes, thus works with closed file.
Formula is well-known, i'll find the link some later with detailed explanation how it works. Please note that's array formula, that means you shall use Ctrl+Shift+Enter to enter it.
For Box# it'll be
=IFERROR(INDEX('[Production Sheet Template.xlsx]Sheet1'!$A$4:$H$33,SMALL(IF('[Production Sheet Template.xlsx]Sheet1'!$E$4:$E$33="X",ROW('[Production Sheet Template.xlsx]Sheet1'!$A$4:$A$33)-ROW('[Production Sheet Template.xlsx]Sheet1'!$A$4)+1),ROW(1:1)),3),"")put it in A8 and drag down. Latest number 3 in the formula is the column number in Production Sheet, for other fields you shall change only it.
Important: array formulas don't work within merged cells, so i unmerged them in DPR. In general, better never to use merged cells, you have only issues with them.
- SergeiBaklanSep 23, 2017Diamond Contributor
Hi Donna,
Step by step explanation of the pattern is here http://www.exceltactics.com/make-filtered-list-sub-arrays-excel-using-small/4/ (not only, at many other places). In addition here are some comments within your formula
=IFERROR( INDEX('[Production Sheet Template.xlsx]Sheet1'!$A$4:$H$33, N("range to find is entire template from row 4 to 33")+ N("could be change on dynamic or take with the gap, e.g")+ N("change 33 on 333 everywhere below")+ N("SMALL returns the first row number there the X is found")+ N("for the first cell in destinitian list, defines by ROW(1:1)")+ N("when the copy down that will be second position ROW(2:2), etc")+ SMALL( IF('[Production Sheet Template.xlsx]Sheet1'!$E$4:$E$33="X", N("IF returns array with row numbers where X is found")+ N("and zeros otherwise. Here we make 1 for the")+ N("first row in the range")+ ROW('[Production Sheet Template.xlsx]Sheet1'!$A$4:$A$33) - ROW('[Production Sheet Template.xlsx]Sheet1'!$A$4)+1 ),ROW(1:1) + N("counter for the SMALL - 1,2,..") ),3 + N("number of the column in template range from which")+ N("we pickup data") ),"" )Above is in the cell A8 in the attached file, for the rest i removed comments.
Result shall look as
- SergeiBaklanSep 22, 2017Diamond Contributor
Donna, thank you. To clarify
- Do you keep all your workbooks opened updating the data?
- in DPR you have few sections, data to them goes from different workbooks?
- Donna HernandezSep 22, 2017Copper Contributor
The DPR will only open at the end of the Day, and I only need to fill the top portion of the DPR sheet. But i want the production sheet to link to the DPR sheet