FC2ブログ

文字数を指定して切り取る

ふと思いついた。

このブログでは、「月別アーカイブ」というタイトルで、何年何月に何件の記事を投稿したかの履歴が出る。

2010年08月 (22)
2010年08月 (22)
2010年09月 (29)
2010年10月 (30)


これを、月ごとにデータを取りたいのだけれども、そこそこ長くやっていると、全部手打ちで入力するのも手間である。
それで、EXCELの計算式を使って取得する。
上記のものを全部コピーしてEXCELに貼り付けると、1行目ならA列に「2010年08月 (22)」すべてが入ることになる。

=MID(A1,11,2)


とすれば「22」を得ることができる…のだが、マメに更新していたのは過去のこと、最近では大体「2019年09月 (8)」という感じだから、そうなると「8)」が取得されてしまう。
それで、もう少しだけ凝った計算式にする。

年月の部分は形が固定だから、

=LEFT(A1,8)


で「2010年08月」が取得できる。
問題は、「(22)」から数値のみを取り出す方法。
数値が始まるのは「(」の次からなのだから、それが何文字目なのかを取得。

=MID(A2,FIND("(",A1)+1


次に、そこから何文字取得するかを計算する。

=FIND(")",A1)-FIND("(",A1)-1


「(22)」なら「2」が返って来る。「(8)」なら「1」。

これを組み合せると、

=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)


となる。
開始位置と、取得する文字数を計算しているわけである。
なお、ここでは月が「08月」のような形で必ず2桁あるので単純に左から8文字、で取得しているけれども、「8月」のようになっている場合なら、「月」の
位置を取得してそこまで、というふうにする必要がある。
とは言え、

=LEFT(A2,FIND("月",A1))


とするに過ぎない。

上記のものをテキストエディタに貼り付けて、「 (」をタブに置換して、「)」を削除してEXCELに貼り付けてもほぼ同じ結果を得ることはできるのだけれども、それだけでは記事のネタにはならない。

コメントの投稿











管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
https://hoshinahouse.blog.fc2.com/tb.php/1360-63e3a76b