空 A B C D E F G
1 啊 簌 我 人 饿 他
2 0 0 0 1 0 0
如何返回第二行第一个不为零所在列的第一行的值,即在g2返回“人”
首先想到的是求第二行不等于0的最小列标,用=MIN((A2:F2<>0)*COLUMN(A2:F2)),且是数组公式,即同时按Shift+Ctrl+Enter结束公式编辑,会自动生成一对{},但是对于不符合的会返回时,取不到不等于0的最小列标;
所以可以转换一下求最大值,用10来倒减最小列标,得到最大列标,这样就不会取到不符条件的列标,取出的最大值,再用10来减,即得到最小列标:=10-MAX((A2:F2<>0)*(10-COLUMN(A2:F2))),这也是数组公式,即同时按Shift+Ctrl+Enter结束公式编辑,会自动生成一对{};
上面也是数组公式,可以用SUMPRODUCT函数来转一下,就成为普通公式,不需要三键齐按;
再用INDEX函数返回第一行相应列的值即可达到目的:=INDEX(1:1,SUMPRODUCT(10-MAX((A2:F2<>0)*(10-COLUMN(A2:F2)))))。