I have an excel sheet that was provided to me to implement a business flow.
I see a formula in a column as below:
=[#[Inventory]]
I understand that this copies data from other column with heading 'Inventory'. But when I try to mimic this on a different sheet for a different column , I don't get any values. I'm I missing something here.
It's a function of structure reference.
# means ThisRow.
You could learn more from:
https://support.office.com/en-us/article/using-structured-references-with-excel-tables-f5ed2452-2337-4f71-bed3-c8ae6d2b276e
The =[#[Inventory]] works only on columns, which are part of Excel Tables, created either from the Ribbon, through Ctrl+T (or through vba):
This style of formula works with Excel listobject tables. The # symbol refers to the current row of the specified column. There's a good intro guide here
Related
I have one excel file in which I have multiple sheets with financial statements from different companies (called Databas.xlsx). The structures of these sheets are identical. Then I have another excel file that I wish to use to analyse these financial statements using charts. Thus, I must get data from the different sheets into my analysis file. Doing this from one sheet is no problem, as I can simply create a chart and mark the data I need from this sheet, so that the chart data range would be something like this:
=[Databas.xlsx]Kopparbergs!$C$3:$K$3
where "Kopparbergs" is the sheet name in Databas.xlsx. The problem I am facing is that I want to be able to change the sheet name that is put into this formula by writing the name in a cell (because that would enable me to change multiple charts at once). So just to clarify, in the formula written above, I want to be able to change the word "Kopparbergs" by writing text in a cell. If that is not possible, how would I accomplish this? That is, how do you create a chart that can change its content depending on a text in a cell that corresponds to a sheet?
So rather than using Indirect I think you need to use two named ranges for referencing when using a Chart.
This previous answer looks like a good guide to implement (not sure about etiquette of just copy & pasting previous answers so I'll just provide the link):
Dynamic chart range using INDIRECT: That function is not valid (despite range highlighted)
I am not sure if this is too ambitious. Currently I'm generating a bunch of pivot tables through our server (I won't go into detail) but our main stocktaking spreadsheet references these generated pivot tables weekly and pulls their figures through.
i.e using code ='C:\Users\ITS1\Documents\Test\Establishment\190303[Stocktake.xlsx]Data4'!$D$3 which is simple enough - just referencing whatever figure is in that cell on the pivot table.
There is a particular bunch of figures on some pivot tables each week called 'Redemption' which, depending on what other kind of sales an establishment generates, shift to different cells each week. So I can't reference them like other figures which are always fixed to the same cells on every generated pivot table.
Is there a way I can reference the pivot table by the keyword 'Redemption' and take the figure from the cell directly next to it which is the actual figure we need to record?
While this isn't hugely urgent, it would be quite handy. These figures can just be manually entered but just trying out some automation to eliminate my human error :)
If you don't want to have to open the external workbook, this approach might be feasible:
In the external workbook, create a helper sheet that uses a formula to look up the Redemption field value. This could possibly be done with a GetPivotData formula. The exact formula depends on your data and without seeing that I can't write it.
The idea here is that the helper sheet and the location of the cell on the helper sheet does not change. When the pivot table is refreshed, the formula calculates the result.
In the other workbook you can now use an absolute reference to that helper sheet and cell and don't need to open the external file to retrieve the value.
I’ve got Google form survey data I’d like to analyse. In my example doc,
Sheet 1 contains the survey responses and sheet 2 references the data in sheet 1. Sheet 2 is where I am using this array formula under the column called Behaviour:
=ArrayFormula(if(len(A3:A),if(Sheet1!Question3="Yes","Excluded ",)&if(Sheet1!Question5="Yes","Arrested ",)&if(Sheet1!Question6="Yes","Alcohol ",)))
The issue is that I need to be able to download this Google spreadsheet as a Microsoft Excel doc but whenever I do that, of course the Google spreadsheet =ArrayFormula() function is not supported in Microsoft Excel.
My question is how could I replicate this array function’s behaviour using another method in Google spreadsheet so that I get the same result when it’s downloaded to Microsoft Excel?
What I’ve been able to find in the forum so far are questions on how you can manually copy formulas to multiple rows in Excel. The trouble with these methods are that the user has to do it by either clicking and dragging the bottom right-hand corner of the cell or by using shortcuts. I’d like my process to work so that the user doesn’t have to manually do anything.
Many thanks in advance.
Excel support array formulas but it does that in a different way than Google Sheets.
Instead of an ARRAYFORMULA function, Excel requires that the formula autor/editor, first selects the area to which the array formula result should be extended, then enter edit mode and press CTRL+SHIFT+ENTER. See Create an array formula that calculates multiple results on Create an array formula
It is possible to replicate the Google Sheet ArrayFormula in MS Excel using the OFFSET() formula even if it's not as simple as the ArrayFormula function.
The full documention of the function can be found here.
https://support.office.com/en-us/article/OFFSET-function-C8DE19AE-DD79-4B9B-A14E-B4D906D11B66
A quick example
Google Sheet
= ARRAYFORMULA(SQRT(Sheet2!A:A))
=> This will copy the full column A for the Sheet2 taking the square root of each value.
Excel Version
= SQRT(OFFSET(Sheet2!A1,0,0,COUNTA(Sheet2!A:A),1))
=> This will take a reference of the column, but we have to manually specify the height and width of the reference before taking the square root of each value.
You may very well discover that this is not possible; at least not in every case. There may be a few formulae which have the exact same definition in Google sheets and Excel. however, it's not guaranteed to work in general.
Some more detailed information here: Sheets vs Excel forumlae
I have a spreadsheet where I am populating a cell in a worksheet with a drop down list using Data Validation, with a Named Range as the source. The Named Range is based on a worksheet called Services, where the data starts in the second row, the first row being headings.
This works fine where the name has been defined using the following formula:-
=OFFSET(Services!$A$2,0,0,COUNTA(Services!$A:$A),1)
However, the list is not alphabetically sorted, and all the formulas I have come across on the internet have not achieved this for me.
One site offers a solution which says
If you can handle extreme formulas, here is an all-in-one formula…
However, when I attempt to paste this in to the “Refers To” box when defining the name, it won’t paste (no error message). At first I thought this was because the formula was too long (about 360 characters) but I understand Excel 2003 should handle formulas that are 1024 characters. So I am a bit stuck and would appreciate any suggestions.
I am working for an organisation which is still using Excel 2003, with no immediate prospect of an upgrade.
I think you may be hitting a version limitation (works in Excel 2013) but in any case that name may not help because Data Validation requires a delimited list, or a reference to a single row or column and I think your formula does not provide that.
However, you should be able to create the sorted version with your formula and then name the range that populates - using that Name for your List Source: in Data Validation.
I have an excel file that is a SEO report of a website. But the tool that generated the report included everything under the sun and most of it is junk. I want to filter out the important info such that I keep only records in the first worksheet that correspond to a record in a second worksheet.
Basically I want to keep all the records in the first sheet where the URL matches a URL in the "good url" list found on worksheet2.
Is there some cell formula I can use or macro or something???
Please explain how to implement the solution as it’s been a while since I used excel in any advanced way.
See the attached file for reference.
Thanks
I would recommend using a VLOOKUP function with an autofilter. The VLOOKUP function helps "link" data in two different sheets. See my explanation on this question.