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

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

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

■11165 / inTopicNo.1)  大量の文字位置判定
  
□投稿者/ hiro -(2018/06/17(Sun) 10:43:43)
    2018/06/17(Sun) 11:10:03 編集(投稿者)
    2018/06/17(Sun) 11:09:40 編集(投稿者)
    2018/06/17(Sun) 11:09:11 編集(投稿者)
    2018/06/17(Sun) 10:54:03 編集(投稿者)
    2018/06/17(Sun) 10:47:47 編集(投稿者)
    2018/06/17(Sun) 10:47:16 編集(投稿者)

    会社で桐10s使っていまして
    摘要欄に「ある文字」があったら科目補助コードの数値を表示させ、実際の仕訳の補助コードと比較させてます
    今まではその「ある文字」が数件だったので
    #条件選択(#文字位置([摘要], ”あああ”)>=1,111,#文字位置([摘要], ”いいい”)>=1,222,#文字位置([摘要], ”ううう”)>=1,333,1,#う)
    としてたのですが、今度その「ある文字」が30件位になりそうなので、永遠と条件式に付けていくのもなんですし、何か表にデータを入れて同じように比較できないでしょうか?
    (手元に桐10sがなく、覚えてる範囲で上記の条件式を書いたので#文字位置の式は違ってるかも知れません)よろしくお願いします
引用返信 [メール受信/OFF] 削除キー/
■11167 / inTopicNo.2)  Re[1]: 大量の文字位置判定
□投稿者/ ONnoji -(2018/06/17(Sun) 11:21:03)
    2018/06/17(Sun) 11:35:44 編集(投稿者)
    2018/06/17(Sun) 11:28:56 編集(投稿者)
    2018/06/17(Sun) 11:22:37 編集(投稿者)

    > #条件選択(#文字位置([摘要], あああ)>=1,111,#文字位置([摘要], いいい)>=1,222,#文字位置([摘要], ううう)>=1,333,1,#う)
    > としてたのですが、今度その「ある文字」が30件位になりそうなので、永遠と条件式に付けていくのもなんですし、何か表にデータを入れて同じように比較できないでしょうか?

    1."あああ,いいい,ううう" ← 半角コンマで区切った文字列の前後を二重引用符( " )で囲んだもの

    2.#部分列( [摘要], 1, 3 ) は、[摘要]の先頭の1文字めから3文字という意味

    3.#対応番号( "あああ,いいい,ううう", #部分列( [摘要], 1, 3 ) ) は、#部分列( [摘要], 1, 3 )が何番めかを返します。※無ければ0(ゼロ)

    4."111,222,333" ← 半角コンマで区切った文字列の前後を二重引用符( " )で囲んだもの

    5.#対応文字列( "111,222,333", #対応番号( "あああ,いいい,ううう", #部分列( [摘要], 1, 3 ) ) ) は、"111,222,333"の何番めかを返します。※無ければ未定義値

    これら1.〜5.を組み合わせると、

    コードが文字列型ならば、

    #対応文字列( "111,222,333", #対応番号( "あああ,いいい,ううう", #部分列( [摘要], 1, 3 ) ) )

    コードが数値型ならば、

    #数値( #対応文字列( "111,222,333", #対応番号( "あああ,いいい,ううう", #部分列( [摘要], 1, 3 ) ) ) ) 

    ↑これで完成です。

    1.〜5.をひとつずつ正確に理解すれば、完成形を理解できます。

    対応関係は次のように1:1対応なので、

     "あああ,いいい,ううう" ※半角コンマで区切った文字列の前後を二重引用符( " )で囲んだもの

     "111,222,333"      ※半角コンマで区切った文字列の前後を二重引用符( " )で囲んだもの

    以後は以下のように1:1対応を増やしていけば、OKです

     "あああ,いいい,ううう,えええ,おおお"

     "111,222,333,444,555"

    論より証拠、サンプルを添付します。

    <追記>

    なお、項目計算式よりも項目属性:表引きで他の表から値を引くほうが融通が利くと思いますよ。

    なお、項目属性:表引きでは、重複禁止索引を使用すれば、表引き窓を開かないでダイレクトに値を入力して、さらに隣の項目へ移動できますよ。

    詳しくは、ヘルプを参照してください。




1529202063.zip
/1KB
引用返信 [メール受信/OFF] 削除キー/
■11168 / inTopicNo.3)  Re[2]: 大量の文字位置判定
□投稿者/ hiro -(2018/06/17(Sun) 11:34:27)
    ONnojiさん早速どうもありがとう御座います
    私の例が悪かったですが、摘要欄の検索文字は苗字だったり、内容だったりで
    一文字だったり2文字だったり3文字4文字と色々です
    回答の#部分列が3文字を取得しているのでその辺もうまくいきますか?

引用返信 [メール受信/OFF] 削除キー/
■11169 / inTopicNo.4)  Re[3]: 大量の文字位置判定
□投稿者/ ONnoji -(2018/06/17(Sun) 11:38:44)
    2018/06/17(Sun) 11:50:51 編集(投稿者)
    2018/06/17(Sun) 11:44:37 編集(投稿者)
    2018/06/17(Sun) 11:43:42 編集(投稿者)

    > 私の例が悪かったですが、摘要欄の検索文字は苗字だったり、内容だったりで
    > 一文字だったり2文字だったり3文字4文字と色々です
    > 回答の#部分列が3文字を取得しているのでその辺もうまくいきますか?

    この例だと3文字固定だと思いますよね。

    3文字固定で無ければ、破綻します。

    やはり、項目属性:表引きをお勧めします。

    項目属性:表引きでは、重複禁止索引を使用すれば、表引き窓を開かないでダイレクトに値を入力して、さらに隣の項目へ移動できますよ。

    詳しくは、ヘルプを参照してください。

    <蛇足>

    #部分列( [摘要], 1, 3 ) を #部分列( [摘要], 1, #文字数( [摘要] ) ) とすれば破綻しませんが、

    コテコテの項目計算式をさらに厚化粧にするだけなので、決してお勧めしません。

    コテコテの厚化粧の分かり難い項目計算式よりも、項目属性:表引きの方が設定がシンプルです。

    コテコテの厚化粧の項目計算式は分かり難いだけでなく、ケアレスミスの温床にもなります。

    詳しくは、ヘルプの項目属性:表引き を参照してください。


引用返信 [メール受信/OFF] 削除キー/
■11170 / inTopicNo.5)  Re[4]: 大量の文字位置判定
□投稿者/ hiro -(2018/06/17(Sun) 11:54:18)
    2018/06/17(Sun) 12:00:25 編集(投稿者)

    ONnojiさん有難うございます
    摘要欄は具体的には
    「スターバックス,斎藤さん高橋さん渡辺さん(全仮名)打ち合わせ」とか
    「〜カントリークラブ〜氏,利用税」とか
    #条件選択(#文字位置([摘要],”斎藤”)>=1,11,#文字位置([摘要],”利用税”)>=1,100,1,#う)
    とかでその比較する文字数は色々です

    元々、表引きは隣の項目で誰々で入力してるのですが、忙しいと直前行を使ったりしてうっかり間違ったまま仕訳を読み込んで終わってしまう時もあるので、最終的に月末に全仕訳を書き出して、本当に合っているか自動判定用のために作成しています(摘要欄は表引きをしようしていません)
引用返信 [メール受信/OFF] 削除キー/
■11172 / inTopicNo.6)  Re[1]: 大量の文字位置判定
□投稿者/ 悲しげ -(2018/06/17(Sun) 18:08:19)
    2018/06/17(Sun) 18:39:07 編集(投稿者)

    No11165に返信(hiroさんの記事)
    一括処理でやると例えばUpファイルのような感じかと思います。
    (「hiroある文字とコード.cmx」を一括処理実行する)

    別表で「ある文字」と「補助コード」の対応を用意しておきます(日々更新可)。
    1行目から最終行まで順番にある文字と対応補助コード値を変数に取得しておいて
    データ表の摘要欄に、当該ある文字が有るレコードを絞り込んで当該補助コードを置換で貼り付けます。

    データ例の中に敢えて「XX高橋XX利用税YZ」とか「XX高橋XX齋藤ZZ」とかを入れてみました。
    この辺りをどう扱うかはhiroさんが決めることです。


