Q166:新規データを[テーブル]に追加する際、存在するデータで数字が最大のものに「1」プラスして新規番号としたい。
Q166-1:
【実現したい動作】新規データを[テーブル]に追加する際、存在するデータで数字が最大のものに「1」プラスして新規番号としたい。
【現状】番地データとしてテーブルセルに「アルファベット-数字」の形式で文字列が入っている。数字部分を取出して[リスト格納変数]に入れ、ソートしてみたが、最大値は取れず、「9」が取得される。
【考慮すべき条件】アルファベット部分は現在は全て同一。
将来的にアルファベット部分は異なるものの数字部分は一意でないデータが混ざる可能性あり。
A166-1:
数字部分だけを取得し、[リスト格納変数]に設定するとことまではできているとのことでしたが、[リスト格納変数]に要素としてデータを追加する際、文字列のまま入れてしまうと、ソートは「辞書順」になります。
まず最初の文字を見比べてソートされるので「1,200,30,9」の順に並びます。
これを回避するには数字部分を取得した後、一旦[整数格納変数]等に入れ、数値として取出すなどが考えられます。
また、アルファベットは別だが同じ数字を持つデータが複数存在する可能性がある場合には、一旦アルファベット別に分けて、それから処理を行うことが考えられます。[テーブルサブセットフィルタ]を使うと文字列や正規表現等によって、選択データを取得することができます。
サンプルアプリケーションを2つ作成しましたので、ご覧下さい。
一つ目の方がお伝え頂いた内容に[整数格納変数]を追加した、より基本的なものになっています。
関連ファイル:最大取得1.mzax、最大取得2.mzax