How to copie and paste only non blank cells - excel

I got this case, i need to copy the Col A to Col B, but I need to paste only the value that have a value in the Col B, like in the pictures
Is there any way in excel or vba that do this?
Thanks

You can do this in VBA, but it's probably much simpler to do in the Excel UI with a formula and the fill handle. For example, if Column C is your "New B" column, then you could try using the following formula in Column C to do what you're looking to do: =IF(NOT(ISBLANK(B1)),C1=A1). Then just use the fill handle to drag the formula down as needed.
Note that this formula will do nothing if the conditional evaluates to false, i.e., if the cell is blank.
You can see more in the documentation here.

Related

Complicated Find row in duplicate show which column A or B or C

Could you please help me for below formula little bit complicated
Problem is
In a sheet I have three column A,B,C any one column amount if it is same in D column need to highlight and show which column A or B orC..
Example
A B C D amount in each row
4 5 7 4 please highlight bez a and d match
Next example
5 3 6 2 should not highlight show error msg
In above case D is matching same number with AorBorC
Please help me this logic formula
Formula
=If(countif(A1:d4)=1, "duplicate","unique")
working fine but is there any possibility to show which cell column A or B or C ... If duplicate which column need to mention
Much appreciated for this complicated formula am not sure whether it required VBA here
Your question mentions "Highlight", so here's that part of the solution. Select your first 3 columns of data (A1:C6 in my case). Then go to Conditional Formatting in the Home Tab. Create New Rule, using a Formula to determine which cells to format.
Here's the formula:
=A1=$D1
Change the format fill to your color of choice. Click OK.
EDIT - Adding the last piece here...
Lastly, to display which column(s) match column D value, you could use a formula such as this.
Cell E1 Formula:
=CONCAT(IF(A1=D1,"A",""),IF(B1=D1,"B",""),IF(C1=D1,"C",""))
Drag it down.
XLOOKUP unlike VLOOKUP returns a reference to the cell and not just the value of the cell.
With this in mind =XLOOKUP(D2,A2:C2,A2:C2,NA()) will return the value if it exists as well as the reference.
If we wrap the Return Array with the Column function it will return the column number.
=XLOOKUP(D2,A2:C2,COLUMN(A2:C2),NA())
Add the ADDRESS function to return the cell address (this will return the address on row 1)
=XLOOKUP(D2,A2:C2,ADDRESS(1,COLUMN(A2:C2),4),NA())
Now substitute the 1 in the cell address with a blank:
=SUBSTITUTE(XLOOKUP(D2,A2:C2,ADDRESS(1,COLUMN(A2:C2),4),NA()),"1","")

IF statement: IF cell is blank, leave blank, if not display 1