hiroarumojicode.zip
/16KB
引用返信 [メール受信/OFF] 削除キー/
■11173 / inTopicNo.7)  Re[2]: 大量の文字位置判定
□投稿者/ hiro -(2018/06/17(Sun) 19:02:30)
    悲しげさんどうもありがとうございます。
    明日会社で早速試してみます。
引用返信 [メール受信/OFF] 削除キー/
■11198 / inTopicNo.8)  Re[2]: 大量の文字位置判定
□投稿者/ hiro -(2018/06/19(Tue) 20:52:25)
    悲しげさんどうも有難うございました。
    試したところ、まさにこれです望んでいたものは
    しかも変数宣言せずに組み込み変数だけで簡潔に成し遂げるとは素晴らしいですね
    一括処理の内容は大体理解できますが、自分で一から組めるのかというと
    ちょっと怪しいので一人で打ち込めるよう反復練習します
    どうも有難うございました。

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■11361 / inTopicNo.9)  Re[2]: 大量の文字位置判定
□投稿者/ hiro -(2018/07/15(Sun) 09:16:31)
    悲しげさん前回は有難うございました

    > データ例の中に敢えて「XX高橋XX利用税YZ」とか「XX高橋XX齋藤ZZ」とかを入れてみました。

    例えば会議費科目コードの明細に高橋があっても、交際費の科目コードに高橋があっても同じ補助コードに置換されますが、科目毎に別の補助コードを使っているのもあり
    全ての科目コードで摘要の高橋が補助コードに変わっては困るので、科目コード毎に
    高橋があるか、斎藤があるのか等々判定させたいのですが、繰り返しの繰り返しってできるのでしょうか?
    その場合は、別の何かコマンドがあるのでしょうか?
    よろしくお願いいたします。
