你好我需要为学校完成一些excel表,我遇到了真正的困难。
我需要从这样的表中找到最长的 FULL 名称。要求是我可以不创建另一个列来制作
= LEN(A1)+ LEN(B1)
然后仅比较该列。所以解决方案应仅 1行"代码" 。
| A | B | C
1| adam | brown | The longest name is:
2| eva | jameson | john startstky
3| john | startsky |
任何帮助非常苛刻。 我已经尝试了
= INDEX(A1:A3,MATCH(MAX(LEN(A1:A3)),LEN(A1:A3),0))
但是,它只搜索1列,不适用于多列。
注意:的
我并不擅长excel,但这是我认为应该有效的。我不知道如何在excel中做这样的事情。
string longestName
For each row
if(A[index of row].lenght+B[index of row].lenght > longestName.lenght)
longestName = A[row].tostring+" "+B[row].tostring
我还想避免使用C语言或基础编程(我不确定excel支持哪种语言)。
编辑: 代码部分仅提示您理解我的思维过程。我知道你不能将这样的代码应用到公式......
答案 0 :(得分:1)
我们需要连接两个Index函数才能获得返回。我们还需要使用MATCH的数组形式来找到最长的连接。
=INDEX($A$1:$A$3,MATCH(MAX(LEN(A1:A3 & " " & B1:B3)),LEN(A1:A3 & " " & B1:B3),0)) & " " & INDEX($B$1:$B$3,MATCH(MAX(LEN(A1:A3 & " " & B1:B3)),LEN(A1:A3 & " " & B1:B3),0))
作为数组公式,需要在退出编辑模式而不是回车时使用Ctrl-Shift-Enter确认。如果操作正确,那么Excel会将{}
放在公式周围。
答案 1 :(得分:0)
如果在C1,C2和C3中你有:
=LEN(A1 & B1)
=LEN(A2 & B2)
=LEN(A3 & B3)
然后在D1中输入这个公式:
=INDEX(A1:B3;MATCH(MAX(C1:C3);C1:C3;0);1) & " " & INDEX(A1:B3;MATCH(MAX(C1:C3);C1:C3;0);2)
你会得到