Excel 按字母大小写解析

Excel Parse by Casing of Letters

提问人:bvowe 提问时间:11/14/2023 最后编辑:Mayukh Bhattacharyabvowe 更新时间:11/15/2023 访问量:77

问:

HAVE            WANT1   WANT2
CLStephen Five  CL      Stephen Five
RTQQuent Lou X  RTQ     Quent Lou X

我们的学校系统上有一个数据输入错误,我有 col 'HAVE',并希望将其分为 'WANT1' 和 'WANT2'

WANT1 = take the first n-1 CAPITAL letters
WANT2 = take the remaining letters
解析 excel-formula

评论


答:

1赞 Mayukh Bhattacharya 11/14/2023 #1

尝试使用以下公式:

enter image description here


• 细胞中使用的配方B2

=LET(α, LEFT(A2,MIN(IFERROR(FIND(CHAR(SEQUENCE(26,,97)),A2),""))-2), HSTACK(α,SUBSTITUTE(A2,α,)))

配方奶粉只需要装满,因为它会溢出!


或者,尝试将以下公式与TEXTSPLIT()

enter image description here


• 细胞中使用的配方B2

=TEXTSPLIT(REPLACE(A2,MIN(IFERROR(FIND(CHAR(SEQUENCE(26,,97)),A2),""))-1,0,"|"),"|")

您也可以尝试使用一个会溢出的动态数组公式。注意:动态数组公式不适用于结构化引用

enter image description here


=DROP(REDUCE("",A2:A4, LAMBDA(α,φ, VSTACK(α, 
 TEXTSPLIT(REPLACE(φ,MIN(IFERROR(FIND(CHAR(SEQUENCE(26,,97)),φ),""))-1,0,"|"),"|")))),1)

0赞 Ron Rosenfeld 11/15/2023 #2

输入并填写:B2

=LET(
    lc, CHAR(SEQUENCE(26, , 97, 1)),
    split, MIN(FIND(lc, A2 & TEXTJOIN(, , lc))) - 2,
    HSTACK(LEFT(A2, split), MID(A2, split + 1, 99))
)
  • lc生成所有小写字母的序列。
  • split找到第一个小写字母并减去两 (2)。
  • LEFT并使用该位置生成两个 sMIDWANT

enter image description here

要仅在单个单元格中输入公式并记下结果,您可以在 B2 中尝试:SPILL

=LET(
    d, $A$2:$A$3,
    lc, CHAR(SEQUENCE(26, , 97, 1)),
    split, BYROW(
        d,
        LAMBDA(arr,
            MIN(FIND(lc, arr & TEXTJOIN(, , lc))) - 2
        )
    ),
    HSTACK(
        LEFT(d, split),
        MID(d, split + 1, LEN(d) - split)
    )
)
  • d是数据范围

请注意,如果结果在中,这将不起作用,因为不允许 SPILL 的结果。但是,您可以在 B2C2 中放置单独的公式,公式会自动溢出。如果您需要该配置,请告诉我。