因评论而更改。
我有一份德语单词列表,我想删除变格形式。这些单词按字母顺序排列。例如:
- 艾恩利希
- 类似
- 安农
因此接下来艾恩利希我希望看到 1,因为它与类似,但旁边有 3类似因为有 3 个字母没有按顺序排列安农。
我知道有些单词只有一个字母不同,而且意思完全不相关,我只需要帮助从 excel 中,我知道它无法自行解决这个问题。
答案1
如果我理解你在问什么(这是一个很大的“如果”),你想要的是这样的:
=IF(LEFT(A1,9)=LEFT(A2,9),LEN(A2)-9, 如果 (LEFT(A1,8)=LEFT(A2,8),LEN(A2)-8, 如果 (LEFT(A1,7)=LEFT(A2,7),LEN(A2)-7, 如果 (LEFT(A1,6)=LEFT(A2,6),LEN(A2)-6, 如果 (LEFT(A1,5)=LEFT(A2,5),LEN(A2)-5, 如果(左(A1,4)=左(A2,4),则 LEN(A2)-4, 如果 (LEFT(A1,3)=LEFT(A2,3),LEN(A2)-3, 如果(左(A1,2)=左(A2,2),则 LEN(A2)-2, 如果(左(A1,1)=左(A2,1),则 LEN(A2)-1, LEN(A2) )))))))))
换句话说,找到A1
和的最长公共初始子串A2
,然后返回超出该子串的字符数A2
。如果它有效,这将是一个糟糕的解决方案,但它没有,因为 Excel 不允许您嵌套那么深,您需要最多……什么,42?我知道有些德语单词很长。(我确实通过删除前两行并以开头来测试上述公式7
。)这显然是应该在 VBA 中完成的事情,而且对我来说编写它会很费劲,所以我会请 SU 社区的其他人给出 VBA 答案。(或者,András,如果这不是您想要的,请更清楚地解释您想要什么。)