引用返信 [メール受信/OFF] 削除キー/
■11364 / inTopicNo.10)  Re[3]: 大量の文字位置判定
□投稿者/ 悲しげ -(2018/07/15(Sun) 12:03:43)
    2018/07/16(Mon) 10:53:28 編集(投稿者)
    2018/07/16(Mon) 10:52:55 編集(投稿者)

    No11361に返信(hiroさんの記事)
    >全ての科目コードで摘要の高橋が補助コードに変わっては困るので、
    >科目コード毎に高橋があるか、斎藤があるのか等々判定させたいのですが、

    判定させることは簡単ですが、判定させた後どうするのかですよね。
    だからNo11172
    >>この辺りをどう扱うかはhiroさんが決めることです。
    と書いた訳です。

    この辺り忖度をたくましくして
    案1として、既存の場合は先述を優先させる。
    案2としては、複数のコードを追記する。

    で試しに一括処理を書いてみました(すいません、挙動は未検証です)

    案1------------------
    *処理の都合上、次の2表で[補助コード]のデータ型を長整数(数値系)から文字列に変更します。
    *それと補助コードの桁数は3桁なりに揃えることが前提(「123」と「1234」とかにしない)。
    *可読性をよくするため、組み込み変数の流用ではなく、判りやすい変数名で宣言した。
    変数宣言 文字列{&ある文字,&補助コード}
    表 "hiroデータ.TBX",表番号=1
    表 "hiro補助コード.TBX",表番号=2
    編集表 2  /*既にそうなってるけど*/
    繰り返し
     &ある文字=[ある文字],&補助コード=[補助コード]
     編集表 1
     絞り込み解除
     絞り込み [摘要]{*&ある文字*}  /*ある文字を含む行を絞り込む*/
     if(&選択件数>0)
      置換 終了状態=&実行リターン,[補助コード]=#条件選択(#文字位置([補助コード],&補助コード)>0,[補助コード],1,&補助コード)) /*★*/
     end
     絞り込み解除
     編集表 2
     ジャンプ 行番号=次行
     条件(#終端行) 繰り返し中止
    繰り返し終了
    編集表 1
    表形式編集 /*←結果確認のため*/

    *★置換式の意味は、
    [補助コード]の項目値に当該の&補助コードが既存ならば既存の[補助コード]項目値のままとし、
    そうでなければ今回の&補助コードを入れる。
    この場合はコード値は既存の値を優先されるようにしてあるので、補助コード表では優先すべきコードを前に置いておく必要がある。逆に後のもので上書きするのもありうるが、ま、普通はそうしないような気がするので略。

    案2------------------上記の★部分だけ書き換え
      置換 終了状態=&実行リターン \
       ,[補助コード]=#条件選択(#文字位置([補助コード],&補助コード)>0,[補助コード]+","+&補助コード,1,&補助コード)

    *コードが複数ある場合、[補助コード]項目ひとつに「カンマ区切り」で複数コードを追記している。
    *補助コード表では以下の項目を増設する。
      ↑(訂正)ここは間違いで補助コード表じゃ無い方に、でしたね。
     [補助コード1];項目計算式「#対応文字列([補助コード],1)」
     [補助コード2];項目計算式「#対応文字列([補助コード],2)」
     [補助コード3];項目計算式「#対応文字列([補助コード],3)」
       ・・・・・・・
    *この場合もコードに優先順があった方がいいような気がする

    ps.
    この処理をCMXではなく、フォームからボタン→手続き実行でやてみて下さい(^^)
    その場合「表形式編集」は使えないから、一覧表印刷のプレビューなんてのもいいかも。

引用返信 [メール受信/OFF] 削除キー/
■11365 / inTopicNo.11)  Re[4]: 大量の文字位置判定
□投稿者/ 悲しげ -(2018/07/15(Sun) 15:41:05)
    No11170を読み直してみましたが
    >摘要欄は具体的には
    >「スターバックス,斎藤さん高橋さん渡辺さん(全仮名)打ち合わせ」とか
    >「〜カントリークラブ〜氏,利用税」とか

    摘要欄は本来叙述部なので、カテゴリーに関わらず色々なものをごちゃ混ぜで
    入力することになるだろうし、それで構わないと思います。
    しかし、これにコードを振り当てたいという発想自体がそもそもずれているよ
    うな気がします。
    「高橋さんとスターバックスで打ち合わせ」をコード化????
    もしその辺りを緻密にやりたければ、「摘要欄」欄の他に、例えば「担当者」、
    「場所」、「分類」等を設けるのが正しいのでは? それが必要ならばネ。
    そうすると入力の時点でコードが使えるし、いかにもリレーショナルDBMS
    (データベースマネジメントシステム)的で扱いがそれっぽくなります。

    付)
    「高橋さんとスターバックスで打ち合わせ」等は、コード化するのではなく
    文字列検索処理として取り扱うべきかと。
    (ダウンロードコーナーに色々あります)

