Excel/VBA - Chart range based on nonempties of column - excel

Consider a list of dates showing in column A, with associated values in column B. Some of the values in column B are shown, some are not (i.e. "" resulting from an IF statement).
What are my possibilities to create a chart which automatically adjusts it range to only contain the dates in A and values in B, based on the non-hidden values in column B (ie which are NOT ""). It should be able to recognize if any changes happen to values in column B and ajust accordingly.
For instance (no headers), B1 is "", B2:B3 has values, B4 is "", the chart should only be based on row 2 and 3.

In Excel you can use a return value of NA() rather than "" to ensure a point isn't plotted. You would need to consider if also implementing something similar for the axis (so hide associated Date). Below is first google search that came back for me.
See here: hiding data points

Related

How to group multiple column values and find max value of another column

I need to know based on the attached Excel, how to group column A and B which have duplicate values and return the MAX value/row of another column in this case column C and D.
What you describe can be done with a simple Pivot Table.
Drag A and B into the rows, drag C and D into the Values and then change the value field settings to show the Maximum value.
You need to add column headers to the data, so you can identify the data by column name. It's not clear from the screenshot "A", "B", "C" are the Excel built-in column letters or your data headers.
You also need to clean up the data since it looks like the numbers are stored as text. You will not be able to perform any calculations like "maximum" unless you convert the text back to numbers.

Matching Excel Columns

Would really appreciate some help. Pretty basic problem. In column A I have SSN's, Column B I also have SSN's and in column C I have dates associated with the SSN's in Column B. The problem the 2 different SSN's columns don't match and I need them too. Problem 2: The dates in column C need to stay associated with the same socials in column b.
This is fairly simple.
Either in a new sheet or in separate columns from your original data, create create a column that represents the same column as A or the original SSN's, this can easily be done with a simple reference formula =A1 and autofilled down. You can do the same for the second column that is a copy of the first SSN.
For the third column just use a simple INDEXand MATCHformula like this:
=INDEX(C:C,MATCH(E1,B:B,0))
This formula I have the new data in Columns E-G with this formula in column G.
What this formula is doing is looking for the value of E1 within column B (looking for the value of the first SSN within the span of the column B). It will then grab the date value from column C associated with the found value in B. This will not work if multiple of the same SSN's are found within column B.
Note: You have to set the formatting of the formula cell as a Date

Find the difference between data in 2 columns in Excel

I have 2 sets of data. I put it in Excel e.g. column A and column B. Now I want to know which data from B is part of column A. I run this formula =IF(COUNTIF($A$1:$A$327238,B1)>0,"Exist", "Nope")
Then I 'filter it and look only 'Exist'. Based on that I know that all data in B that has label 'Exist' is part of column A
Now I want to know opposite i.e. which data from A are part of B. For that reason I use the same formula but I replace the data in columns i.e. data from B now in A and vice versa.
Then I randomly verify results.
For case 1 it looks it works fine but for second case it looks it's not accurate.
My assumption: should it work in case 2 as well ( maybe I just was not very accurate in some way ) and I should expect it to work?
Thanks
In cell C1 (assuming your data starts from 1st row) type the following =IF(A2=B2,"equal","no"), and then populate the same formula to the last row where there is still data, so that for row N, your formula in column C is =IF(AN=BN,"equal","no"). After that you will just need to count the cells with value "no" to know the differences. Sorry if I didn't get the question correctly.
Ok, assuming that the two sets of data are in columns A and B (they might be of different sizes), and the last rows of data are L and M respectively, click on D1 and type the following: =IFNA(INDEX(B$1:B$5,MATCH(A1,B$1:B$5,0),1),"Unique"). Drag down to apply this formula on D1 - DL. That's it, you have the duplicate elements. Since the duplicate elements are the same in both columns - A and B, you don't need to repeat this for column B. Note, that for all the unique elements the corresponding rows of column D have the word "Unique", so if you want the unique elements, you can just get the elements from A with the mentioned row numbers:
Just select any column's first row cell and type the following formula: =IF(D1="Unique",INDEX(A$1:A$L,ROW(D1)),"Duplicate").

Is there a way to delete cells if their value is contained in another column?

I have a spreadsheet with multiple columns with a few thousand rows and I would like to find the cells that are common across all columns. Is there a function that I can use to check if a cell value exists in a set of cells/column?
To find out if a value exist in all columns but in any row you can put this equation in the next open column and drag down:
=AND(MATCH(A1,B:B,0),MATCH(A1,C:C,0))
This assumes you have data in column A, B & C and the equation is in column D. now you can sort on column D for unique values.
Depending on your data type you might get an error. If that is the case try this:
=AND(IFERROR(MATCH(A1,B:B,0),FALSE),IFERROR(MATCH(A1,C:C,0),FALSE))

Count values in groups

I have a table with student IDs separated in groups. I need a handy way to count the total number of students in each group and populate it after the last row of each group (marked with ??)
Currently I just enter =COUNT() and then manually figure out the top and bottom borders of the range for each group. Not convenient at all.
I was thinking that a possible solution could be one of the following:
A some kind of pivot table permutation. I failed on this one.
Excel Data->Outline->Subtotals functions. Again, fail. It keeps creating new rows in my table.
A universal formula that can be pasted into each ?? cell. Not the most graceful solution, but still would do.
A macro. As a last remedy if nothing else works.
The following steps will calculate the subtotals while preserving the structuring and formatting of your worksheet.
Put this formula in cell C1 and copy the formula down the column:
=IF(NOT(ISERROR(SEARCH("Total",A1))),COUNTA(INDIRECT("B"&MATCH(LEFT(A1,LEN(A1)-7),A:A,0)+1&".B"&(MATCH(A1,A:A,0)+1))),IF(B1="","",B1))
Apply a conditional format to cell C1 with the formula rule =(MOD(ROW(C1),2)=0) and blue fill to match the shading on the other rows. Copy the format down the column using Paste Special Format.
Either hide column B, or copy the values in column C to column B using Paste Special Values and hide Column C. If you decide to copy the values to column B, you won't need to set the conditional formats.
Here is what the formula does:
First, check whether the formula's row is a Total row, by searching the cell in column A of the row for the word "Total," using the SEARCH function.
If the word "Total" is found:
Determine the range in the worksheet of the student IDs for the group for that total row:
a) Identify the rows in which the words "GroupX" and "GroupX Total" are found by using the MATCH function. With that, you know that the IDs for the group are in a range that starts at, say, row x and ends at row y.
b) With the starting and ending row numbers, construct the address range in which the IDs lie, which has to be the string "B" + (row x) + "." + "B" + (row y).
c) Turn the string into a range reference that can actually used in a formula using the INDIRECT function.
Count the number of students in the group using the COUNTA function and the range, and show that as the formula's result.
If the word "Total" is not found
Check whether the cell in column B is empty
a) If it is empty, show a blank as the formula's result
b) if it is not empty, it must be a student ID, so show the ID as the formula's result.
Add a column (I usually add it to the LEFT of the existing matrix) where you enter a formula from row 2 onwards that fills the blanks in the old column A. Then the old matrix including your new column can be used in a pivot.
So Insert a column left of your matrix, this is column A now. Put a header in Cell A1, for example "Group Name1"
Enter the following formula in cell B2 and extend it to the end:
=IF(B2="",A1,B2) This way your blanks will be filled.
Now apply a pivot on this matrix and there you are.
Maybe not the nicest looking solution, but its quick and works well.
If u have table like this
Students id Name of students group ........
then u can use countif/countifs formula

Resources