I am attempting to add the same cell from multiple sheets on the same EXTERNAL workbook. I would like to increment the sheet reference using the indirect function. I was wondering if there is a way to only reference the external workbook once, and increment the sheet reference. I thought about using the indirect function and summing it, but have no idea how to make sure it references the pathway to the external workbook. Any thoughts?
Note: I also tried this formula, which I found in a similar post, but the Vlookup feature seems unnecessary
=LOOKUP(9.99999999999999E+307,1/SUMIF(INDIRECT("'[BatchEmissions.xlsx]" & H119:H130 &"'!$AA$208"),$A1),H119:H130)
Related
I have some VBA functions defined within my Personal.xlsb that I want to use in the Cell formulae for other opened workbooks. I can use these functions within Cell formulae within worksheets in Personal.xlsb, however I can't seem to use these within other opened workbooks... I get the #NAME errors whinging that it can't find the function name.
I hope I've just done something stupid..
FYI for example, one function accepts some arguments including a Cell, and returns an element from the cell's value at a particular position (say Cell.Value = This.Is.An.Example, the function might return "An") effectively replicating a split()[2]
Cheers
You need to reference functions in the Personal.xlsb with the filename, like this:
=PERSONAL.XLSB!myFunctionName(A1)
If you don't want to do that for each function, you can create a reference in your new workbook's VBE. Go Tools > References and find the workbook in the list.
See a walkthrough of the whole process here: https://www.myonlinetraininghub.com/creating-a-reference-to-personal-xlsb-for-user-defined-functions-udfs
I have vlookups to pull specific data from a workbook and paste into a new workbook in the desired layout. The layout of the first workbook never changes however the name will change when i want to run this on a different file.
My current formula is =VLOOKUP(A3,[Workbook1.xlsx]Sheet1!$B$3:$XFD$7,2,FALSE)
I would really like it to reference A1 instead of Workbook1 so I could then just update the file name in A1 every time I want to analyse a different file. I should mention the Sheet name won't ever change.
I know you have to use INDIRECT but im unsure how it works. I did try =VLOOKUP(A3,INDIRECT(A1),$B$3:$XFD$7,2,FALSE) but then i'd too many arguments and when i removed the $B$3:$XFD$7 i lost the range i was searching in.
Thanks!
With INDIRECT you must create the whole string that denotes the range reference:
=VLOOKUP(A3,INDIRECT("'[" & A1 & "]Sheet1'!$B$3:$XFD$7"),2,FALSE)
One more note, that INDIRECT requires that the workbook be open to function, or will return an error.
I'm trying to create a dynamic reference within a formula; meaning the referenced workbook and subsequent sheet name can be changed and the appropriate data loaded.
I'm aware that a static formula reference could be done as follows:
=SUM('C:\Reports\[SOTDJ17.xlsx]Summary'!C10:C25)
but I want to be able to change the workbook name, and it will reference information from that particular workbook and change the data. The workbook name
is stored in B5 and the sheet is stored in B8. I thought I might be able to use
something simple like:
=SUM('C:\Reports\[B5]B8'!C10:C25)
but it doesn't seem to work. Is there a syntax error or something else I am missing?
(I should note that I am trying to reference a closed workbook)
You'll want to use Indirect():
=SUM(INDIRECT("["&B5&"]"&B8&"!$C$10:$C$25"))
Note that the workbook you're referring to must be open.
This probably isn’t possible but is there a way of referencing a cell that contains a workbook , name , location , tab and range when using Vlookup and Match formulas ?
I have a lot of references to other workbooks but I want to keep track of all the workbooks via one location
Im using the Northwind table as an example
https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCEQFjAAahUKEwilut7YxuXHAhUta9sKHWr-CV4&url=http%3A%2F%2Fwww.exceldashboard.org%2FNorthwind.xls&usg=AFQjCNGnhABr44N7nhF6oa5qtH9U930p0w&bvm=bv.102022582,d.d24
This should be possible using INDIRECT function. Here you can find how to use it to reference other workbook
http://www.contextures.com/xlFunctions05.html
unfortunately the function does not work if the source workbook is closed, but you can use Morefunc addin to use INDIRECT.EXT function which can reference closed workbook. Some info about it here:
http://www.ashishmathur.com/tag/indirect-ext/
http://download.cnet.com/Morefunc/3000-2077_4-10423159.html
I have two workbooks:
WorkbookToUpdate.xls
Workbook_for_20130901.xls
In the first workbook I have the following:
A1 ='[Workbook_for_20130901]Sheet1'!$C5
Now a month goes by and I want to update the first work to reference Workbook_for_20131001.xls without going cell by cell and changing the name of the workbook. My thought was to make the date portion of the workbook name a variable and simply change that variable, but that doesn't seem to be working.
EDIT: I don't want to use Excel's INDIRECT function because I don't want to open the reference workbook.
I found one solution to be Harlan Grove’s PULL function (code can be found here), which works similarly to the INDIRECT function except that it doesn't require the source workbook to be open. The other solution, which actually works out to be faster than the Pull function (its only downfall) is the one I was using originally - Good ol' "find & replace". I thought that that was slow, but after trying the Pull function, it's not too bad.
Another option is by changing the source through excel's Data links, but this doesn't allow you to choose which cells keep the old source and which cells use the new one (in my case, I need the old values as well).