MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › テーブルの分類の仕方について
- このトピックは、 13 返信、 2 投稿者 です。最終更新日: 4 年, 8 ヶ月 前 yuzuki1010
-
著者投稿
-
2020年3月17日 at 3:39 PM #5985yuzuki1010一般参加者
お世話になります。
データの分類について質問があります。
添付したファイルのようにテーブル①の0列目の各型式をテーブル②で列名にして、1列目の工程名と2列目の日時を各型式に振り分けしたいと思っています。
疑問点は、工程名と日時を振り分けてテーブルに設定する時の行数の指定方法がうまくできません。(0列、1列、2列目で設定する行がばらつく為)
そこでテーブルの起動メソッドでこのような条件のものはないでしょうか?
ある列で空白の行を見つけれる起動メソッド
上記の起動メソッドがあれば空白の行を取得することができ、問題が改善されます。よろしくお願い致します。
添付ファイル:
2020年3月17日 at 4:58 PM #5987MZPlatformユーザー会サイト管理者残念ながら、テーブルコンポーネントにご希望の機能を持つメソッドはございません。
aとbとcでそれぞれテーブルの何行目まで記入したかを知りたいのでしたら、それぞれに整数格納変数コンポーネントなどを準備して、記入した行位置を記録する方法があると思いますが、いかがでしょうか。ところで、指定した列の値で行を選択して部分テーブルを抽出するテーブルサブセットフィルタコンポーネントというものがありますので、aとbとcに関するテーブルを別々にメソッドで抽出することは可能です。おそらく最終的に欲しいテーブルにする処理方法は複数考えられますので、いろいろご検討いただいてご不明な点があればお問い合わせください。
2020年3月17日 at 6:06 PM #5988yuzuki1010一般参加者回答ありがとうございます。
実際に処理をするCSVのファイルは型式名、型式数はデータベースから取り出す量によってばらつくので列数分の整数格納変数を用意するのは難しいと感じました。テーブルサブセットは起動メソッド「列データの文字列で行を選択する」でしょうか?
実際に工程名を処理する時、100~500ほどの変動する工程名の処理しようと思っています。
何行目まで記入したかを知ることができる有効なコンポーネントと起動メソッドのご指導をお願いします。2020年3月17日 at 6:17 PM #5989MZPlatformユーザー会サイト管理者対象データはCSVファイルでしょうか、データベースでしょうか。元がデータベースであれば、先ほどのような抽出はSQLでできますので、わざわざMZで処理する必要がありません。CSVファイルであれば、やはりテーブルサブセットフィルタで型式ごとに抽出するのがよいと思います。
どうしても記入済みの行位置を取りたくて型式の数が変わるのであれば、リストやテーブルに型式分の要素や列を追加して、行位置を入れておけばよいと思います。
2020年3月17日 at 6:59 PM #5990yuzuki1010一般参加者ありがとうございます。
対象はCSVファイルになります。
リストやテーブルに型式分の要素や列を追加というのがよくわかりませんでした。
テーブルサブセットフィルタを一度使ったことがあるので試してみたいと思います。
「全体データを設定する」⇒「選択対象行を設定する」⇒「列データの正規表現で行を選択する」(・判定列は型式の数量分を繰り返し制御し、現在値を入力。・判定列に用いる文字列は文字列格納変数に入れた型式名を入力)
⇒テーブルデータを設定する
もし起動メソッドに間違えがあれば教えて頂けると助かります。2020年3月18日 at 12:59 PM #5991yuzuki1010一般参加者お疲れ様です。
テーブルサブセットを使用してテーブルに書き込む処理わかりました。
ありがとうございます。少し話は変わるのですが、型式を抽出する時に型式の重複がないか確認する処理を繰り返し制御と等価演算を使って行っておりますが、処理速度が非常にかかっています。
繰り返し制御を使わずにテーブルサブセットで指定列の型式をa,b,cのようにを1つずつテーブルに設定することは可能なのでしょうか?2020年3月18日 at 2:18 PM #5992MZPlatformユーザー会サイト管理者残念ながら、ご質問の説明がわかるようでよくわかりません。もう少し説明をお願いできますでしょうか。
型式が複数あってその数が変わる以上、どのような方法でも「繰返し制御を使わずに」は無理な感じがします。現状どのように処理しているかがこちらではわかりませんので、サンプルアプリ(の圧縮ファイル)等を添付していただけたら何か助言ができるかもしれません。
ご質問を理解できていないですが、回答になるかもしれないことを以下に書いてみます。例えば、抽出に用いる型式のリストに含まれる要素を重複のないようにすることは可能です。あと可能性としてテーブルサブセットフィルタの使用法で、もしかしたら正規表現で行を選択せずに文字列で選択すれば速くなるかもしれません。
2020年3月18日 at 3:04 PM #5993yuzuki1010一般参加者サンプルファイルを添付します。
繰り返し数が多く処理がかなり遅くなっています。
簡単にできるところがあればご指導お願いします。抽出に用いる型式のリストに含まれる要素を重複のないようにするの、要素とはどういうものでしょうか?
テーブルサブセットのほうは一度試させていただきます。2020年3月19日 at 8:35 PM #5995MZPlatformユーザー会サイト管理者サンプルを拝見しまして、まずは型式リストの要素の重複を排除する部分については、添付のように繰り返し制御を使わずに簡単に実現できます。この型式のリストを使った処理(例えばテーブルサブセットフィルタを使用する処理)は、繰返し制御が必要になると思います。
なお、リスト要素の重複については、元のテーブルにあるように、ある列(リストデータ)に「0,0,1,1,1,2,2,2,…」と同じ文字列等(これを要素と呼びます)が含まれている場合に、要素が重複していると呼びます。このような要素の重複を排除するとは、「0,1,2,…」のようなリストを作成することを指します。数学的には元のリストの「集合(Set)を求める」と呼びます。
実用的には、データに含まれている番号等からどこかのプルダウンの選択肢を作成したり、今回のようにデータに含まれている番号等に関して抜け漏れなく処理を実施するために使います。
添付ファイル:
2020年3月23日 at 1:51 PM #5997yuzuki1010一般参加者こんなに簡単にできるのですね。
処理も早くできて非常に助かりました。
プールダウンもこれなら簡単にできそうです。今まで作成したツールもこの処理に変更し、時間短縮を行っていきたいと思います。
ありがとうございました。 -
著者投稿
- このトピックに返信するには、ログインしてください。