作者ytod (...... )
看板Office
标题Re: [问题] 跪求excel达人帮忙
时间Thu May 31 21:18:07 2007
※ 引述《toroma (toroma)》之铭言:
: 您所使用的软体为:excel
: 版本:2003
: 问题:
: 我目前有二份大量的资料需要比对,如下
: 档案一: 档案二:
: 范围1-50 51-150 151-250
: a 89 50 a 20 50 80
: b 23 22 h 12 23 33
: h 130 98 b 22 54 98
: ........ ......
: 我希望电脑可以先比对:1.档案一的第一栏和档案二的第一栏相符後
: 2.再去判断档案一的第二栏数值为多少,相对应档案二的范围下
: 的数值是否与档案一的第三栏数值相符
: 我在想用if+vlookup或是其他的函数,可是,一直用不好,不知道有没有高手可以帮帮忙
: 谢谢!!
你所说的第一点的意思是说整栏相符吗?
还是说像下面这种情形?(我猜你应该是指这种)
档案一的第一栏第5列值为80,在档案二的第一栏第40列也找到值为80的内容。
第2点「相对应的档案范围下」看不太懂...
您所指的范围是列的范围还是栏的范围?
就如同前面版友提到的您上面例子的横方向到底是列还是栏?
在excel中,栏是用A,B,C,...IV来编号的,
列则是用1,2,...65535
下面是我所猜测的意思:
您所指的第一栏就是那些a, b, h, ...
档案一的第二栏就是指89
23
130
档案二的范围1-50, 51-150, 151-250为档案二的2, 3, 4栏
再将档案一第二栏的数字看是在是在那个「范围」而归类到档案二的
2~4栏其中一个栏,然後把该栏该列对应到的数值取出来,看是否与
档案一的第三栏数值相同?
举个例子:
1. 档案一的第一栏第一列值为a,在档案二第一栏中寻找发现第一列值也为a
2. 档案一的第二栏第一列的值为89,89属於51-150之间,
故应该从档案二的第一列第三栏取值,取的值为50
再与档案一的第一列第三栏的值(50)比较,发现相同
是这样吗?
顺便问一下,档案一、二中的第一栏会不会重复?
下面是个暴力法:
假设
Sheet1为档案一
Sheet2为档案二
我把他弄到同一个活页簿了,实际上你可以自己用滑鼠指定
对应档案的储存格。
档案一从第一栏第一列开始内容为:
a 89 50
b 23 22
h 130 98
档案二从第一栏第一列开始内容为:
1-50 51-150 151-250
a 20 50 80
h 12 23 33
b 22 54 98
以下范例实际上是一行(当然!)
以下以第一列为例,用数列填满方式往下拉就OK了
=IF(Sheet1!$C1=VLOOKUP(Sheet1!$A1,Sheet2!$A$2:$D$4,
IF(Sheet1!$B1>50,IF(Sheet1!$B1>150,4,3),2),FALSE),"true","false")
说明:
$代表固定范围用的标记
范围以此范例为例,必要时请自行修改
pseudo code:
if(file 1 row i column 3 == vlookup result, "true", "false")
// vlookup result
// look for the value of file 1 row i, column 1 in matrix range 2 to get
// the row index.
// while the column index is specified by range judgement
// the last argument false means completely match
vlookup(file 1 row i column 1, matrix range in file 2, range judgement, false)
// range judgement
// this value is the value in file 1 row i, column 2
// if this value > 150, column 4 (in file 2)
// else if this value > 50, column 3
// els,e column 2
if(file 1 row i column 2 > 50, if(this value > 150, 4, 3), 2)
若有问题请回覆
※ 编辑: ytod 来自: 59.113.121.97 (05/31 22:37)