请求Excel函数高手帮帮忙解答问题? 谢谢了!

2024-12-21 13:39:18
推荐回答(2个)
回答1:

这个问题你发了三遍

不过为什么我回答的第一个问题被你关闭了
这是我的回答
=LOOKUP(MAX(MMULT(N(E1:E5=TRANSPOSE(E1:E5)),5-(LEN(MMULT((A1:D5="")*{10,100,1000,10000},{1;1;1;1}))))),MMULT(N(E1:E5=TRANSPOSE(E1:E5)),5-(LEN(MMULT((A1:D5="")*{10,100,1000,10000},{1;1;1;1})))),E1:E5)

数组公式 CTRL+SHIFT+ENTER结束

思路:求每一行的最后一个空单元格的位置,用此确定第一行X的个数(你的数据除了空就是X),5-(LEN(MMULT((A1:D5="")*{10,100,1000,10000},{1;1;1;1})))返回第一行X个数的一个数组,你的第一例为{1;3;4;2;2}
MMULT(N(E1:E5=TRANSPOSE(E1:E5)),5-(LEN(MMULT((A1:D5="")*{10,100,1000,10000},{1;1;1;1}))))对E列的条件求和,第一例返回{7;5;7;5;7}
后面的LOOKUP和MAX函数就不用说了吧
至于用MMULT条件求和是在EXCELHOME上学的,不是很好理解,不过用于生成内存数组很方便

回答2:

费了半天劲,终于看明白你的问题了!
我觉得你这个要通过函数实现可能不行,
比如“A5=X, B5=空,C5=X,D5=X,E5=1”,A列的X你不能计算进去,也就是说如果X后面有空的话不算入你的那个答案里,那就有点麻烦。
你应该照人通过VB来给你想想办法。

还有哈,你这样说问题太复杂了,你应该通过一个简单通用的模型来说明。你具体要解决一个什么问题,比如你是想统计成绩,还是什么的,这样大家容易明白。