copy value by using v lookup and LEN - excel

I have two sheets, sheet 1 contain the data, sheet 2 will return the value from sheet 1.
sheet 1
A B
A40C7A4 BN01:Fruits for Aug-Banana
DB76FE1 BN01:Fruits for Aug-Lemon
9CCA14D BN01:Fruits for Aug-Kiwi
0274DFE BN01:Fruits for Aug-Apple
sheet 2
A B
Banana sheet1,column A value here
Lemon
Kiwi
Apple
I've tried using vlookup wildcard, but there is no value copied. Can someone please guide me on this? Thank you in advance.

You cannot use VLOOKUP to find something in a column to the right then return an associated value from a column to the left.
Try,
=INDEX(Sheet1!A:A, MATCH("*"&A2, Sheet1!B:B, 0))

Related

How to select a value from another MATCH formula if first MATCH formula returns null in excel

I don't know how possible this is but i want to be able to get a value in a row where the values used to MATCH might not always be on the same column.
Example:
Sheet 1
#
A
B
C
D
1
name
age
work email
personal email
2
dave
20
dave#work.com
3
matt
25
matt#home.com
Sheet 2
#
A
B
1
email
name
2
dave#work.com
fx = dave
3
matt#home.com
fx = N/A
fx
=INDEX('Sheet1'!$A:$A,MATCH(A2,'Sheet1'!$C:$C,0))
the formula works fine but i want to be able to search column D if formula returns N/A when a match can't be found in column C
Please help me out.
You could use IFERROR for this.
=INDEX(Sheet1!$A:$A,IFERROR(MATCH(A2,Sheet1!$C:$C,0),MATCH(A2,Sheet1!$D:$D,0)))
An alternate approach when you don't know what column to find your match is to use SUMPRODUCT combined with ROW:
=INDEX(Sheet1!A:A,SUMPRODUCT((Sheet1!C:D=A2)*ROW(Sheet1!C:D)))
Please note that if there would be two matches within the data, the value returned by SUMPRODUCT is a sum of the matching row numbers. If there's only one match this formula works fine.

Count with criteria for changing column in excel

I have a data looks like this:
a b c
1 3 4
2 3 3
4 1 2
2 4 2
In another worksheet, I want to do the following calculation:
whenever A1 returns a (header of data worksheet), count number of items that are smaller and equal to 2 in column "a". (result will be 2)
if A1 returns b, count number of items that are smaller and equal to 2 in column "b". (result will be 1).
A1 has already been preset with formula such that it will show a or b or c as conditions changed.
I need the formula to be lean... I actually have 6 headers, so if I keep on using if functions, I will probably have to set 6 if functions in one cell...that can be overwhelming. index match cannot provide a range to work on...Any suggestion? thanks
I don't know vba. If you could provide a workable vba code, i don't mind. but i don't know how to read it...>.< please provide user manual for that. lol, thank you~
If your data is found on Sheet1 and the a is found on column a, b is found on column b etc. enter this formula on then next sheet on b1 when a1 is the column value:
=COUNTIF(INDIRECT("Sheet1!"&a1&":"&a1),"<=2")
The Indirect is for adding text to your reference.
If your data sheet is Sheet1, you could try the array formula:-
=SUM((Sheet1!A1:C1=$A$1)*(Sheet1!A2:C5<=2))
Must be entered with CtrlShiftEnter
(actually there are 3 items less than or equal to 2 in column A)
Or you can use the SUMPRODUCT version if you prefer not to use an array formula:-
=SUMPRODUCT((Sheet1!A1:C1=$A$1)*(Sheet1!A2:C5<=2))
Or you can use this INDEX/MATCH method which is probably more efficient:-
=COUNTIF(INDEX(Sheet1!A2:C5,,MATCH(A1,Sheet1!A1:C1,0)),"<="&2)

Match name and copy row from sheet 1 to sheet 2 on corresponding column

