過去の桐井戸端BBS (桐ver.7)
1510 文字列から切り出したい 巖淵 1999/3/7-04:02
住所データーの中の番地以降を一括削除したいのですが?
1513 Re: 幅田 1999/3/8-10:15
記事番号1510へのコメント
>住所データーの中の番地以降を一括削除したいのですが?

住所のデータの中から番地より前のものを取り出すという意味ですね。
住所部分に数字が入っていない場合は、

#部分列([住所],1,#IS数字([住所],0)−1)

でいいと思います。
[住所]の項目から、最初の文字から数字の位置のひとつ手前までを取り出すという意味です。

また、住所部分に数字が混在している場合で、番地部分が半角になっていれば

#部分列([住所],1,#IS半角([住所],0)−1)

という書き方も可能です。
1518 Re: 巖淵 1999/3/9-02:41
記事番号1513へのコメント
ありがとうございました。
しかし、もう少し質問が在ります。
住所に番地(数字部分)が一切ない場合は全てデータが無くなります。
住所の番地より前の部分に半角が在る場合もあるのでうまくいきません。
また、逆に番地部分のみを切り出す方法はどうやるのですか?
たびたびすいません。
1521 Re: 悲しげ 1999/3/9-12:04
記事番号1518へのコメント
どもっ、巖淵さん、
これは「切り出し」(番地以降を削除)と云うより「切り分け」
(番地より前の部分と番地以降に分割する)ですね。

仮に[住所]を[住所1]と[住所2]に切り分けるものとします。
[住所1]の方は幅田さんがお書きになったとおりです。

>また、逆に番地部分のみを切り出す方法はどうやるのですか?

これを[住所2]とすれば、[住所1]の方が

>>[住所]の項目から、最初の文字から数字の位置のひとつ手前まで
>>を取り出すという意味です。

ですから、今度は逆に「最初に数字が出てきた位置以降を取り出す」ことになります。
[住所2]の場合は

 #部分列([住所],#IS数字([住所],0))

になると思います。
これらは項目計算式ではなく、各項目毎に置換で実行します。

>住所に番地(数字部分)が一切ない場合は全てデータが無くなります。
>住所の番地より前の部分に半角が在る場合もあるのでうまくいきません。

データの中で、他に適当な法則性を見つけられない場合は、しょうがないので、こんな感じで
まず第1次切り分けとして、次に、それに当てはまらないデータだけを(手動で!)選択して
逐一訂正していくしかないような気がします。
1522 Re: 悲しげ 1999/3/9-12:35
記事番号1521へのコメント
抜けていました。(^^;)

>住所に番地(数字部分)が一切ない場合は全てデータが無くなります。

これを避けるには、[住所1]の場合

 #条件選択(#IS数字([住所],0)=0,[住所]\
   ,1,#部分列([住所],1,#IS数字([住所],0)−1)

のようにします。意味は[住所]の中に数字が含まれていなければ
データそのままを返し、1=そうでなければ以下の式に従う。

あと、この種の問題でよく使われるのは、字句としての
市・町・村・字などで判断する方法ですね。

当てはまらない例を列挙すると、皆さん色々考えてくれ
ると思いますよ。(^^)
1523 Re: tuji 1999/3/9-13:44
記事番号1518へのコメント
番地部分の切り出しというのが
先に切り出した住所部分([住所1]とします。)以外を切り出すというのであれば、[住所2]で
#文字置換([住所],[住所1],"")
と置換すれば、
[住所]:東京都千代田区1−1−1
[住所1]:東京都千代田区
というデータなら
[住所2]が1−1−1という結果が出ます。

ただし、[住所1]のデータが東京都千田区の様に中のデータが消えてたりすると、
[住所2]には[住所]のデータがそのままは入ってしまうので、
[住所1]は下手にいじらない方がいいみたいです。

戻る