[算表] Indirect、Match、Row三个Excel函数组合

楼主: moodyblue   2020-01-23 09:42:29
Indirect、Match、Row这三个Excel函数组合,竟然足以搜寻任何关键字重组报表
网志图文版:
https://www.b88104069.com/archives/4411
上一节设置网页自动更新,但是发现重新取得的资料会乱掉,如前所述,这是因为网站内
容并非一成不变,首先呈现的内容会随着时间刷新,这个其实不会影响,,展览活动还是
在相同位置,只是活动内容不同,Excel的固定连结会一如预期把更新后的资料引用过来
。然而除了内容之外,网站版面有可能也会变动,这时就不能单纯使用固定连结,以下具
体介绍较佳作法:
一、台北苏荷儿童美术馆(
http://www.artart.com.tw/index.php/Museum/museum_info/maid/24/bid/71)所取得的
网页资料,其下载到Excel的资料都是在第一栏(A栏),第122列开始是“展览资讯 > 主
题展场”,第126列开始每一列是真正的展览活动,共有7项,所以类似第一节第七步骤的
汇总表,资料编辑列的引用来源是从“=苏荷儿童美术馆!A126”到“=苏荷儿童美术馆
!A131”(Excel表格至多六项)。
二、从上个步骤分析可知,台北苏荷儿童美术馆网页关于展览的部份,都会在关键字“展
览资讯 > 主题展场”的下四列开始罗列,所以先以函数公式“=MATCH(B1,苏荷儿童美术
馆!A:A,0)”取得这个关键字所在的列号,公式结果正是“122”,接着借助公式“=ROW()
”传回所在列号的特性,最后设计公式:“=INDIRECT("'苏荷儿童美术馆
'!A"&$B$4+ROW()-2)”,刚好是引用“展览资讯 > 主题展场”下四列开始依序的储存格
内容,正是台北苏荷儿童美术馆网页上的展览活动。
三、接下来是高雄历史博物馆(
http://khm.org.tw/home02.aspx?ID=$2002&IDK=2&EXEC=L)所取得的网页资料, 其下载
到Excel的资料分三栏,第一栏第161列(储存格“A61”)是关键字“当期特展”,因为
展览活动介绍清单会从储存格“C63”开始,也就是“当期展览”的下两栏下两列,不过
要注意到这里每个活动中间因为有展期、展览地点、空白列、展览说明,所有会空四列。
四、先以函数公式“=MATCH(B1,高雄历史博物馆!A:A,0)”取得这个关键字所在的列号,
公式结果是“61”,接着借助公式“=ROW()”传回所在列号的特性,因为原始资料会有下
四列的问题,巧妙变换一下公式:“=(ROW()-5)5-4”,如图所示这样可以每下一列的数
值加5,结果是“1,6,11,16,21,…”最后设计公式:“=INDIRECT("'高雄历史博物馆
'!C"&$B$4+((ROW()-7)5-4+1))”,刚好就是引用“当期特展”下两栏下两列开始依序的
储存格内容,中间四列不计,这正是高雄历史博物馆网页上的当期展览活动。
五、再来一个科学工艺博物馆(
https://www.nstm.gov.tw/ExhibitionList.aspx?appname=Exhibition)所取得的网页资
料,有了前两次网页的基础,这个应该不难理解其规则。
六、关于科学工艺博物馆引用展览活动单的公式说明如下,基本概念和前面两个网站类似
,只是在决定关键字和每隔几列作些微变化。
七、综合起来,四个网页汇总资料的函数公式整理如下:
这一节介绍三个网页引用资料的函数公式,虽然公式看起来不是那么简单,但仔细分析,
每个公式都是使用到“Indirect”、“Match”、“Row”这三个函数,而且有着类似的架
构,之所以不厌其烦地一再重复这个过程,一方面是让读者熟悉这个有其实用性的函数用
法,另一方面这么一来,读者应该能领悟到这些网页内容不同,但似乎又有一套相同的规
则在里面,正因为如此,才能够以类似的函数公式引用资料,掌握这一点,对于以后章节
的应用相当有帮助。
本文内容取自《人人做得到的网络资料整理术》,金石堂网络书店网址:
https://www.kingstone.com.tw/basic/2014941521928。
延伸阅读:
Excel取得网页资料(二):现有连线整理
https://www.b88104069.com/archives/4400
Excel取得艺文活动网络资料
https://www.b88104069.com/archives/4395
VBA如何设置循环将多余资料删除
https://www.b88104069.com/archives/4376
作者: soyoso (我是耀宗)   2020-01-23 10:13:00
第一栏第161列(储存格“A61”)?不正确其下载到Excel的资料都是在第一栏(A栏),也不正确并没有"都是"在第一栏,就看汇入资料时将资料放在,目前工作表的储存格(看指定哪),或是新工作表=(ROW()-5)5-4、...$B$4+((ROW()-7)5-4+1)),运算字要打不打会出现公式发现错字,并尝试修正为:..或所输入的公式错误,是否愿意接受以下的修改建议(不同版本所显示讯息不同)且原po网页截图是https://pics.b88104069.com/E15e04.png内文却提供不打运算字的公式子
作者: sqt (深海)   2020-01-28 00:45:00
谢谢分享

Links booklink

Contact Us: admin [ a t ] ucptt.com