|
本帖最后由 人身娃娃1981 于 2024-5-6 17:57 编辑
求助大神:
这个工作表包含4个tab。
Tab "CurVersion"和"PreVersion"是从数据库下载下来的数据直接粘贴进去的。
Tab "CurPre" 是已经做好了公式在里面,功能是比较Tab "CurVersion" 的A列和"PreVersion"中A列,把有重复的值摘出来生成到"CurPre"的A列,并且对应的B列值也生成,并最后一列比较是否有变化。目前CurPre测试阶段只有3条数据+表头一共4行。
第4个tab "2.3 Nutrient Chgs"是希望在A2以下自动摘出来所有在"CurPre"的D列有变化,也就是值为"yes"的行对应的A列的值。
我的公式是:
=IFERROR(INDEX(CurPre!$A$2:$A$4,SMALL(IF(CurPre!$D$2:$D$4="YES",ROW(CurPre!$D$2:$D$4)-ROW(CurPre!$D$2)+1),ROW(CurPre!A1))),"")
这个公式对目前的表格是有效果的。
但是我这个文件目标是做成一个模板,也就是将来在Tab "CurVersion"和"PreVersion"的初始数据最大到1000条,但是每次的数据值不是固定1000条,比如第一次有可能950条,再有一个人去用这个模板,可能就是960条。
所以当我把公式从原有的4行范围扩大到1000这个范围时,公式就失效了,什么都不显示了。
=IFERROR(INDEX(CurPre!$A$2:$A$1000,SMALL(IF(CurPre!$D$2:$D$1000="YES",ROW(CurPre!$D$2:$D$1000)-ROW(CurPre!$D$1000)+1),ROW(CurPre!A1))),"")
经过多次测试,发现只有范围大于4,一旦到了5,这个公式就失效。如下:
=IFERROR(INDEX(CurPre!$A$2:$A$5,SMALL(IF(CurPre!$D$2:$D$5="YES",ROW(CurPre!$D$2:$D$5)-ROW(CurPre!$D$5+1),ROW(CurPre!A1))),"")
我猜测原因应该就是"CurPre" D5目前显示的是"#N/A",所以公式无效。
感谢各位大神费心看了我这么多介绍,希望您还能明白我在说什么。请教一下有什么公式能够实现:
在第4个tab "2.3 Nutrient Chgs"的A2以下自动摘出来所有在"CurPre"的D列值为"yes"的行对应的A列的值呢?范围覆盖到CurPre的1000行。多谢啦!!!
|
|