0

次のような英数字を含む行を含む1つの列「M」のスプレッドシートがあります。103.14JoseDolorezChavez。セルの各行をループし、数値を切り取って隣接する列に貼り付けることができるコードがあるかどうかはわかりません。したがって、最後に、次のようになります。1つの列:103.14別の列:Jose Dolores Chavez

誰かが私を助けてくれませんか。どこから始めたらいいのかわからない。コードは、列「M」の500行すべてをループし、値を検索/切り取り、列「N」に貼り付ける必要があります。

アドバイスをいただければ幸いです。よろしくお願いします。

4

2 に答える 2

4

いいえ、パターンは全体を通して同じままです: 番号の後に従業員名が続きます。– ドラ 13 分前

これには VBA は必要ありません。これは、Text To Columns を使用して簡単に実現できます。

列 M を強調表示し、[データ] | [データ] をクリックします。列へのテキスト | 区切られた

区切り文字としてスペースを選択し、[終了] をクリックすると完了です。ここでスナップショットを参照してください

wikisend.comimgurが今日ダウンしているように見えるので、スクリーンショットをアップロードします。

于 2012-08-10T15:19:57.750 に答える
2

使用できるVBA関数は次のとおりです。文字列の先頭の数値部分を返す Val 関数を使用します。ワークブックの通常のコード モジュールに配置するだけです。

Function GetNumAtBeginOfString(StringWithNum)
GetNumAtBeginOfString = Val(StringWithNum)
End Function

次に、列 O に次の式を入力します (データが行 2 から始まると仮定します)。

=GetNumAtBeginOfString(M2)

列 N に次の式を入れると、次のようになります。

=TRIM(SUBSTITUTE(M2,O2,""))

...そして下にコピーします。

これにより、元の文字列と 2 つの新しい列が残ります。必要に応じて、オリジナルをコピーして貼り付けることができます。

編集: VBA 関数の代わりに、列 O でこの Excel 数式を使用できます。

=MAX(IF(ISNUMBER(LEFT(M2,ROW($A$1:$A$100))*1),(LEFT(M2,ROW($A$1:$A$100))*1),0))

これは配列数式であり、次のように入力する必要がありますCtrl-Shft-Enter

于 2012-08-10T15:06:33.047 に答える