各位大神好!遇到一个公式卡阻:在excel表中,A列到E列是各班组工序转序的时间,想要在G列得到每一行最后的转序时间及内容,如图中G1显示。目前我自己设置了一个数组公式=INDEX($A1:$E1,MATCH(MAX(--LEFT(($A1:$E1),(FIND("转",$A1:$E1)-1))),VALUE(--LEFT(($A1:$E1),(FIND("转",$A1:$E1)-1))),)),可以得出这个结果,如G1,但是必须是A列到E列都得有数据,不为空才行,如果为空或描述中没有“转”这个字,就会出现#VALUE!,如G2与G3显示的,请教各位大神,要怎样优化这个公式,才能满足不论A列到B列有没有空值,都可以得到最后转序的内容,谢谢!
G1公式改为
=INDEX($A1:$E1,MATCH(MAX(--LEFT(A1:E1,2*LEN(A1:E1)-LENB(A1:E1))),--LEFT(A1:E1,2*LEN(A1:E1)-LENB(A1:E1)),))
也是数组公式。
但空格确实是个问题,考虑用定位空值后替换为“0”。
追问谢谢,这个公式解决了有无"转″字这个问题,但感觉空值改为0后,全屏到处都有0,有点影响感观
追答选定你要填充0值的单元格区域就行。
还可以把0值隐藏,就解决了数据区域内看到0的问题了。
追问谢谢^_^,我把表格整体设置改了一下,整张表不显示0值,就在显示上还是类似于空值,然后公式也出来结果了。
追答可以了,G1公式改为
=INDEX(A1:E1,MATCH(MAX(IFERROR(--LEFT(A1:E1,2*LEN(A1:E1)-LENB(A1:E1)),0)),IFERROR(--LEFT(A1:E1,2*LEN(A1:E1)-LENB(A1:E1)),0),))
也是数组公式。
这个方法我之前试过,但在max那一层,还是会出现#value
追答把iferror加在max与LEFT之间,=INDEX($A2:$E2,MATCH(MAX(IFERROR(--LEFT(($A2:$E2),(FIND("转",$A2:$E2)-1)),1)),VALUE(IFERROR(--LEFT(($A2:$E2),(FIND("转",$A2:$E2)-1)),1)),))
这样可以解决空单元格问题,没有转不会出错但其单元格不会参与比较,毕竟没有转就不好识别时间。
谢谢!你这公式也解决了问题。不好意思,点不了釆纳了,还有哪种方式给得了财富值呀?
追答能解决问题就可以了。
不是输出最后那列的数据,是要最后转序时间的那个数据,比如第三行,4月15是最后的转序时间,就需要得出“4/15转热处理”
追答转序时间 是什么意思?在你的数据中的判定规则是什么?
追问判定规则是根据每个单元格里的日期,输出最后(最大)日期那格的内容,(4/15指4月15日,4/25指4月25日),基本每一个单元格里的日期都在“转”这个字前面,但有的单元格是空值