Excel Filter : sheet comparison - excel

Excel formula : Suppose we have sheet 1, sheet 2 and sheet 3
In sheet 3:
Pick entity "A1" from sheet 1
Search in "G" column of sheet 2 or (Find All)
Past all rows which contains the same entity to sheet 3

Your sample spreadsheet shows some things that add a lot to your original posting. Column B on the All tab is pretty weird, with strings like $500 $200 $300 in a single cell. Is there no way to separate that into three numeric values across multiple columns? Anyway, assuming that can't be changed ...
The sample spreadsheet shows a series of worksheets each of which extract a subset of rows from the All worksheet based on a sub-string search. A simple solution would be to use pivot tables.
Add column headings like Name and Value to the All worksheet
Select the whole data table in the All worksheet
Insert > PivotTable and choose the "$100" worksheet as the
destination
On the "$100" worksheet, drag both Name and Value to the rows of the
pivot table
Maybe need to change pivot table settings to turn off subtotals and
set Report Layout to Tabular Form
Set the Value filter to Label Filters > Contains > "$100"
The main limitation of this approach is that you have to manually set the substring being searched for each time. Pivot tables do not allow you to include a cell reference in a filter condition.

Related

VBA Sort columns by one column in different worksheets

I have an excel file with 9 Worksheets, each worksheet has A different amount of columns and A dynamic amount of rows.
When I activate A worksheet I refer to it with A variable called "WS" as Worksheet type.
The one thing all worksheets has in common is A column with the header "Brand" which is always column "B".
Column "B" always has data in it but other columns have full and empty cells in them.
At the moment what my code does is adding new products at the first empty row of the worksheet I chose.
I want to add A sort to it, so after every time I add A product to one of the worksheets it will then sort the full table ascending in that worksheet by the "Brand" column (column "B"), I need that the full row will be sorted according to the data in column "B".
For example:
I have A worksheet named "Storage".
I added A new item - the item has 8 columns of data in the next order:
Barcode, Brand, Model, Lighting, Type, Size, Speed, Price
Now I want to sort it ascending by the name of the brand in column "B".
After the sort, considering that the data was entered to row 50 and the last row that has the same brand name is row 25, then I need all the data from row 50 to be inserted in row 26.
How do I do that?
I hope that what I explained is easy to understand and that someone would be able to help me.

Summing values into new sheet for unique dates and unique names

So here is my scenario, I already have a sub that extracts unique names and unique dates from Sheet 1 into Sheet 2 creating the layout of unique names as rows and dates as headers. In Sheet 1 is the master data. For each day of the month, there are different work shifts for the same person. For example...
D Gray worked 3 different shifts on 6/26 so i need the values in Hours summed and then populated into Sheet 2 under the respective 6/26 date and so on and so forth for the other crew members. The template so far is..
Result of New Code
I can't see the image, but I understand your concept so hopefully you can apply the below to your case and use this as your answer.
Say the data in Sheet1 is columned as Date, Name, & Hours worked for A,B, & C respectively (for only 100 rows), your SUMIFS function in sheet2 should be as follows:
=SUMIFS(Sheet1!$C$1:$C$100,Sheet1!$A$1:$A$100,B$2,Sheet1!$B$1:$B$100,$A2)
This as you drag it down will hold the first column in sheet2, the names, and the first row in sheet2 the dates, summing up all the hours worked for all the days of the month.
If you use table formatting you can simply this further and the formula will resize with the table since it would use named ranges. I can help you with that as well if you'd like.
To have VBA add this formula to your spreadsheet use the following:
Dim RangeFormula As Range
Set RangeFormula = Sheet("Sheet2").Range( [input cell range here])
RangeFormula.Formula ="=SUMIFS(Sheet1!$C$1:$C$100,Sheet1!$A$1:$A$100,B$2,Sheet1!$B$1:$B$100,$A2)
You can change the name from RangeFormula to whatever suits better, you can put the sheet name where Sheet2 is but make sure you put the cell range in the range part with " surrounding it. To reference this as a table you'll need to use the ListObjects("Table Name")

