| すぐマク YNxv987 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| スペースで区切られた文字列の後半を取り出す方法は? |
|
|
|||
|
いろいろな方法が考えられます。ポイントとしては、対象データ量が多いので、処理速度が重要になります。また、エクセルシートの最大行数と、パソコンのメモリ容量も関係が出るでしょう。 ここでは、データのレイアウトの全貌が不明のため(1件の項目数など)、質問の「番号だけにする」ことに的を絞ってお答えします。 1) 元データの種別と番号の間に、スペースが1個だけあるならば、そのスペースが「先頭から何文字目」にあるのかを探します。 2) その文字列の「文字数」を調べます。 3) 「文字数」から「先頭から何文字目」を差し引くと、「番号の文字数」が出ます。 4) その文字列の右端から、「番号の文字数」分の文字を取り出します。
(注) ・わかりやすく説明するために、C列とD列の式を分けましたが、実務では1つにまとめてください。 ・元データのB列に対する式は、A列に対する式と同様てすから省略しました。 もう、おわかりかも知れませんが、あらかじめ上図のように計算式を埋め込んだシートを作っておき、元データのシートからキー部分をこのシートのA列に写せば、D列に答えが出ます。 数千件のデータとか少量データの場合は、マクロを組む必要は少ないでしょう。質問のケースは「20万件もある」とのことですので、マクロとしては、 1) 元データのA列をそっくりコピーして、計算式を埋め込んであるシートのA列に貼りつける 2) 元データ全体を、変換結果(答)を格納するシートに複写する 3) 計算式を埋め込んであるシートのD列をコピーして、変換結果を格納するシートのA列に値だけ貼りつける。 以上の機能だけで、済むと思います。 ただし20万件もあると、1枚のシートに全データが入っているのではないでしょうから、数回に区切って反復処理する工夫が、必要になると思います。 絶対してはいけないことは、1件づつ順に番号を取り出して、20万回ループさせるという古来の手法です。処理時間のムダは大きな損失ですし、せっかくエクセルを使っているのですから、エクセルの機能を活用して、すばやく処理しましょう。 では、頑張って組んでみてください。ご成功を祈ります。 |
| http://www.happy500z.com/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |