複数のテーブルを使用したスクリプト作成<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私は JSL (およびスクリプト全般) に比較的慣れていないため、複数のテーブルを操作する方法を見つけるのに苦労しています。
1 つのテーブルの各行に対して実行したいことは、2 つの列のデータを 2 つのグローバル変数に変換し、2 番目のテーブルで一致するデータを調整し、最初のテーブルの次の行に進み、これを繰り返すことです。
IE:
1 つのテーブルには、週ごとに 1 行ずつ、週ごとの実行の合計数が含まれます。 2 番目のテーブルには週ごとの行が多数ありますが、各行がその週の適切な合計実行数を適切な列に配置したいと考えています。
スクリプトガイドには、参照をテーブルからテーブルに移動する方法として「現在のデータテーブル(目的のテーブル)」を呼び出すことが記載されていますが、それが機能しないように思えます。
私は次のようなものを作ろうとしています(ショーはトラブルシューティングのためにそこにあるだけです)。
現在のデータ テーブル("失敗率") ;
各行について(
globalWeek= :週;
globalTotal = :N 行;
表示(globalWeek);
表示(グローバル合計);
現在のデータ テーブル(「実行概要テーブル」);
各行について( if(Week == globalWeek,
その週の実行=globalTotal))
)
私がやろうとしていることは可能でしょうか? この特定の状況を解決する別の方法を見つけることになったとしても、このように 2 つのテーブル間を移動する一般的なプロセスに興味があります。
複数のテーブルを使用したスクリプト作成2 番目の引数はオプションで、「by 変数」を表します。つまり、by-column のレベルごとに個別のカウントを返します。
ヘルプ メニュー/JSL 関数の下に文書化されています (これらの構文インデックスは非常に役立ち、場合によっては書籍やヘルプ ページよりも包括的であり、良い例が提供されています)。
複数のテーブルを使用したスクリプト作成うまくいきました、またよろしくお願いします。
好奇心から、Col Number を調べてみると、引数は 1 つだけで、「欠落していない」行の数が得られると主張されています。 明らかに 2 つの力を与えることで、ある種の比較が行われますが、正確には何をしているのでしょうか?
複数のテーブルを使用したスクリプト作成Col Number は文字形式の列を好みませんが、次のトリックを試してください。
列番号( 16 進数から数値へ(文字から 16 進数へ( :カラム) ) 、 :カラム)
複数のテーブルを使用したスクリプト作成すごいですね、私はまだ列の統計の式を理解していませんでした。同じ行内の直接の式しかやったことがありませんでした。
これを少しいじってみると、数値列では見事に機能しますが、文字列でも同じことを行う方法はありますか?
(はい、すでに本を購入しましたが、アマゾンから届くまでに少し時間がかかります。)
複数のテーブルを使用したスクリプト作成このような場合、スクリプトは必要ありません。 列式でも十分です。
RowsPerWeek で次の数式を試してください。
列番号( :週, :週 )
複数のテーブルを使用したスクリプト作成素早いご返信ありがとうございます。
Join を避けている理由は、時間の経過とともにさらに多くのデータが追加されるため、これを同じテーブルで繰り返し実行できるようにしたいからです。
しかし、よく考えてみると、すべてを必要以上に複雑にしてしまっているのではないかと思います。
私が本当に望んでいるのは、元のテーブルで各週に存在する行数をカウントし、その週ごとの合計行数を列に入れることです。
したがって、基本的には次のようになります。
週、週あたりの行数
5、3
5、3
5、3
6、1
7、2
7、2
これは、シートにデータを追加するたびに実行するスクリプトで、週ごとの行を自動的に合計し、その列を更新します。 私は集計テーブルを使用してそこに到達し、データを元のテーブルに戻していましたが、もっと簡単な方法が必要です。
複数のテーブルを使用したスクリプト作成2 つのテーブルに異なる変数を指定すると簡単になります。
pf_dt = データ テーブル("失敗率");
rst_dt = データ テーブル("実行概要テーブル");
これらの変数を使用するには:
for (i = 1, i <= nrows(pf_dt), i++,
one_week = 列(pf_dt, "週") ;
one_total = 列(pf_dt, "N 行") ;
for (k = 1, k <= nrows(rst_dt), k++,
if (column(rst_dt, "週")== 1_週間、
列(rst_dt, "その週に実行される")= 合計 1 つ;
);
);
);
ただし、JOIN コマンドを使用して 2 つのテーブルを結合する方がよいでしょう。[テーブル] > [結合] コマンドを使用して新しいテーブルを作成し、赤い三角形をクリックして使用された JSL コマンドを確認します。