引用返信 [メール受信/OFF] 削除キー/
■11370 / inTopicNo.12)  Re[5]: 大量の文字位置判定
□投稿者/ hiro -(2018/07/16(Mon) 22:49:20)
    悲しげさんどうも有難うございます

    > >摘要欄は具体的には
    > >「スターバックス,斎藤さん高橋さん渡辺さん(全仮名)打ち合わせ」とか
    > >「〜カントリークラブ〜氏,利用税」とか
    >
    > しかし、これにコードを振り当てたいという発想自体がそもそもずれているよ
    > うな気がします。
    > 「高橋さんとスターバックスで打ち合わせ」をコード化????
    この場合、大元の勘定科目は会議費なのですが補助コードに高橋さんのコードを
    入力漏れする事が多々あります。それで会議費コードで絞り込んで摘要に高橋さんが
    あったら補助コードは01のはずという知らせをしたかったのです。
    今は目で総勘定元帳を見て、この伝票は補助コードが間違ってると判断してる状態です。それで、繰り返しの繰り返しはできるかな?と思った次第です。
    悲しげさんの過去のイベント処理(桐v8のno26ストップウォッチとか挑戦してますが、理解するのに程遠いです。)いつになったらできるのやら・・仕事で急ぎの場合は一括処理の方が未だ早そうです。
引用返信 [メール受信/OFF] 削除キー/
■11371 / inTopicNo.13)  Re[5]: 大量の文字位置判定
□投稿者/ hiro -(2018/07/17(Tue) 21:37:34)
    悲しげさんどうもです

    考えたのですが、繰り返しの繰り返しをせず、総勘定コードと補助コードの
    同時検索をさせれば良いと気づきました。

    先ずは、自分で履歴登録に絞り込みの条件名で[総勘定コード][補助コード]の
    複合検索方法を記録し、一括処理で値の所を変数に差し替えたのですが、「項目名がありません」のようなエラーメッセージが出、今回は急を用したので、サポートセンターに尋ねました。すると、履歴の中では
    絞り込み{ [総勘定コード]{&有効件数} , [摘要]{*&str*}}だったと思いますが尋ねると、書式が間違いで
    絞り込み [総勘定コード]{=&有効件数 , [摘要]=* &str *}でした
    何故、履歴登録と違うのか不思議でしたが、これで出来てるので覚えるしかありません。有難うございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■11372 / inTopicNo.14)  Re[6]: 大量の文字位置判定
□投稿者/ ONnoji -(2018/07/18(Wed) 09:39:39)
    2018/07/18(Wed) 09:52:03 編集(投稿者)
    2018/07/18(Wed) 09:46:08 編集(投稿者)

    > 履歴の中では
    > 絞り込み{ [総勘定コード]{&有効件数} , [摘要]{*&str*}}だったと思いますが尋ねると、
    > 書式が間違いで
    > 絞り込み [総勘定コード]{=&有効件数 , [摘要]=* &str *}でした
    > 何故、履歴登録と違うのか不思議でした

    老婆心ながら、

    おそらく、条件名だったのでしょう。

    履歴では↓下のようにコマンドが作られたハズです。

     検索条件登録 "",{[数量]{&有効件数,[日付]{*&STR*}}}
     絞り込み 条件名=""

    ところが、↓下のように改変してしまった。※改変というよりも使えそうな部分(フレーズ)を援用してしまった

     絞り込み {[数量]{&有効件数,[日付]{*&STR*}}}

    当然、エラーになりますよ。

    「KU1130:項目名を指定してください」


