作者AirRider (又怎麽了)
看板Office
标题[算表] 取出最近且小於/大於的数字?
时间Wed Oct 17 12:59:10 2018
软体: excel
版本: 2016
两序列数字
想要从特定位置开始
按照顺序,由左至右
找出第一个小於对应位置的数
工作表1
A B C D E F G H I J K L
1 2 4 6
8 10 12 14
4 4.9 10 12 14
工作表2
A B C D E F G H I J K L
1 2 3 4
5 6 7 8
9 10 11 12 13
起始 工作表2 D1格
要从 工作表1 D1 开始往右找
找出第一个 小於或等於 工作表1 与工作表2 对应位置 的值
EX
工作表1 D1 =8 大於 工作表2 D1 = 5 (X)
E1 =10 大於 E1 = 6 (X)
F1 =12 大於 F1 = 7 (X)
G1 =14 大於 G1 = 8 (X)
H1 =4 小於 H1 = 9 (O) GET!第一个小於
I1 =4.9 小於 I1 = 10 (X) 不是第一个小於
答案为 工作表1 H1的4
(回传值为工作表1对应位置的内容)
但如果用match会找到4.9(最近且小於)
请问该如何找出此值?
问题2
续前问
若工作表1与2并未完全映射(mapping)於工作表的对应位置
------------->
工作表1 E F G H I J K L
2
2 4 6 8
4 5 8 10
------------->
工作表2 M N O P Q R S
8
1 2 3 4
5 6 7
要从 工作表1的E2格 与 工作表2的M8格 由左往右 开始
最终取出I2格的4
该如何找呢?
感恩众多热心前辈高手协助,受助甚多,感激不尽
update : 修正问题二, 为 由左往右
问题3
抱歉,延伸上面两问,对於参照仍有不了解之处还请指导
现在想从工作表3的来控制想取得的值
工作表1
A B C D E F G H I J K L M
1 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112
2 小明 2 4 6 8 10 12 14 4 4.9 10 12 14
3 小华 3 5 7 9 11 13 15 17 3 8 6 4
工作表2
A B C D E F G H I J K L M
1 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112
2 小明 2 3 4 5 6 7 8 9 10 11 12 13
3 小华 1 3 5 7 9 11 13 15 17 15 13 11
工作表3
A B C D
1 小明 1104 ????
2
工作表3之C1为其值回传的位置
按照前问的作法
改写後会是
{=OFFSET(D2,,MATCH(TRUE,工作表1!E2:M2<工作表2!E2:M2,0))}
已然实做,这部分没有问题
若比较之起始位置 E2 想要用工作表3之A1,B1分别决定
且如果M行之後还有很多很多行
无法事先得知其范围
仅知道开始比较的出发点E2
该如何改写呢?
抱歉问题有点多,尚祈众师傅指导
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.235.142
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1539752353.A.EA1.html
※ 编辑: AirRider (114.34.235.142), 10/17/2018 13:00:05
2F:→ soyoso: 问题2 同上写法,改一下范围 10/17 13:09
4F:→ soyoso: 另外箭头方向往右,应是由左往右,和原文写的由右往左不同 10/17 13:11
※ 编辑: AirRider (114.34.235.142), 10/17/2018 13:43:41
5F:→ AirRider: 感谢,的确是由左往右,方向都是一样的 10/17 13:43
6F:→ AirRider: 抱歉,请问一下,这两个工作表并未在一起,要如何改呢?? 10/17 23:38
7F:→ AirRider: 范围的地方用 工作表1!D1:L1<工作表2!D1:L1 取不出东西 10/17 23:41
8F:→ soyoso: 未在一起指的是?不在同一个活页簿内? 10/17 23:46
9F:→ soyoso: 以回文的方式,如是在同一个活页簿,而表格是在不同工作表 10/17 23:46
10F:→ soyoso: 内,如回文写的工作表1、工作表2的话 10/17 23:47
12F:→ AirRider: 我在工作表3 {=MATCH(TRUE,工作表1!省略<工作表2!省略,0 10/18 08:36
13F:→ AirRider: ctrl shift enter仍然是该命令列没有回传值..... 10/18 08:36
14F:→ AirRider: 完整公式是{=OFFSET(起始点,MATCH(...),MATCH(TRUE..))} 10/18 08:40
15F:→ AirRider: 前面那段MATCH可以正常偏移(後面true那段用正整数带入ok 10/18 08:41
16F:→ AirRider: 但用MATCH(TRUE,...) 替换掉後就没有回传了 10/18 08:41
17F:→ soyoso: 回文列偏移也有用match,但不知要寻找条件和栏位为何,就 10/18 08:48
18F:→ soyoso: 模拟,搜寻2於原文所写到的a栏内 10/18 08:48
20F:→ AirRider: 啊啊啊没事我耍蠢了,正常call出要的东西了,感恩不尽!!! 10/18 08:51
21F:→ AirRider: 非常感谢,我知道我哪里做错了 10/18 08:51
※ 编辑: AirRider (114.34.235.142), 10/18/2018 13:23:54
22F:→ AirRider: 抱歉,又新增一问,恳请指导.... 10/18 13:24
※ 编辑: AirRider (114.34.235.142), 10/18/2018 13:25:15
※ 编辑: AirRider (114.34.235.142), 10/18/2018 13:26:06
24F:→ soyoso: 范围会从搜寻到的栏号至最右侧栏xfd,如觉得不需要或执行 10/18 13:45
25F:→ soyoso: 上效率不好的话,可改一个较大或以函数count或counta来计 10/18 13:46
26F:→ soyoso: 数日期列(如连结来看为第1列),来做为offset范围的栏数 10/18 13:47
27F:→ AirRider: 学习了,感谢您的回覆,正在试做中 10/18 14:24
28F:→ AirRider: 感谢,已经试做成功,感谢您的热心指导 10/20 16:16