« Excel で、文章を分割する。 | トップページ | Excel2013で、未使用のユーザー定義の表示形式を登録できないのは仕様 »

Excelの「区切り位置」で「スペースによって右または左に揃えられた固定長フィールドのデータ」を使う場合

この記事は自分用の覚書です。

「区切り位置」の機能は、「データ」タブの「データツール」グループのなかにある。
区切りたいデータが入っているセルを選んで実行すると、次の選択肢が表示される。
( Excel2013 Home & Business )

・カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ
・スペースによって右または左に揃えられた固定長フィールドのデータ

「カンマやタブなどの……」の方を選んでも、「区切り文字」として「スペース」を指定できる。
「スペースによって右または左に揃えられた固定長フィールドのデータ」は、どんな場合に使うのか。

■例
次のようにセルに入っているデータを、「西暦 月 日」・「製品番号」・「シリアル番号」の3つに分けたい。

Kugiriiti_no_data


・「スペースによって右または左に揃えられた固定長フィールドのデータ」の方を使う場合
上記のようなデータを分割したい場合は、「区切り位置」の「スペースによって右または左に揃えられた固定長フィールドのデータ」が使える。

具体的には、次の3つに当てはまる場合。

  1. 列のなかで1つひとつのセルに1個のデータが入っている。
  2. ここからここまでで一区切りにしたいといった固まりが、1個のデータのなかに1か所以上ある。
  3. 2個以上のデータがある場合は、1つの固まりにしたい位置がデータ間で同じ。

1.列のなかで1つひとつのセルに1個のデータが入っている。
例ではA列の1行目から4行目までの4つのセルにわたって4個のデータが入っている。

2.ここからここまでで一区切りにしたいといった固まりが、1個のデータのなかに1つ以上ある。
例では「西暦 月 日」・「製品番号」・「シリアル番号」の3つの固まりに分けたい。
・左の1文字目から8文字目までは、西暦と月と日
1月や3日などの一文字の場合は、01や03のように二ケタになっている。

・(左から)9文字目から5文字分(13文字目まで)は、製品番号。

・14文字目からあとは、シリアル番号。

3.2個以上のデータがある場合は、1つの固まりにしたい位置がデータ間で同じ。
各文字数は次のようになっている。
・西暦 月 日は8文字
1~8文字目

・製品番号は5文字
9~13文字目

・シリアル番号は14文字目以降
この例の場合は14文字目以降はすべて1つのセルに入れたいので、文字数を気にしなくてよい。

区切る位置は、8文字目と9文字目の境と13文字目と14文字目の境の2か所。それは4個のデータ間ですべて同じ。

1~8 | 9~13 | 14~

「スペースによって右または左に揃えられた固定長フィールドのデータ」と書いてあるが、スペースを含んでいるかいないかは、こちらを選択する場合の必須条件ではない。

エクセル以外のシステムからデータをエクスポートして持ってくる場合に、スペースを一部含んだ形になる場合がある。この表現はそのような場合を指している。

20150105CF-RZ    4SA0013
20150310CF-C1    SA2298
20150503AL-L1    MJ05111
20151015RT-W7    HW9876

のように。

このような形になっている場合、「スペースによって……」の方を選ばないとうまく分割できない。
「カンマやタブなどの……」の方を選んで「区切り文字」として「スペース」を指定すると、

20150105CF-RZ | 4SA0013

という分割になる。スペース(区切り文字)がない 20150105CF-RZ の部分は分割されない。

「固定長フィールドのデータ」とは、A列は8文字目まで、B列は9文字目から13文字目など「列」のセルに入れる文字数が決まっている(固定である)ということ。
データベースの世界では、エクセルの「列」にあたる領域を「フィールド」と呼ぶ。
(「行」のほうは「レコード」)

|

« Excel で、文章を分割する。 | トップページ | Excel2013で、未使用のユーザー定義の表示形式を登録できないのは仕様 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Excelの「区切り位置」で「スペースによって右または左に揃えられた固定長フィールドのデータ」を使う場合:

« Excel で、文章を分割する。 | トップページ | Excel2013で、未使用のユーザー定義の表示形式を登録できないのは仕様 »