引用返信 [メール受信/OFF] 削除キー/
■11373 / inTopicNo.15)  Re[7]: 大量の文字位置判定
□投稿者/ hiro -(2018/07/18(Wed) 10:48:53)
    ONnojiさんどうも有難うございます
    >
    > おそらく、条件名だったのでしょう。
    >
    > 履歴では↓下のようにコマンドが作られたハズです。
    >
    >  検索条件登録 "",{[数量]{&有効件数,[日付]{*&STR*}}}
    >  絞り込み 条件名=""
    >
    > ところが、↓下のように改変してしまった。※改変というよりも使えそうな部分(フレーズ)を援用してしまった
    >
    >  絞り込み {[数量]{&有効件数,[日付]{*&STR*}}}
    >
    > 当然、エラーになりますよ。
    > 「KU1130:項目名を指定してください」
    >

    そうです、絞り込みの条件名でした。
    勝手に使えると思い込んでいたんですね。謎が解けてスッキリしました
    有難うございます
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■11374 / inTopicNo.16)  Re[8]: 大量の文字位置判定
□投稿者/ hiro -(2018/07/18(Wed) 11:25:52)

    >> 検索条件登録 "",{[数量]{&有効件数,[日付]{*&STR*}}}
    >> 絞り込み 条件名=""
    >>
    >>ところが、↓下のように改変してしまった。※改変というよりも使えそうな部分(フレーズ)を援用してしまった
    >>
    >> 絞り込み {[数量]{&有効件数,[日付]{*&STR*}}}
    >>
    >>当然、エラーになりますよ。
    >>「KU1130:項目名を指定してください」
    >>
    絞り込み条件名登録したものを、そのまま絞り込みコマンド時に複写してるような式なので、ダイレクトに記入しても結果は同じじゃないの?と思っていました

引用返信 [メール受信/OFF] 削除キー/
■11375 / inTopicNo.17)  Re[6]: 大量の文字位置判定
□投稿者/ 悲しげ -(2018/07/19(Thu) 23:48:19)
    No11371
    >考えたのですが、・・・・総勘定コードと補助コードの同時検索をさせれば良い・・・

    そうですね。やはり文字列の検索でしょうね。

    No11370
    >この場合、大元の勘定科目は会議費なのですが補助コードに高橋さんのコードを
    >入力漏れする事が多々あります。それで会議費コードで絞り込んで摘要に高橋さんが
    >あったら補助コードは01のはずという知らせをしたかったのです。
    >今は目で総勘定元帳を見て、この伝票は補助コードが間違ってると判断してる状態です。

    ふむ、誤入力の事後チェックだったのですか。
    理想的には、誤入力とかは入力時にチェックできるといいですよね。
    「入力後」イベントとか「ソース値更新」イベントとかで
    「《高橋》が入力されていますが、補助コードが《01》になってません!」
    のメッセージを出すとか。
    イベントならできるのですが・・・。

    ps.
    >過去のイベント処理(桐v8のno26ストップウォッチとか挑戦してますが、

    いや、あんなのは参考にならんです、「鍵盤」とかもね。(^^;)
    関係無いけど「ケンバン」で変換したら「腱板」と出てきた。
    さもありなん、私は「腱板断裂」の手術を2回やったから。2011年に右肩、2017年に左肩。
    ってのはどうでもよくて、「検索」関連だったらNo.138、139、170、179とかでしょう。
    (私が作ったのは179とかだけど)

引用返信 [メール受信/OFF] 削除キー/
■11376 / inTopicNo.18)  Re[7]: 大量の文字位置判定
□投稿者/ hiro -(2018/07/22(Sun) 21:52:31)
    悲しげさんどうも有難うございます
    >
    > ふむ、誤入力の事後チェックだったのですか。
    > 理想的には、誤入力とかは入力時にチェックできるといいですよね。
    > 「入力後」イベントとか「ソース値更新」イベントとかで
    > 「《高橋》が入力されていますが、補助コードが《01》になってません!」
    > のメッセージを出すとか。
    > イベントならできるのですが・・・。
    まずエクセルで仕訳を最初に作ってるのが前提にありまして、そういう事情で
    どうしても事後チェックになってしまいます
    (桐を広めようと便利な所を教えつつあります。まぁ初心者〜中級LVの私が
    初心者に教えてるわけですがww)

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



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -