過去の桐井戸端BBS (桐ver.8)
20558 直前行と同じデータのとき「同上」というふうに文字を変換したい nicchi 2003/05/25-23:03
直前値についての質問があります。タイトルの通り直前行と同じデータの時
「同上」と変換したいのですが、
過去ログで
#条件選択([]="〃",#直前値([],""),1,[])

で、できると書かれていたので、Ver8SP7で項目置換でやってみたのですが、
全く置換されず???になってしまいました。また、レポート上では
#条件選択(&比較式=[],"同上",1,[])
の式でOKらしいのですが、表でできる式はありますか?
一括処理でもやってみたのですが、つたない知識でうまくいかず困ってしまいました。
何卒宜しくおねがいします。
20559 Re:直前行と同じデータのとき「同上」と文字を変換したい うにん 2003/05/25-23:27
記事番号20558へのコメント
>「同上」と変換したいのですが、過去ログで
>#条件選択([]="〃",#直前値([],""),1,[])

これは、同上の記号になっているものを実際の値に戻す場合じゃないですか?
(つまり、したいことの逆です)

>で、できると書かれていたので、Ver8SP7で項目置換でやってみたのですが、
>全く置換されず???になってしまいました。また、レポート上では
>#条件選択(&比較式=[],"同上",1,[])
>の式でOKらしいのですが、表でできる式はありますか?

表のデータを「同上」に置換してしまうとデータとして無意味(ソートできません)になってしまうのでお勧めできません。

レポートや一覧表印刷の時のみ使うのがいいでしょう。

20560 Re:直前行と同じデータのとき「同上」と文字を変換したい KH 2003/05/25-23:31
記事番号20558へのコメント
nicchiさん、こんばんわ。

>全く置換されず???になってしまいました。また、レポート上では
>#条件選択(&比較式=[],"同上",1,[])
>の式でOKらしいのですが、表でできる式はありますか?

よく分からないのですが、直前値と同じデータを表上で書き換えてしまいたいということですか?
そうすると同じデータが「同上」と書き換えられてしまいますから、
データの絞込みなどに不都合が生じませんか?
まあ、書き出した表ならば問題は無いんでしょうが・・・。

一覧表印刷で表示上だけのことでしたら、グループを設定して同じ値が続く場合真ん中に1個だけ表示するような事や
改ページは簡単に出来ますが、そういう事で代用できることではないんでしょうね。
20561 やめた方が良いですよ 佐田 守弘 2003/05/25-23:42
記事番号20558へのコメント
nicchiさん
●やめた方が良いですよ
同じデータが並ぶ時に「同上」ないし「〃」などと表示したい気持ちは分らないではありませんが、
データベースのデータとして「同上」と書き込むのは、やめた方が良いと思います。
その理由は、桐に限らずデータベースの行データは、基本的には順序の概念がありません。
たまたまその順に並べてあるだけです。
必要な順序で並べ替えをして使うのが普通ですから、「同上」と書いてしまうと、どの行に同上なのか分らなくなります。

もし「同上」と表示する場合でも、単に印刷時にその様な印刷をすれば良く、
データはどの様な順で並べ替えても意味を持つ様に、きちんとした値を持つべきです。

【実話】
コンピュータがなかった時代の実話です。設備の調査を行おうとして調査票を配付ました。
集めた調査票を重ねて1行毎に切り離し、これを種類別に並べ替えようとしました。
ところが、場所や管理者名の欄に書かれていたのは「〃」の羅列。

●なぜ「#直前値」関数で置換できなかったのか
ある値、例えば「東京」が5行並んでいたとします。
これを書かれている方法で置換する事を考えてみます。
1行目は置換せずそのまま「東京」のままです。2行目は直前行と同じですから、「同上」になります。
しかし3行目は直前の「東京」は、置換された2行目の「同上」と異なりますから、置換されません。
以下同じ様な事が続きます。
これが置換できない理由です。

参照された過去ログは、「〃」が書かれている行を直前の行と同じ値に書き換える式だから
成り立つアルゴリズムです。

佐田守弘(KS-00119)
20566 わかりました nicchi 2003/05/26-06:22
記事番号20561へのコメント
皆様、色々と心配していただきありがとうございました。
今回やろうとしている事は、別表に書き出してから置換又は一括処理で変換をしたかったのですが・・・
最終的には、レポート上の印刷で「同上」となればいいので、過去ログに載っていたやり方でやってみます。
色々ありがとうございました。

戻る