I asked a very similar question to this one here, but I am trying to identify if a cell's numerical value is contained in a list of cells on a different sheet. If the cell from sheet A matches a cell in sheet B, mark a different column in B with a corresponding row in sheet A, otherwise leave it blank. An example is below:
Sheet A
Column A | Column B
-------------------
1 John
2 Sue
4 Bob
I would like the corresponding Sheet B to populate Column B like this:
Sheet B
Column A | Column B
-------------------
2 Sue
3
4 Bob
=IF(ISNUMBER(MATCH(I2, 'SALT, WOD, Champion Members'!A:A, 0)), "Y", "N")
I have been using the above answer to populate a different column in the same workbook, and I'm thinking I can maybe use this formula, but instead of "Y" or "N", somehow preserve the row.
You need to use VLOOKUP as already mentioned. But you will need to use another function to check for existence of the value, else you will get #N/A against ID 3
I used COUNTIF
=IF(COUNTIF($A$2:$A$4,E2)=0,"",VLOOKUP(E2,$A$2:$B$4,2,FALSE))
Use the VLOOKUP function:
=VLOOKUP(A1;Sheet1!A:B;2;FALSE)
Where A1 is the value you want to look up, Sheet1!A:B is the original sheet with the data.

Find values from one excel sheet in another

I have a column with the values in A excel sheet 1 1 1 2 2 2 3 3 3 4 4 4.... and i have in B excel sheet another column with values 1 2 4 ...., what i want is read values from B and see if they are in A sheet, for example if value 2 is in B sheet, then write true in a new column in sheet A in front of 2, and similarly false or nothing in front of value 3.
thanks
You can use a simple VLOOKUP - For example, assuming that the content of cell A1 of sheet B is 2, and that the sheet you call A is called SheetA, you can put the following formula in cell B1:
=IF(ISERROR(VLOOKUP(A1,SheetA!A:A,1,FALSE)),"",VLOOKUP(A1,SheetA!A:A,1,FALSE))
Use the approach described here:
http://spreadsheetpage.com/index.php/tip/comparing_two_lists_with_conditional_formatting/
Key formula is this: =COUNTIF(OldList,D2)=0, which you can use within the conditional formatting context as described, or to generate your true/false indicators as you mention in your question, i.e.:
=IF(COUNTIF(OldList,D2)=0,FALSE,TRUE)
OldList is just a range, and you don't need to use a named range. But if you don't name the range, just be sure to use absolute references for the range you're searching against.
Do you want a cool formula you can use to count the number of each matching value. Try this for your original post:
=IF(SUMPRODUCT(--($A1 =Sheet1!$A:$A) > 0), "True", "False")
And this to count the values: =SUMPRODUCT(--($A1 =Sheet1!$A:$A))

Excel vlookup help

Using vlookup, when a match occurs, I want to display the value of column C from sheet 2 from the same row where the match occurred. The formula I came up with takes the value from column C sheet 2 but it takes it from the row where the formula is pasted on sheet 3 instead of where the match occurred.
Here's my formula that doesn't work:
=IF(VLOOKUP(Sheet1!A:A,Sheet2!A:A,1,FALSE),Sheet2!C:C,"NODATA")
How can I take the value from the row where the match occurred?
To be clear, I am not entirely certain I understand what you are trying to achieve. Maybe the following helps...
Suppose I have 3 sheets in a workbook as follows:
Sheet1 Sheet2 Sheet3
A A B C A B
1 10 2 h Apple 10 Apple
2 20 g 4 Banana 25 n/a
3 30 l ! Pear 40 Grape
4 40 g * Grape 30 Pear
In column B of Sheet 3 I have the following formula:
=INDEX(Sheet2!$C$1:$C$4,MATCH(VLOOKUP(A1,Sheet1!$A$1:$A$4,1,FALSE),Sheet1!$A$1:$A$4,1))
To explain:
The VLOOKUP looks up the value from Sheet 3, Col A in Sheet1
The MATCH returns the row in Sheet1 of the VLOOKUP result
The INDEX then uses the row number to pick the right value from the value in Sheet2
Again, not sure if this is what you wanted exactly. It may help you get you started...
You need to manually get the index you're looking for, then get the value at that index:
=INDEX(Sheet2!C:C, MATCH(Sheet1!A:A,Sheet2!A:A,FALSE))

Resources