過去の桐井戸端BBS (桐ver.9)
29050 住所録の番地の中の「の」の文字以降をばっさり消去したい ky823 2005/02/15-13:08
住所録を再構築しているのですが
番地を文字列で構築してしまい整列をかけると
13番地より113番地が前に来てしまいます

できることなら数値に直したいのですが
113の3とか
25の5のように
「の」とか「-」があります

ズバリ
「の」以降をばっさり切り捨てる方法はないものか考えているのですが
どなたか教えてくれますか?
29053 Re:指定文字以降消去する 宮城 2005/02/15-15:19
記事番号29050へのコメント
#文字位置(str1,str2) にて、str1 に最初に str2 が現れる文字位置
取得可能。

#部分列(str,1,n) にて、strの 1文字目から n文字目までの取得可能。

この組み合わせで可能とは思いますが、お望みのとおり、

>「の」以降をばっさり切り捨てる

んですが、それで本当にいいんですか?

113の3
21-1

をどう処理なさるおつもりか書かれてないのでちょっと不安。

29054 Re:指定文字以降消去する 宮城 2005/02/15-15:27
記事番号29053へのコメント
>>「の」以降をばっさり切り捨てる

念のため、このまま実行すれば「回復不能に」切り捨てますので
それなりのケアはなさってください。

29056 感謝します 実際のところ ky823 2005/02/15-17:07
記事番号29054へのコメント
>#文字位置(str1,str2) にて、str1 に最初に str2 が現れる文字位置
>取得可能。

>#部分列(str,1,n) にて、strの 1文字目から n文字目までの取得可能。

>この組み合わせで可能とは思いますが、お望みのとおり、

>>「の」以降をばっさり切り捨てる

さっそくのご教示感謝します
実際のところ
109の1という番地は文字列で定義されていますが
これを項目置換でしょうか

すると
#文字位置([],"の" )となるのでしょうか?
つまり,"の"の位置を確認

それで,部分列とどのように
組み合わせていいのかわかりません

ちなみにご心配されたデータの保存は
既にある項目を複写しています
数字だけにしたら数値に再定義しようと思ったのですが・・・

再度ご教示願えますか

29057 Re:感謝します 実際のところ 宮城 2005/02/15-17:40
記事番号29056へのコメント
>すると
>#文字位置([],"の" )となるのでしょうか?
>つまり,"の"の位置を確認
>
>それで,部分列とどのように
>組み合わせていいのかわかりません

う〜ん。当初の命題は「『の』以降をばっさり切り捨てる」でありました。
すなわち、今入力されている番地の 1文字目から「の」が出現する文字位置
の1文字前までを取得すればいいわけですね。

それで、

>#文字位置([],"の" )となるのでしょうか?
>つまり,"の"の位置を確認

して、

>>#部分列(str,1,n) にて、strの 1文字目から n文字目までの取得可能。

であるとしたら、もう答えはでているはずですが。

ちょっと#部分列の説明が誤解を招きかねないので訂正。

#部分列(str,1,n) にて、strの 1文字目から n文字分(文字数)までの
取得可能。

それから、元の番地が「の」を含まなかった場合の回避がいるので、一つの答えは

#条件選択(#文字位置([番地],"の")=0,[番地],1,#部分列([番地],1,#文字位置([番地],"の")-1))

ということに。回避がない方がわかりやすいでしょうから、回避なしでの記述は

#部分列([番地],1,#文字位置([番地],"の")-1)

となります。
29060 感激ですが・・・・もうひとつ ky823 2005/02/15-20:40
記事番号29057へのコメント
>それから、元の番地が「の」を含まなかった場合の回避がいるので、一つの答
>えは
>#条件選択(#文字位置([番地],"の")=0,[番地],1,#部分列([番地],
>1,#文字位置([番地],"の")-1))
>ということに。回避がない方がわかりやすいでしょうから、回避なしでの記述は
>#部分列([番地],1,#文字位置([番地],"の")-1)
>となります。

ありがとうございます
感謝感激です
ほとんど答えを書いていただき恐縮です

しかし,今度は
別の項目に残した「143の1」
の「1」の取り出しです

#部分列([],#文字位置([],"の"))

で置換しましたが
「の1」が出てしまいます
どうしたらいいのでしょう

29065 Re:感激ですが・・・・もうひとつ 宮城 2005/02/16-08:51
記事番号29060へのコメント
>#部分列([],#文字位置([],"の"))
>
>で置換しましたが
>「の1」が出てしまいます
>どうしたらいいのでしょう

「143の1」に上記を適用すると、#文字位置([],"の")で 4、#部分列([],4)
で、4文字目以降を取り出すということで、至極当然な結果です。

1文字前にずらす事例はすでに示していますが。

# 数字部分だけを独立項目にするというやり方は少々疑問(何項目必要になるかわ
# からない。)

# 1-2の「1-」はしばしば「一丁目」の略記だったりするけど。
29068 Re:感激ですが・・・・もうひとつ ky823 2005/02/16-11:12
記事番号29065へのコメント
ごもっともなご指摘です

当初の「の」以降をばっさりではなく
「の」より後ろだけ生かすのは
文字数によるというわけですね
ありがとうございます

あと,
分けて項目化するのは
143の31
15の5
によって文字列では整列がかからんかな
と思っただけです

なんどもご指導いただき
感謝のしっぱなしです
29094 Re:感激ですが・・・・もうひとつ しぼうかん 2005/02/17-19:24
記事番号29068へのコメント
ky823さん、こんばんは.

この表の[番地]は滅多に入力しないのでしょうか?

よく入力するのならば"置換"では無くて[番地整列]のような項目を作り、
項目計算式を書いてその項目を使って整列させるのが良いと思います。

その為には[番地]の"入力モード"を"半角英数"に指定して
区切り文字を"の"や"丁目"や"番地"では無く"-"に統一した方が良いと思います。

29097 ありがとうございます ky823 2005/02/17-21:33
記事番号29094へのコメント
>この表の[番地]は滅多に入力しないのでしょうか?
はい
実は説明不足で申し訳ないのですが
すでに700件ほど入っていて
それを並び替えるため,再構築する作業だったのです

>その為には[番地]の"入力モード"を"半角英数"に指定して
>区切り文字を"の"や"丁目"や"番地"では無く"-"に統一した方が
>良いと思います。

はいそうしてみました
すっきりしました
ありがとうございます

29099 Re:ありがとうございます しぼうかん 2005/02/17-21:47
記事番号29097へのコメント
700件程度でしたらあまり必要ではないかもしれませんが、もし[番地整列]
という項目を追加するので有れば以下の式を[番地整列]の項目計算式に書いて
[住所]→[番地整列]の順で並べ替えをすればいけると思います。


#計算(#代入(&STR,#文字置換([番地],"-",",")),#cond(#対応文字列(&STR,1)
="",0,1,#数値(#対応文字列(&STR,1))*1000000000000)+#cond(#対応文字列
(&STR,2)="",0,1,#数値(#対応文字列(&STR,2))*100000000)+#cond(#対応文字列
(&STR,3)="",0,1,#数値(#対応文字列(&STR,3))*10000)+#cond(#対応文字列
(&STR,4)="",0,1,#数値(#対応文字列(&STR,4))))


戻る