(現在 過去ログ83 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■12505 / inTopicNo.1)  (の扱い
  
□投稿者/ 一括小僧 -(2020/07/08(Wed) 16:37:49)
    例えば、項目「社名」の中に、「(株)○○」とか、「(株)△△」とか、
    「(有)□□」と書かれていて、この組織形態の「(株)」「(有)」部分だけを抽出したいとします。

    項目置換で、


    #計算(
    #代入(&件数,#文字位置([],"(")),
    #代入(&選択件数,#文字位置([],")")),
    #部分列([],&件数,&選択件数)
    )


    と書いてみたのですが、”(”の部分の文字位置がうまく取得できていないようです。
    他に、”自体を計算式内に書きたいときなども、(ヘルプで見た気がするのですが、)
    """"と4つ重ねたような気がするのです。

    この辺り、纏めている方、ご教示ください。
    よろしくお願い申し上げます。
引用返信 [メール受信/OFF] 削除キー/
■12506 / inTopicNo.2)  Re[1]: (の扱い
□投稿者/ 鳴瀬 -(2020/07/08(Wed) 20:32:49)
    > #部分列([],&件数,&選択件数)
    #部分列の第三パラメーターは文字位置ではなく文字数だと思うのですが。
    なので
    #部分列([],&件数,&選択件数ー&件数+1)
    でどうでしょうか。
引用返信 [メール受信/OFF] 削除キー/
■12509 / inTopicNo.3)  Re[2]: (の扱い
□投稿者/ くおんたむ -(2020/07/08(Wed) 22:44:25)
    絞り込みでしたら次のような方法でどうでしょうか?

    絞り込みの条件式で

    #Cond( #文字位置( [], "(株)" ), [], #文字位置( [], "(有)" ), [], 1, "" ) <> "" )

    ※比較する項目は[社名]です。
     文字列と判断しております。

    ※数字でしたら別になりますので、その際にはアップ
     させて頂きます。
引用返信 [メール受信/OFF] 削除キー/
■12510 / inTopicNo.4)  Re[2]: 「(」の扱い
□投稿者/ 悲しげ -(2020/07/08(Wed) 22:55:04)
    ちょっと不思議なのは

    >項目置換で、
    >
    >#計算(
    >#代入(&件数,#文字位置([],"(")),
    >#代入(&選択件数,#文字位置([],")")),
    >#部分列([],&件数,&選択件数)
    >)

    のように項目として[]すなわち自分自身を指定してしまうと、置換で元の社名の固有値が消えてしまって、「(株)」とかだけになってしまいますよね。(^^;)
    私なら項目置換は別項目として、例えば
     #計算(#代入(&件数,#文字位置([社名],"(")),#代入(&選択件数,#文字位置([社名],")")),#部分列([社名],&件数,&選択件数-&件数+1))
    のようにして作業します。ま、何のために必要なのかによりますが。
    なお、#部分列の式は鳴瀬さんの指摘を採用しています。
    その辺りは、例えば「あいうえお(株式会社)かきくけこ営業所」とかで試してみれば確認できます。

    例示の「(株)」とかだと余計な妄想が惹起されるので、
    本件は一般論的に「半角カッコで囲んだ文字列を抽出したい」として受け止めました。
    ついでに言えば(株)等のカッコは半角に限りますね。全角カッコも扱うならもう一工夫要りますから。

    >他に、”自体を計算式内に書きたいときなども

    う〜ん、これはパス(^^;)。
    "有"とかですか?
引用返信 [メール受信/OFF] 削除キー/
■12511 / inTopicNo.5)  Re[3]: 「(」の扱い
□投稿者/ 悲しげ -(2020/07/08(Wed) 23:05:50)
    2020/07/08(Wed) 23:17:24 編集(投稿者)

    No12510に返信(悲しげさんの記事)
    >例示の「(株)」とかだと余計な妄想が惹起されるので

    妄想ついでに、
    もし社名として「株式会社」と「(株)」が混在しているのが美しくないということならば
    全て統一してしまう方法もあります。
    愚直ながら
     #s(#s(#s([],"(株)","株式会社"),"(有)","有限会社"),"(合)","合名会社")・・・・etc)
    とか。(この逆の統一も有りかな?)
    ※「#s」は「#文字置換」の略記です。多重入れ子で式が長くなるから。

    ps.
    「抽出」なら「項目置換」ではなくてやはり「絞り込み」ですね(No12509くおんたむさん仰せのとおり)

    ps2.
    「計算式」と「条件式」の違いはヘルプを参照して下さい(ちょっと判りにくいけど)。
    ざっくり言うと、検索や絞り込みは「条件式」を使います。
    「計算式」の使える場所は限定されます。(項目計算式、置換、フォームやレポートの一部とか)
引用返信 [メール受信/OFF] 削除キー/
■12512 / inTopicNo.6)  Re[3]: (の扱い
□投稿者/ くおんたむ -(2020/07/09(Thu) 22:36:31)
    > #Cond( #文字位置( [], "(株)" ), [], #文字位置( [], "(有)" ), [], 1, "" ) <> "" )

     構文に誤りがありました。

     正しくは、

      #Cond( #文字位置( [], "(株)" ), [], #文字位置( [], "(有)" ),[], 1, "" ) <> ""

     です。

     失礼いたしました。
引用返信 [メール受信/OFF] 削除キー/
■12513 / inTopicNo.7)  Re[4]: 条件式の例
□投稿者/ 悲しげ -(2020/07/10(Fri) 14:04:43)
引用返信 [メール受信/OFF] 削除キー/
■12514 / inTopicNo.8)  Re[5]: 条件式の例
□投稿者/ ONnoji -(2020/07/10(Fri) 14:47:25)
    2020/07/11(Sat) 09:34:12 編集(投稿者)
    2020/07/10(Fri) 15:07:49 編集(投稿者)

    >  #cond(#文字位置([],"(株)" .or #文字位置([],"(有)"),[],[],#u,1,"1")
    >  (数値系項目なら末尾の「"1"」は「1」)

    昔のDOS桐では、

    比較式では、左辺右辺のどちらか一方に項目名そのものを書かなければならなかったのです。

    すなわち、<項目名> <比較演算子> <値>

      <項目名> ・・・ [会社名] ← 明示されていませんが、暗黙に内に指定しています。  条件が新ならば
    <比較演算子> ・・・ =     ← これも明示されていませんが、暗黙に内に指定しています。  ↓   ↓恒真式( 1 )で、偽の場合には[会社名] + "蛇足"を返す
        <値> ・・・ #cond( #文字位置([会社名], "(株)" ) .or #文字位置([会社名], "(有)" ) , [会社名], 1, [会社名] + "蛇足" )
             ※この式は、真の場合に[会社名]を、偽の場合に[会社名] + "蛇足" を返します。
              ↑これが肝です。"蛇足" は、文字列ならば、なんでもOK。つまり、"1"でもOK、未定義値以外ならばなんでもよし。
               だから数値の場合には、"蛇足" の代わりに 1 を加算しています。ゼロ以外ならばどんな値を加算しても減算してもOK。  

    と、実に窮屈な方法をとらないとイケなかったのです。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    しかし、Win桐では、左辺右辺のどちらにも式が書けるように拡張されていて、窮屈でない自然な式が書けますよ。

    すなわち、<式1> <比較演算子> <式2>

    くおんたむさんの例示では

    #Cond( #文字位置( [], "(株)" ), [], #文字位置( [], "(有)" ),[], 1, "" ) <> ""

       <式1> ・・・ #Cond( #文字位置( [], "(株)" ), [], #文字位置( [], "(有)" ),[], 1, "" )
    <比較演算子> ・・・ <>
       <式2> ・・・ ""

    私ならば、( 条件式 ) = 1 の形を好むので次のように

    ( #文字位置([会社名],"(株)" ) <> 0 .or #文字位置([会社名],"(有)") <> 0 ) = 1

       <式1> ・・・ ( #文字位置([会社名],"(株)" ) <> 0 .or #文字位置([会社名],"(有)") <> 0 )
    <比較演算子> ・・・ =
       <式2> ・・・ 1

    拡張辞書順がよろしければ、

    ( #部分一致([会社名],"(株)", 3 ) <> 0 .or #部分一致([会社名],"(有)", 3 ) <> 0 ) = 1

       <式1> ・・・ ( #部分一致([会社名],"(株)", 3 ) <> 0 .or #部分一致([会社名],"(有)", 3 ) <> 0 )
    <比較演算子> ・・・ =
       <式2> ・・・ 1

    <参考> 「フォームアプリケーション教書 第2部 21.6 比較式の左辺と右辺の両方に計算式を指定する」より

     桐のヘルプに非常に重要なことが[ノート]として書かれているが、それに気が付いた人は非常に少ないと思います。
    以下の引用します。

     【引用】「桐のヘルプ」の「データと式」→「比較式」→「仕様(比較式)」
      ノート
      ・ワイルドカード(*、×)を使うときは、左辺か右辺の一方が項目名でなければいけません。
      ・ワイルドカードを含む文字列を検索するときは、かならず検索する文字列を二重引用符でくくってください。
       たとえば文字列中の「×」を検索する場合は「"×"」としなければいけません。
      ・旧バージョンでは、左辺か右辺のいずれかが項目名でなければいけませんでしたが、本バージョンからは、左辺と右辺の両方に計算式を指定できます。
      ・つぎの関数を使うときは、左辺か右辺の一方が項目名でなければいけません。
       #未定義
       #定義
       #削除

     さて、この[ノート]で、最も重要なのは次の文言です。

     ・旧バージョンでは、左辺か右辺のいずれかが項目名でなければいけませんでしたが、本バージョンからは、左辺と右辺の両方に計算式を指定できます。

     実は、この文言の[旧バージョン]とはDOS桐のことです。そして[本バージョン]とはWin桐のことです。
    つまり、「Win桐からは、比較式の左辺と右辺の両方に計算式を指定できます」という意味です。



引用返信 [メール受信/OFF] 削除キー/
■12515 / inTopicNo.9)  Re[6]: 条件式の例
□投稿者/ 悲しげ -(2020/07/10(Fri) 15:59:14)
    No12514に返信(ONnojiさんの記事)
    そうだったんですね。
    私は未だにDOS桐の人でした。(^^;)
引用返信 [メール受信/OFF] 削除キー/
■12517 / inTopicNo.10)  Re[7]: 条件式の例
□投稿者/ くおんたむ -(2020/07/11(Sat) 10:46:23)
引用返信 [メール受信/OFF] 削除キー/
■12518 / inTopicNo.11)  Re[8]: 条件式の例
□投稿者/ ONnoji -(2020/07/11(Sat) 11:01:49)
    2020/07/11(Sat) 14:50:39 編集(投稿者)
    2020/07/11(Sat) 14:04:27 編集(投稿者)

    くおんたむさん。

    ずいぶん昔のことどすなぁ〜。はんなり。

    p.s.

    当方のハンドル名は、× ONNoji ○ ONnoji ですよ。今も昔も。



    さらに、p.s.

    リンク切れは以下のURLで見られます。

    11008 条件名で絞り込みするときの条件式でワイルドカード(*)が使えない
     ↓
    http://www.habata.net/kiri/kbbs/kakov8/11008.htm

    15753 複数の文字を絞込みすることはできますか
     ↓
    http://www.habata.net/kiri/kbbs/kakov8/15753.htm

    以下はURLがありません。

    旧かっこうBBS:絞り込み [ダミー項目]{ ( 条件式 ) = 1 }
     ↓
    ジオシティーズはサービス終了しました。


引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -