我的工作簿中有两张 - Sheet1 和 Sheet2 。
Sheet1 有两列六行。
A B
1 [MARK] [LUCY]
2 100 120
3 200 220
4 300 320
5 400 420
6 500 520
[Sheet1]
Sheet2 有两列,我试图使用IF语句和VLOOKUP从Sheet1中提取数据。
在单元格Sheet2-A2
中,我从第2行的Sheet1中的任何单元格中引入引用。
因此,以下示例将引入值100:
A B
1 [VALUE] [NAME]
2 =Sheet1!A2
3
4
5
[Sheet2]
在Sheet2-B2
中我试图包含一个IF语句:
单元格Sheet2-A2
中的IF值从Sheet1-ColumnA
拉出,然后在单元格Sheet2-B2
中打印 MARK 值。
单元格Sheet2-A3
中的IF值从Sheet1-ColumnB
拉出,然后在单元格Sheet2-B3
中打印 LUCY 值。
单元Sheet2-A4
中的IF值从Sheet1-ColumnA
拉出,然后在单元格Sheet2-B4
中打印 MARK 值。
等等,结果看起来像这样:
A B
1 [VALUE] [NAME]
2 100 MARK
3 220 LUCY
4 400 MARK
5 520 LUCY
[Sheet2]
我不确定VLOOKUP是否是正确的方法,所以任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
如果没有额外的专栏,就无法实现这一目标。
<强> Sheet 2中强>
Row A B C
1 Value ReferTo Name
2 =Sheet1!A2 Sheet1!A2 =INDIRECT(MID(B2,1,SEARCH("!",B2,1)+1) & "$1" )
如果您想在没有额外列的情况下实现这一目标,则需要添加一段VBA代码。
复制并粘贴代码
Option Explicit
Function GetHeader(ByVal rng As Range, Optional HeaderRow As Integer = 1) As Variant
Dim i As Integer
'get referenced row
i = Range(rng.Formula).Row
i = (i - HeaderRow) * -1
GetHeader = Range(rng.Formula).Offset(RowOffset:=i).Value
End Function
现在转到 Sheet2 并将公式插入 B2 单元格
=GetHeader(A2)
它会返回 MARK 或 LUCY ,具体取决于 A2 单元格中公式所引用的单元格。
答案 1 :(得分:0)
Sheet2
B2
的公式:=IF(ISERROR(MATCH(A2,Sheet1!$A$2:$A$6,0)),Sheet1!$B$1,Sheet1!$A$1)
MATCH
将检查A2是否出现在&#34; Mark&#34; s值中。 0 in&#34; type&#34;指定完全匹配。如果未找到则返回错误。ISERROR
返回错误,则MATCH
返回true - 即。当A2中的值属于露西时。答案 2 :(得分:0)
我不太确定我是否正确理解了问题的根源,但也许这会解决它 - 如果你想要一个公式告诉你列的标题是给定的数字。
=IF(IF(ISERROR(MATCH(A1;Sheet1!$A$2:$A$12;0));0;Sheet1!$A$1)=0;IF(ISERROR(MATCH(A1;Sheet1!$B$2:$B$12;0));0;Sheet1!$B$1);IF(ISERROR(MATCH(A1;Sheet1!$A$2:$A$12;0));0;Sheet1!$A$1))
该公式的作用:它由一个&#34; if&#34;检查两个中的哪一个匹配&#34;公式返回不等于零的东西。这两个匹配&#34;公式如下:
IF(ISERROR(MATCH(A1;Sheet1!$A$2:$A$12;0));0;Sheet1!$A$1)
IF(ISERROR(MATCH(A1;Sheet1!$B$2:$C$12;0));0;Sheet1!$B$1)
两者都检查单元格A1(在sheet2中)中的数字是否位于sheet1中的列A或B(有限范围)中。他们足够地返回第1列的标题或第2列的标题。
答案 3 :(得分:0)
如果您使用的是Excel 2013,则可以使用FORMULATEXT直接检查A2中的公式。
不幸的是我还没有得到它,但这是另一个建议: -
=INDEX(Sheet1!$A$1:$B$1,SUMPRODUCT(COLUMN(Sheet1!$A$2:$B$6)*(Sheet1!$A$2:$B$6=A2)))
这会在范围内进行查找,查找匹配值所在的列,并使用它来索引包含MARK和LUCY的行。
它具有潜在的优势,您可以将其扩展到两列以上。