過去の桐井戸端BBS (桐ver.9) |
22268 | 空欄になっている項目に#直前値を使ってデータを入れたい | tama | 2003/09/09-20:32 |
教えてもらいたい事があります。会社で下の様なデータ(エクセル)をいただきました。(その後桐に変換しました) 例 ファイル名 商品.tbl 項目名 あ い う え お 1 2 3 4 01 1 02 1 03 2 3 4 5 01 2 02 3 4 5 6 01 3 02 3 03 3 04 4 ・ ・ ・ ・ ・ ・ ・ ・ ・ 項目名”あ”と”お”は最後の行(1000行)までデータが入っているの ですが、上記の様に”い” ”う” ”え”については空欄になっています。 数行であれば、手動で直前値をするのですが、1000行にもなると時間はかかるし、辛いです(;。;) そこで、項目名”あ”を参照して空欄の”い” ”う” ”え”を直前値する 一括処理する方法があればご教授をお願いします。”お”についてはそのままということで・・・ 過去ログ等を確認しましたが、良く解らなかったので質問をさせていただきました。 ご迷惑をおかけしますが宜しくおねがいします。 | |||
22270 | Re:直前値について | 佐田 守弘 | 2003/09/09-22:49 |
記事番号22268へのコメント tamaさん 質問で、「項目名”あ”を参照して」と書かれていますが、どの様に参照するのかの意味が分りません。 多分、値が直前と変わっていたらの様にも取れますが、 そういう意味であれば参照する意味はなく、単に[い]移行の値が空白であったら 直前値をコピーすれば良いかと思います。 なお、行訂正や項目値代入では#直前値関数が使えませんから、 項目値を変数に代入しておいて、これを項目値に書き込みます。 すなわち、以下の通りです。 ジャンプ 行番号=先頭 代入 &い=[い],&う=[う],・・・ 繰り返し (.not #終端行) 条件 ([い]=#未定義) 行訂正 [い]=&い 条件 ([う]=#未定義) 行訂正 [う]=&う ・・・・・ 代入 &い=[い],&う=[う],・・・ ジャンプ 行番号=+1 繰り返し終了 と書いてみたものの、置換操作ないしは一括処理の置換コマンドで、 以下の計算式を使ってもできそうに思えますね。 置換 [い]=#条件選択([い]=#未定義,#直前値([い],""),1,[い]) [う]以降も同じ様に書きます。 佐田守弘(KS-00119) | |||
22271 | Re:直前値について | tama | 2003/09/09-22:54 |
記事番号22270へのコメント 佐田 守弘さん早速のご教授ありがとうございました。 手元にデータが無いので明日確認をします。 解りづらい質問ですみませんでした。 | |||
22272 | 「#直前値」関数の仕様? | 悲しげ | 2003/09/09-23:28 |
記事番号22270へのコメント どもっ、佐田さん 私も「項目名”あ”を参照して」の趣旨が判らないことは同じですし、 > 置換 [い]=#条件選択([い]=#未定義,#直前値([い],""),1,[い])\ > ,[う]=#条件選択([う]=#未定義,#直前値([う],""),1,[う])\ > ,・・・・・・・・ 最初はそう考えましたが、だがしかしbut、実際にやってみると 項目名 あ い う え お 1 2 3 4 01 1 02 1 03 1 04 ↓ 1 2 3 4 01 1 2 3 4 02 1 03 1 04 のようにしかならないのです。(?_?) どうやら「#直前値」関数は、置換される前(変更前)の値を保持しているようなのです。 だから、本件のやり方としては、先に挙げた 「繰り返し」ループで1行づつ舐めていくしかなさそうです。 が、「#直前値」関数の仕様って、昔からこうでしたっけ? としたら、桐ver4から使って来ましたが、今回初めて知りました。(^^;) | |||
22274 | Re:「#直前値」関数の仕様? | 佐田 守弘 | 2003/09/09-23:42 |
記事番号22272へのコメント 悲しげさん だめでしたか。繰り返しループの方を書いているうちに、 こんな方法もあろうかと思って追加したので、試してませんでした。 >が、「#直前値」関数の仕様って、昔からこうでしたっけ? 言われてみると、そこまで深く考えた事はなかったですね。 確かに#直前値関数が使えるケースは限られてますけど。 佐田守弘(KS-00119) | |||
22278 | Re:「#直前値」関数の仕様? | T.Samura | 2003/09/10-07:42 |
記事番号22272へのコメント 悲しげさん、こんにちは。 > 置換 [い]=#条件選択([い]=#未定義,#直前値([い],""),1,[い])\ > ,[う]=#条件選択([う]=#未定義,#直前値([う],""),1,[う])\ > ,・・・・・・・・ これで会話処理・一括処理とも巧く行きましたが、ひょっとして 表の項目値にスペースが入っているとか? | |||
22281 | Re:「#直前値」関数の仕様? | うにん | 2003/09/10-09:12 |
記事番号22272へのコメント > 1 2 3 4 01 > 1 2 3 4 02 > 1 03 > 1 04 > >のようにしかならないのです。(?_?) >どうやら「#直前値」関数は、置換される前(変更前)の値を保持し >ているようなのです。だから、本件のやり方としては、先に挙げた >「繰り返し」ループで1行づつ舐めていくしかなさそうです。 > >が、「#直前値」関数の仕様って、昔からこうでしたっけ? >としたら、桐ver4から使って来ましたが、今回初めて知りました。(^^;) V5ではちゃんと置換されました。 V9SP1でも「行ごとに確認」すると置換されるのですが、これでは本末転倒。 「アンドゥ」が影響しているのかと思いましたが、そうでもないようです。 なんでしょうね? | |||
22283 | Re:「#直前値」関数の仕様? | 宮城 | 2003/09/10-12:40 |
記事番号22278へのコメント V8 SP6だと T.Samuraさんのお書きになっているとおり、会話・一括処理とも 問題ないようです。悲しげさん、V9? | |||
22284 | Re:「#直前値」関数の仕様? | 悲しげ | 2003/09/10-15:01 |
記事番号22283へのコメント どもっ、宮城さん >V8 SP6だと T.Samuraさんのお書きになっているとおり、会話・一括処理とも >問題ないようです。悲しげさん、V9? ははぁ、なるほど。私はV9sp1です。多分うにんさんも。 で、早速V8sp7で試してみましたが、仰るとおりです。 つーことは、仕様変更とも考え難いので、V9(sp1)のバグっぽいですね。 | |||
22285 | 手抜き入力の手入れとでもいうのだか? | 宮城 | 2003/09/10-19:21 |
記事番号22268へのコメント #直前値関数はさておきまして。 書き込みの意図が、「あ」の値が同様であるならば、「い」「う」「え」 各項目も先頭レコードと同じ値を引き継がせたい。 つまり、「あ」から「え」までの項目がセットである、という意味にも取れないことはありません。 (しかし、かなり想像をたくましくして、ですよ。実例をあげていただいてるから、書いてみるんですが。) そうであれば、本当に「あ」にしか値がなく「い」「う」「え」はヌルの場合もある可能性があります。 (さらに言えば、もしそうなら、実は「い」「う」「え」を表中に持ち込む必要はないんですが。) であれば、こんな操作になります。レコードの並びはきっちり保証されているという前提を「勝手に」置きます。 カーソルを「あ」にもってきて「絞込み」→「単一化」。これで、「い」「う」「え」にデータの入ったレコードだけが 表示されている状態になります。これを「書き出し」、表名は仮に「WRK.TBL」。 まだ、元の表だけが開いてる状態です。「絞込み」→「補集合」で、 「い」「う」「え」が空のレコードだけが表示されている状態になりますので、 「併合」→「置換」。元表は「WRK.TBL」。「あ」で照合し、 「い」「う」「え」はそれぞれ複写。 ご本尊をつぶしてしまったら大変ですので、コピーして、コピーしたものに対してやってみてください。 |