列 A に文字と数字が混在する文字列があります。「abc123」が列Bで「abc」、列Cで「123」になるように、表示される最初の数字の前で文字列を半分に分割したい.
2 に答える
何らかのパターンがある場合、たとえば、常に 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 を追加します (ただし、先頭のゼロは失われます)。
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),"")
彼の方が使いやすく、より簡潔であるため、これではなく、バリーの答えを受け入れる必要があります。しかし、バリーの式がどのように機能するかを理解するために、私の探求にバリエーションを追加したかっただけです.