Make a difference Amount from 2 sheet using Macro - vba

I have a problem to be solved. I have data from sheet 2016 and 2017. What I want to do is to make another sheet to calculate the difference money within 2016 and 2017. Please see the image link attached:
Case 1:
Case 2:
What I want to do is simply create the new sheet to compare each column except column A (column name).
and another problem is the number of columns is not fixed. some case may have 1 column to be compared, another might have more. So I guess I need the number of columns to become a variable?
How is the idea to make the total (comparison) sheet using macro that can solve case 1 and case 2? please share your thought!

=INDEX ( Column I want a return value from ; MATCH ( My Lookup Value ; Column I want to Lookup against;0))
Use this formula to get the values in each column, then just subtract the results.

Related

Conditional cell formatting on SSRS pivot table

I created a pivot table in SQL that has report names along the left side, and hours (00:00, 00:01, etc.) along the top. The values in the table are the number of times each report has been used during that hour over the past three months. I've imported the table into SSRS, and I'm trying to create a heat map of sorts. I want to color the cells darker or lighter across the row based on the number in each cell compared to the value of cells across the row (cell that has the highest value will be the darkest colored).
I've tried following this guide to color the cells, but here the entire row is one field, while I have separate fields for each column. Is there a way to achieve this?
EDIT: Added picture of table design, and preview where coloring is done incorrectly
I understand your problem better now...The function uses the min and max values of a column to determine the range from lightest to darkest, then it probably looks at what fraction of the range your actual value is. In your case where you have each column's data coming from a different cell it'll be a pain unless your columns are fixed and even then it's more trouble than it needs to be.
I would suggest the following.
DON'T PIVOT your data in SQL, we can do that really easily in SSRS, your dataset will be simpler too something like
ReportName Hour UsageCount
ReportA 0 8
ReportA 1 4
ReportC 22 18
and so on...
Create a new report and add a matrix with reportName as the row group and hour as the column group. The data values will be UsageCount.
That's it for the report design, then just set the cells back ground based on your function but this time you can pass in Max(Fields!UsageCount.Value) etc as per the sample.
I've rushed this a bit so it if not clear, let me know and I'll post a clearer solution.

Trying to combine spreadsheets in Excel

So, I have a dozen or so columns of data in excel with the headers Company, and Funded Balance. The funded balances change year to year and I want to make a timeline how the funded balance changes for each year for each company.
The issue is that every year some companies don't have a funded balance and some new companies are added in. Is there a way to combine two or more spreadsheets so that the companies will all be listed alphabetically with the data listed by the year? I've attached pictures below to illustrate what I mean:
Column 1:
Column 2:
Finished Product:
I'm fairly inexperienced in VBA, so a step by step solution would be very much appreciated. Thank you!
Firstly, it's important to know that nobody here will write your code for you. I'm afraid that's not what this website is for, and is against the guidelines anyway. There are plenty of great online resources for teaching yourself the basics of VBA - http://www.excel-easy.com/vba.html for example.
Based on your description of the problem, I don't quite understand why you need to write VBA code in order to solve it.
I would:
1) copy and paste all data into a single spreadsheet
2) sort alphabetically by company name
3) use excel's inbuilt "Subtotal" function
4) a dialogue box will appear. The options you want to select are: at each change in company name, use function sum, add subtotal to [funded balance 2005],[funded balance 2006], etc.
This should sum up the funded balance for each year, for each company, in a single spreadsheet.
Here is what I did for a non-VBA solution:
1. Place all of your tables on top of each other
2. Remove the first two rows and any intervening blank rows
from all tables except the first one. It should look like one long table.
3. In the first blank row of the second column put:
=IF(SUMIF($A$3:$A$8,$A3,B$3:B$8)=0,"",SUMIF($A$3:$A$8,$A3,B$3:B$8)) and adjust it
for your correct last row.
4. Drag the formula down (for the neccesary number of rows) and over one column.
5. With all the formulas selected, right click and hold any edge of the selection,
move off and back on again and paste as values only. (You must do this step for it to work properly)
6. Copy and paste the company names.
7. Select the three columns of your new rows and remove duplicates.
Uncheck My Data has headers.
8. Sort the columns.

Find number combination in every row in excel

I have ten column and multiple rows in one Excel sheet with numbers in it. How could I let VBA find all the combination in every row and add the number for all rows.
For example, there is A2:100 and D2:7; C9:7 and F9:100 then it will output a format like 100+7:2
These steps should help get started. Unless you are talking about every possible combination of the number, which is a far more complex topic. You should try to write something and then edit your question to include your code.
Loop the columns For i = 1 to 10
Range(Cells(1, i),Cells(10,i)).Address(False,False) : e.g. A1:A10
WorkSheetFunction.Sum(Range(Cells(1, i),Cells(10,i)).Address(False,False)): 100

Query several ranges and add automatically a column to know the source of each row

I am trying to achieve the following in Google Spreadsheets.
First, I want to query several ranges (in different sheets from the same spreadsheet). I tried a formula like this =query(arrayformula({indirect(E2:E10)}),"select * where Col1 <>''") with no success
In E2:E10 I have a list of ranges. Column F contains a name that describes the source of the value in Column E.
My second problem is that I need to add a column to the output of that query that tells me the origin of each row.
If the sources are ranges of 3 columns by country I need to merge those tables and add that country to each row.
All credits to +Ben Liebrand who helped me out here: https://support.google.com/docs/profile/3464
"I just want to start of by saying that the indirect() function does not work in an arrayformula() function as expected. So you will need to take another approach. I can understand what you are trying to do so I added another TAB in your spreadsheet to demonstrate another approach. I know it was initially a specific design you were trying so I made some changes to what you had. Maybe you can take a look at what I have offered and maybe you can tweak your design.
I know what I am offering is just very rough but you will also notice that I removed the end row specifier from your ranges in the range table.
Don't assume my example to be the final result but I was just trying to show that the range you were trying to use with the indirect() function will not work.
So hopefully this will give you a new idea of how you can maybe handle this.
My formula also adds the country to each of the tables in the output. My formula looks like this
=query(ArrayFormula({
if(len(indirect(regexextract(F2,"\w+\!\w+")&":A")),G2,),indirect(F2);
if(len(indirect(regexextract(F3,"\w+\!\w+")&":A")),G3,),indirect(F3);
if(len(indirect(regexextract(F4,"\w+\!\w+")&":A")),G4,),indirect(F4);
if(len(indirect(regexextract(F5,"\w+\!\w+")&":A")),G5,),indirect(F5);
if(len(indirect(regexextract(F6,"\w+\!\w+")&":A")),G6,),indirect(F6);
if(len(indirect(regexextract(F7,"\w+\!\w+")&":A")),G7,),indirect(F7)
})," select * where Col1 <> '' ")
Hope this is of some help to you"
And I hope is useful to the community
Gerónimo

Deleting data in last cell of data in Column A

I am in need of assistance agian. When my macro works, the number 1 is populated in the final cell in column A because the coding is set up to place a number 1 or 2 depending on other data until the last row of data. Since the last row of data has necessary information in other columns, I wanted to delete the 1 in column A because it is not needed. How do I code to take away the value in the final cell of a column? I've tried referencing to it and if statements. I am sure I am missing something simple.
This is my first macro using VBA.
Thanks.
I just started working with VBA in the last day or two, but I believe the thing you are looking for is: Cells(x,y).End(xldown).ClearContents
Alternatively, I think Range("A1").End(xldown).ClearContents would be equally effective.
But I just started doing this myself, so take with spoonful of salt.