gpt4 book ai didi

excel - 查找单元格中一起出现的 n 个数字的公式

转载 作者:行者123 更新时间:2023-12-04 22:15:58 28 4
gpt4 key购买 nike

我想问一下是否可以在 Excel 中创建公式,在某些单元格中提取 n 第一个数字,但前提是这些数字彼此相邻(在一个组中)。
例如,对于 RegExp,我们可以在字符串中编写 \d{8}:

abc1234_123456789012abc_87654321000_abc


找出每八个数字组成的组,无论它们出现多少次:

abc1234_123456789012abc_87654321_000abc


我想在不使用 VBA (RegExp) 的情况下实现类似的效果(它甚至可能是第一次出现,而不是每次出现),并且能够轻松更改考虑的位数,即从另一个单元格,而不是通过扩展公式附加功能。
先感谢您。

最佳答案

使用 Microsoft365,您可以尝试:
enter image description here
对于 C1 中的所有重叠值:

=LET(A,MID(A1,SEQUENCE(LEN(A1)),B1),B,IF(ISNUMBER(--A),A,""),FILTER(B,B<>"",""))
对于 D1 中的所有非重叠序列:
=LET(A,B1,B,MID(A1,SEQUENCE(LEN(A1)),1),C,FILTERXML(SUBSTITUTE(TRIM(CONCAT("<t><s>'",IF(ISNUMBER(--B),B," "),"</s></t>"))," ","</s><s>'"),"//s"),D,FILTERXML("<t><s>"&TEXTJOIN("</s><s>",,MID(C,SEQUENCE(1,LEN(A1),2,A),A))&"</s></t>","//s[string-length()="&A&"]"),TEXT(D,REPT(0,A)))
第二个选项很长,因为当我检查前面的标记是否为数字等时,我需要找到一种方法来防止误报。但你现在只需要更改 B1 中的值到您想找到不重叠值的任何数字。例如:
enter image description here

要简单地获得任何 8 位数字的第一次出现,请尝试:
=IFERROR(MID(A1,MATCH(1,INDEX((ISNUMBER(--MID(A1,ROW(A$1:INDEX(A:A,LEN(A1))),B$1)))*(LEN(MID(A1,ROW(A$1:INDEX(A:A,LEN(A1))),B$1))=B$1),),0),B$1),"Not Found")

关于excel - 查找单元格中一起出现的 n 个数字的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69336087/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com