6

列 A に文字と数字が混在する文字列があります。「abc123」が列Bで「abc」、列Cで「123」になるように、表示される最初の数字の前で文字列を半分に分割したい.

4

2 に答える 2

12

何らかのパターンがある場合、たとえば、常に 3 文字 ... または 3 文字または 4 文字のみなど、より簡単に達成できますが、任意の数の文字に対して (数字が常に文字の後にあると仮定して)、この式を使用できます。 B2で(これは、topcat3のリンクで提案されている式よりも簡単だと思います)

=LEFT(A2,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A2&1234567890))-1)

そして、C2のこの式

=REPLACE(A2,1,LEN(B2),"")

この最後の数式は、数値部分をテキスト値として返すことに注意してください。数値にしたい場合は、数式の末尾に +0 を追加します (ただし、先頭のゼロは失われます)。

于 2013-02-27T16:33:41.533 に答える
1

Barry の式のわずかなバリエーションに貢献したかっただけです。私の意見では、理解するのは少し簡単ですが、使用するのは少し難しいです:

この配列数式を使用して、最初の数値の開始位置 + 1 を見つけることができます。

{=MIN(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},A2),""))}

ctrl+alt+enterで入力して配列数式にします。

次に、その数値を使用して、文字列の最初の部分を分割できます。

=LEFT(A2,B2-1)

次に、REPLACE() を使用して、文字列の最初の部分 (文字) を取り除くことができます。

=REPLACE(A2,1,LEN(C2),"")

彼の方が使いやすく、より簡潔であるため、これではなく、バリーの答えを受け入れる必要があります。しかし、バリーの式がどのように機能するかを理解するために、私の探求にバリエーションを追加したかっただけです.

于 2013-02-27T18:01:40.473 に答える