作者JieJuen (David)
看板Office
标题Re: [问题] EXCEL 搜寻而且比较大小
时间Thu Mar 13 06:33:50 2008
※ 引述《furukawa (furukawa)》之铭言:
: (若是和其他不同软体互动之问题 请记得一并填写)
: 您所使用的软体为:
: EXCEL 2003
: 问题:
: 我有一个类似下面的资料表。
: B栏的编号定期会变动,而且可能出现两笔末两码相同
: 第一码不同的资料。我希望能做到在B11格输入末两码
下面公式是写B12 以B12为准
: 号码,把条件符合的资料按大小分别放到A14和B14格
: 去:
: A | B
: 1 品名 编号
: 2 苹果 103
: 3 柳丁 509
: 4 橘子 213
: 5 香蕉 009
: 6 芭乐 022
: 7 凤梨 112
: 8 葡萄 513
: 9
: 10
: 11输入 13
: 12
: 13大的 小的
: 14葡萄 橘子
: 目前研究结果似乎可以用如下的公式来完成,但函数ROW()
: 并不能比较两组号码的大小:
: {=INDEX(A2:A8,LARGE(IF(RIGHT(B2:B8,2)
: =RIGHT(B12,2),ROW(B2:B8)-1,""),1),0)}
: 想请教各位先进能建议我比较好的函数或是公式吗?
: 感恩不尽! <(_ _)>
参照应该要固定的 不过就很长 先不固定 以免眼花 均阵列公式
以下假设编号都不重覆
=INDEX(A2:A8,MATCH(LARGE(IF(RIGHT(B2:B8,2)=RIGHT(B12,2),B2:B8),COLUMN()),
B2:B8,0))
以下假设都是正数(都是负数....也可以啦 一样就好)
=INDEX(A2:A8,MATCH(LARGE(IF(MOD(B2:B8-B12,100),,B2:B8),COLUMN()),B2:B8,0))
换用OFFSET写
=OFFSET(A1,MATCH(LARGE(IF(MOD(B2:B8-B12,100),,B2:B8),COLUMN()),B2:B8,0),)
用VLOOKUP写
=VLOOKUP(LARGE(IF(MOD(B2:B8-B12,100),,B2:B8),COLUMN()),IF({1,0},B2:B8,A2:A8)
,2,0)
固定後
=INDEX($A$2:$A$8,MATCH(LARGE(IF(RIGHT($B$2:$B$8,2)=RIGHT($B$12,2),
$B$2:$B$8),COLUMN()),$B$2:$B$8,0))
=INDEX($A$2:$A$8,MATCH(LARGE(IF(MOD($B$2:$B$8-$B$12,100),,$B$2:$B$8),
COLUMN()),$B$2:$B$8,0))
=OFFSET($A$1,MATCH(LARGE(IF(MOD($B$2:$B$8-$B$12,100),,$B$2:$B$8),
COLUMN()),$B$2:$B$8,0),)
=VLOOKUP(LARGE(IF(MOD($B$2:$B$8-$B$12,100),,$B$2:$B$8),COLUMN()),
IF({1,0},$B$2:$B$8,$A$2:$A$8),2,0)
如果资料将编号放在左边 VLOOKUP可以更方便
=VLOOKUP(LARGE(IF(MOD($A$2:$A$8-$B$12,100),,$A$2:$A$8),COLUMN()),$A$2:$B$8,2,0)
另外 筛选与枢纽分析在大量时效率高
只是配置上有些限制
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.164.51.188
1F:推 furukawa:谢谢大大详细的解答!我会研究看看 03/13 09:32
2F:→ furukawa:只是想不到看似简单的想法,却要动用到这麽大阵仗...@_@ 03/13 09:33
3F:→ JieJuen:XD 方法很多 越写越多 03/13 16:02