Equivalent of SELECT FROM WHERE on Excel

I have a dataset on an Excel table in which each line has an Id and several other columns.
in some others sheets I need to select some columns depending on the given id.
I am using Excel 2016, so I've tried the "dget" function but it seems not to be the best solution.
For the dataset it's close to this:
id Name birth date gendre
1 Sara 10/05/1997 F
2 Edward 01/08/1994 M
3 Anna 06/10/1993 F
and for getting data I use
=DGET(Table1[#All];Table2[[#Headers];[Name]];A1:A2)
in each column (A1:A2 here is for id and 2)
id Name salary
2 Edward 5000
and then I add some new columns that I don't want them to be in the first dataset.
This solution works only for the first row since it requires a the Criteria (last field in DGET function) to be a range, the official definition:
Criteria Required. The range of cells that contains the conditions that you specify. You can use any range for the criteria argument, as long as it includes at least one column label and at least one cell below the column label in which you specify a condition for the column.
Starting from the second row the Criteria is not a range anymore it is like "A1;A3" (for the 1st row "A1:A2")
Is there any other solution or alternative to do so?
Select a cell in the Table, click Insert>PivotTable, then drag the ID, Name, BirthDate, and Gender fields into the ROWS area. Then add a Slicer on ID, Name, and Salary by clicking in the PivotTable and selecting Insert Slicer. Then choose the ID/Name/Salary values you want. To make multiple selections, hold down Ctrl or click the MultiSelect button of the Slicer.

Column matches from two seperate worksheets

I am in need of your assistance with Excel.
I have an Excel spreadsheet with two worksheets, Shee1 and Sheet2
In Sheet1, I have the following columns
System
Table
Field
Mapped?
In Sheet2, I have the following columns
System
Table
Field
The same columns in both sheets except for the mapped column in sheet1.
How could I populate Sheet 1.Mapped with text Y where
Sheet1.Table and Sheet1.Field
match
Sheet2.Table and Sheet2.Field
Could this be done with a formula please? I am afraid I do not have access to VBA or to run macros due company policy.
Many Thanks.
If You want to populate data in sheet1.Mapped where (Sheet1.Table and Sheet1.Field)=(Sheet2.Table and Sheet2.Field) then try below formula in sheet 1.Mapped:
=IF(AND(Sheet1!B:B=Sheet2!B:B,Sheet1!C:C=Sheet2!C:C),"Yes","No")
Column B = Table & Column C = Field

Is it possible to mimic excel rows in a different sheet?

So in 'Sheet 1' I have 2000 rows of information which I add a new column to every day, I want to have only a subset of the rows of 'Sheet 1' in 'Sheet 2' which update themselves as I put new columns into 'Sheet 1'. Is this possible to do using inbuilt excel functions?
If you want to select a set of particular rows and you know their row numbers, put their row numbers (1,5,8,11,12 ...) in a separate 1 column range and name this range e.g. "RowNumbers"
Then use following normal non-array formula which you can drag downwards and rightwards.
= IF(INDEX(RowNumbers,ROW(A1)+1)>0, INDEX(NamedRange,INDEX(RowNumbers,ROW(A1)+1),COLUMN(B1)+1),"")
You will probably need to adjust the +1 parts, depending on whether your values start at row 1 or 2 etc.
Basically the Excel INDEX formula does what you need - copies the value from another sheet or range by given row and column numbers.
Otherwise you can use following array formula (Ctrl+Shift+Enter) to select filtered values from columns based on multiple criteria:
= IFERROR(INDEX(NamedRange,
SMALL(IF((INDEX(NamedRange,,1,1)=1)*(INDEX(NamedRange,,2,1)="A"),
ROW(NamedRange)-MIN(ROW(NamedRange))+1,""),
ROWS(C1:$C$1)),3,1),"")
Here is an example data sheet (Sheet1)
Here is the filtered data output sheet. You should enter the array formula in the first row and drag downwards to fill expected output range. In this example I select only rowns that have values 1 and A ind filter1 and filter2 columns.

Resources