I would like column G to reference cells in column A. IF column A does not have a value in it, I would like the cells in column G to be blank. IF cells in column A have values in it, I would like cells in column G to display "1".
The cells in column A have a formula in it referencing a different sheet.
The formula I have so far is:
G1=IF(ISBLANK(A1), G1="", 1)
Right now, it displays "1" in column G because there is a formula in column A
A1=JE!C7
but I only need it to display "1" if there is actual data from the other sheet, "JE", in it.
If anyone know if a work around, I'd be very grateful. Thanks in advance!
Use A1="". ISBLANK() will not return true if there is a formula in A1 even if that formula returns "".
Also G1="" is incorrect, you only need to put the "".
Use this formula:
=IF(A1="","", 1)
In A1 I put the following formula:
=IF(1=1,"",1)
And as you can see in G1 it returns "" and not 1.
try this formula
=IF(OR(A12="",ISBLANK(A12)),"",1)
This should fix the issue
Use function:
IFTEXT(
This works because a formula is text -- not blank or a number

How to drag/copy Excel formulae to include cells at specified intervals

I have an Excel sheet in which I want start column D with the following formula:
=AVERAGE(C7:C10)
I want to be able to drag down column D to give the following formulae:
=AVERAGE(C11:C14)
=AVERAGE(C15:C18)
=AVERAGE(C19:C22)
etc.
However, if I just naively drag down, instead, I get:
=AVERAGE(C8:C11)
=AVERAGE(C9:C12)
=AVERAGE(C10:C13)
How can I change this behavior?
In column D enter
=AVERAGE(OFFSET($C$1,4*ROW(C1)+2,0,4))
Then when you drag it down column D, each successive cell will have the reference incremented by 4.
This answer assumes that the size of the ranges remain constant. If, for example, column G is unpopulated then G1=7;G2=11. Select both cells and pull the fill handle down as far as needed. The formula for D1 is=AVERAGE(INDIRECT("C"&G1&":C"&G1+3)), which can be filled down as far as needed.

Vlookup to check two conditions

I am referring to below my google spreadsheet
https://docs.google.com/spreadsheets/d/1dCfShenhV2j98q5wkOXMeyWj9tlMZbaBgBqB2vAPdHo/edit?usp=sharing
I am looking to update H,I and J columns using vlook formula in way that it should match both name and date values in my data range, which in A,B and C columns
Here is the issue I am facing with normal vlookup is that I can check only name.It is ignoring the date and updating the vlooked up data on all date column.
Eg: Alpha and date 20141120 value is 10, it should fill only H3, but it is updating, H3 I3 and J3 with value 10
I really appreciate your answer on this problem!!!
you can use this formula of index and match:
=IFERROR(INDEX($A:$C,MATCH(1,($A:$A=$G3)*($B:$B=H$2),0),3),"")
paste it in the first cell of your table H3, and drag and fill to the right and then select the entire row and fill down till end.
it should work.
if error(();"") : you will get empty cells if there is no match.
this is an array formula, so press ctrl+shift+enter to calculate the formula
UPDATE: here is [the example sheet downloadable from here}(https://www.dropbox.com/s/clqxsj5j4bdk27b/indexmatch.xlsx?dl=0)
Basically you need to concatenate the results, then use a VLOOKUP on that.
I.e. insert a column between B and C, with formula "=CONCATENATE(A2,B2)"
In the range you want to update, use the column and row headings for you lookup
"=VLOOKUP(CONCATENATE($g3,h$2),$c$1:$d$3,2,false)"
You want to perform a Multiple Lookup (see this).
As indicated there, enter
=IFERROR(LOOKUP(2,1/($A$1:$A$3=$G3)/($B$1:$B$3=H$2),$C$1:$C$3),"")
in H3. Copy into H3:J5.
This avoids array formulas.

Trying to import cell data based on cell drop down

I'm trying to re-do a spreadsheet.. Without having to put an =if into every cell where the data would be variable depending on the selection of a drop down (Which is how it is set currently :( )
On the main sheet.. Cell J1 i have a dropdown selection.. And im looking for the cells in
A1-F1 to be populated with the information on the data sheet.. Based on the selection either 1 or 2 in this example but i cant figure out how to do this
Any help would be appreciated
This is what VLOOKUP functions are for. VLOOKUP functions search for a key in the first column of a range, and matches the selected row on it.
You can just put =J1 into your A1 cell, and on your B1 cell you can search for A1 as =VLOOKUP($A1,Data!$A$1:$F$2,2,FALSE). This formula can be read like this:
"Please, search for the value that it's in $A1 in table Data!$A$1:$F$2.When you got it, get me the column 2. Ah, by the way, if you asked me if the key column is made of sorted numbers, so if you can't find it, you can extrapolate linearly, I'd answer FALSE, got it? Thanks a bunch!"
So, in your C1 cell you'd ask for the column 3, and so on. Of course, if you'd like to just create a single formula, you can insert a row over your row 1, and put the column references over the cells, as this:
In this case, my formula on B1 is =VLOOKUP($A2,Data!$A$1:$F$2,B1,FALSE) - which can be dragged to C1:F1. Of course you can later hide the row 1 from your user.
Hope that helps.

Resources