過去の桐井戸端BBS (桐ver.9)
21750 ある項目で空白のときデータが入っている行のところからコピーをしたい 小次郎 2003/08/03-04:39
桐ver9体験版
データのコピーについて教えて下さい。

 項目A・項目B
秋山一郎・アキヤマイチロウ
秋山一郎・
秋山一郎・
伊藤太郎・イトウタロウ
岡山太郎・オカヤマタロウ
岡山太郎・
岡山太郎・
岡山太郎・

空白の所にフリガナをコピーしたいのですが
置換式で
#条件選択([項目B]="",#直前値([項目B],""),1,[項目B])
を実行するとフリガナを入力している次の行しか反応しません
#直前値関数の他になにかいい方法あるのでしょうか?
それとも条件式の書き方が悪いのでしょうか?
どなたか教えて下さい。

21753 Re:データのコピーについて えぼし 2003/08/03-10:38
記事番号21750へのコメント
今日は
条件式は問題ないと思いますが
コピーしない行に空白とか入っていませんか
この式ではどうですか?
#条件選択(#直前値([項目A],"")=[項目A],#直前値([項目B],""),1,[項目B])

21754 Re:データのコピーについて 悲しげ 2003/08/03-13:28
記事番号21750へのコメント
どもっ、小次郎さん

>#条件選択([項目B]="",#直前値([項目B],""),1,[項目B])
>を実行するとフリガナを入力している次の行しか反応しません

この理由は判りませんが、ちょっと気になったことを書きます。
ときに、データが次のようになっている可能性はありませんか?

 項目A・項目B
秋山一郎・
秋山一郎・アキヤマイチロウ
秋山一郎・
伊藤太郎・イトウタロウ
岡山太郎・
岡山太郎・
岡山太郎・オカヤマタロウ
岡山太郎・

このような場合でも正しく処理させるには、予めデータの並びを
整えておく必要があります。並べ替えの条件としては例えば

1:項目A 昇順
2:項目B 降順(こうすると未定義やスペース?が後になる)

その上で、項目Bの置換計算式は

 #条件選択(#直前値([項目A],"")<>[項目A],[項目B]
      ,1,#直前値([項目B],""))

置換後、並べ替えを元に戻す。

21757 ありがとうございます 小次郎 2003/08/03-16:41
記事番号21754へのコメント
えぼしさん、悲しげさんありがとうございます。
えぼしさん空白はありません
悲しげさんソートしています

書き換えたい項目じゃなくて元の項目
を条件に#直前値関数をしないといけないようですね
私の条件式で続けてくれそうですが
やはり直前値自体が次の行のみなのでしょうね
良い勉強になりました
ありがとうございます。
21758 Re:ありがとうございます 悲しげ 2003/08/03-17:39
記事番号21757へのコメント
私の式はえぼしさんのと全く同じでしたね(順番が逆なだけで)。(^^;)

ところで

>私の条件式で続けてくれそうですが
>やはり直前値自体が次の行のみなのでしょうね

この文章の意味が全然判りませんが、判らないなりに
多分違うような気はします。
21760 Re:ありがとうございます 小次郎 2003/08/04-05:36
記事番号21758へのコメント
空白の場合は、直前値を持ってくる(表示)するように
考えたのですが一度に出来ないようです

行ごとに確認 チェック
置換

でやるとうまくいくようですが・・・

と言うことは#直前値関数はその項目を条件では
ダメと言うことでしょうね
何かの別条件を元に行うと上手く行くのでしょう


21761 すいません 小次郎 2003/08/04-06:05
記事番号21760へのコメント
悲しげさんすいません
私の勘違いでした

ただ条件となる項目が右側でコピーしたい項目が左側の時に
次の行のみコピーのようです


21768 Re:すいません 悲しげ 2003/08/04-14:27
記事番号21761へのコメント
小次郎さんwrote

>ただ条件となる項目が右側でコピーしたい項目が左側の時に
>次の行のみコピーのようです

う〜ん、ここで云う「右側」「左側」「コピー」と云うのは、
#21750で云う

> 項目A・項目B
>秋山一郎・アキヤマイチロウ
>秋山一郎・
>秋山一郎・
>伊藤太郎・イトウタロウ
>岡山太郎・オカヤマタロウ
>岡山太郎・
>岡山太郎・
>岡山太郎・
>・・・・
>#条件選択([項目B]="",#直前値([項目B],""),1,[項目B])

の置換を指すのでしょうか?
だとすると、ますます文意が判りません。

この間の一連の投稿は、おそらく使い方を間違っているからだ
と想像されるのですが、はて、どこが間違っているのか、
これでは推測不能です。
判るような書き方をするようにしましょう。

21792 Re:データのコピーについて eli 2003/08/07-15:53
記事番号21750へのコメント
小次郎さんは 初めまして、eliと申します。
別の切り口でやるとすると
まず、振り仮名の入っているデータを絞込みして単一化し書き出し書き出した表で元表を併合置き換えをします。
そうすればご希望のデータが得られますがいかがでしょうか?

21793 Re:データのコピーについて 悲しげ 2003/08/07-16:55
記事番号21792へのコメント
どもっ、eliさん、
そうですね。では私も別な切り口をもう1本追加しておきます。
まず、振り仮名の入っているデータを絞込みして単一化し書き出し、
(ここまではeliさんのと全く同じですが、次が逆で)
元表では絞り込み解除後に書き出した表を使って置換表引きします。
[項目B]の項目置換の計算式
  #表引き([項目A],=,"書き出した表名",[項目A],[項目B])

この辺りはお好み次第ですが、このふたつの違いとしては・・・
eliさんが挙げたやり方は、当該項目について、元表の方で索引が
設定されていると高速になります。
私の挙げたやり方は、当該項目について、逆に、書き出した表引き
対象表元表の方で索引が設定されていると高速になります。
21794 訂正 悲しげ 2003/08/07-16:58
記事番号21793へのコメント
最後の行

× 対象表元表の方で索引が設定されていると高速になります。
○ 対象表の方で索引が設定されていると高速になります。

コピペ時の消し忘れです。(^^;)
21795 ありがとうございます 小次郎 2003/08/08-08:46
記事番号21794へのコメント
条件式の件は私の勘違いでした。
すいません

その他いろいろな方法をありがとうございます
単一化という方法も興味がありますので試してみたいと思います

私の勘違いでご迷惑をおかけしました
すいませんでした

ちなみに8月6日に桐ver9の正規版を購入しました。
やっとマニュアルが読めます。
また質問しますがよろしくおねがいします

戻る