条件式とフリーテキストを同じ列に入れる他の人が使用して私に送信できるデータ テーブル テンプレートを作成しています。 場合によっては、ColB のデータは ColA の関数ですが、これが当てはまらない条件もあります。 ColA が入力されたら (数式を使用して) ColB を自動的に入力することで、可能であれば送信者の作業を楽にしたいと考えていますが、ColA エントリが事前定義された関係に適合しない場合は、ColB にカスタム文字列を入力できるようにしたいと考えています。 。 これを達成する方法はありますか? 私は単純に、if ステートメントの「else」条件を空白のままにしておけばこれが可能になるのではないかと期待していましたが、それは間違いでした。
おまけ: このすべての機能に加えてリスト チェックを使用できればさらに良いのですが (ColB に許容できる値のセット リストしかまだないため)、JMP はすでにエラーをスローして、追加できないことを示しています。リスト チェックの上に数式を追加します (数式とフリー テキストが共存できないことを考えると、これは理にかなっていると思います)。
単純なテーブルで多くのことを実行しようとしているので、おそらくこれをすべて実行するには、より複雑な入力フォームが必要になるのではないかと感じています。 しかし、その道に進む前に確認したかっただけです。 前もって感謝します。
Re: 条件式とフリーテキストが同じ列にあるええ、わかりました! 「材料 2」列に「色」の数式を入力しますが、それをリスト チェックのある「材料 (必要な場合)」列に適用します。 ずっといい! 「材料(必要な場合)」列に式を入力しようとしていました。 素晴らしいもの!
Re: 条件式とフリーテキストが同じ列にあるはい、他の列のセルに色を付けることができます。 式はもう少し複雑で、必要な場合は色を追加し、不要な場合は色を削除する必要があります (以前に追加された場合)。
Match( :Furniture Type,
"Bed",
If( Is Missing( :"Material (if needed)"n ),
:"Material (if needed)"n << color cells( "Red", {Row()} );
"PLEASE ADD VALUE IN MATERIAL COLUMN";
,
:"Material (if needed)"n << color cells( "Black", {Row()} );
:"Material (if needed)"n;
),
"Chair", "Wood",
"Sofa",
If( Is Missing( :"Material (if needed)"n ),
:"Material (if needed)"n << color cells( "Red", {Row()} );
"PLEASE ADD VALUE IN MATERIAL COLUMN";
,
:"Material (if needed)"n << color cells( "Black", {Row()} );
:"Material (if needed)"n;
),
"Table", "Metal"
)Re: 条件式とフリーテキストが同じ列にあるありがとう、 @ピーター・ハーシュ! 申し訳ありませんが、うまく説明するのに苦労しました。 しかし、ジェフの提案はうまくいくはずだと思います。 ご意見誠にありがとうございます。
Re: 条件式とフリーテキストが同じ列にあるありがとう、 @ジェフ・パーキンソン! ユーザーが特定の行のコンテンツを左から右に入力すると、指示が自動的に入力されるため、これは適切な実装だと思います。 指示を公式に組み込むことを考えるべきでした。
「マテリアル 2」列の値に基づいて、「マテリアル (必要な場合)」列のセルに自動的に色を付けることができれば、私はすべての耳を満足するでしょう。 これを数式で実装しようとしましたが、「材料(必要な場合)」列のリストチェックを維持できませんでした。 この方法では、入力する必要があるセルにカラー インジケーターを使用するだけで、入力者から「マテリアル 2」列を完全に非表示にすることができます (入力者は「マテリアル 2」の出力を見る必要がないため)。
Re: 条件式とフリーテキストが同じ列にあるありがとう、 @donmcormack ! はい、Row States は私の学ぶべきリストに載っています。 教えてくれてありがとう。 調べてみます。
Re: 条件式とフリーテキストが同じ列にある@Matt_Converse 、これを処理する方法は、ユーザーが入力する2つの列を使用することだと思います。1つは(上記の例を使用して)家具タイプ用、もう1つは材料用で、その後、数式列は知っている家具タイプの検索を使用します。そうでないものについては「マテリアル」列を参照してください。
数式で、[材料 (必要な場合)] 列が入力されているかどうかを確認し、入力する必要があることをユーザーに警告できます。 [マテリアル] 列で [リスト チェック] プロパティを使用することもできます。

Re: 条件式とフリーテキストが同じ列にあるこんにちは、マットさん
急いで電話してみるのもいいかもしれません。 あなたが何を達成しようとしているのか、私は完全には理解していないかもしれません。お気軽にご連絡ください。 Peter.hersh@jmp.com
これらすべての列間の関係を一度に作成する単一のスクリプトを簡単に作成できます。そうしなければならない何らかの理由がない限り。
Re: 条件式とフリーテキストが同じ列にある@Matt_Converse Row State Handler を、対象の列をチェックして更新する関数と組み合わせて使用することを検討してみるとよいでしょう。 行状態に変化があるたびに行状態ハンドラーが実行され、選択された行と選択されていない行の行番号が渡されるため、これは少し難しくなります。 おそらく、関数が特定の状況下 (ターゲット列の値が変更された場合など) でのみ実行されるようにするには、条件を追加する必要があります。 利点は、ターゲット列をチェックする関数や値を使用する必要がなくなることです。 例については、スクリプト索引とドキュメントを参照してください。
Re: 条件式とフリーテキストが同じ列にあるありがとう、 @ピーター・ハーシュ! recodeを使用することは考えていませんでした。 ただし、私のデータセット (および「顧客」のワークフロー) はこれまでに述べたよりも複雑であるため、いくつかの課題があると予想しています。
1. 2 番目の行が追加される前に、データの行全体が入力されます。 したがって、スクリプト (単純な再生ボタンではありますが) を行ごとに実行する必要があり、以前に入力した疑問符以外のテキストを上書きしないようにいくつかの行を追加する必要があります (これは実行可能だと思います)。
2. この機能を活用したい列間の関係 (ColA と ColB の間、ColC と ColF の間など) が複数あるため、ユーザーはスクリプトを複数回実行する必要があります。指定された行の時間や、スクリプトをいつ再生するかなどを知ることができますが、これは少し不格好に思えます。 あるいは、列 (ColA、ColC、ColB など) を再配置したり、ユーザーに ColA から ColC などにジャンプしてスクリプトを行ごとに 1 回だけ実行できるようにすることもできますが、これらのオプションもあまりユーザーフレンドリーとは思えません。 。
「再コード化」が最良の回避策だと思われる場合は、おそらくそれを試してみると思います。 ご意見ありがとうございます!
Re: 条件式とフリーテキストが同じ列にある@Matt_Converse Recodeを使ってみましたか?あなたの例では、椅子は木製で、ベッドは空白になります。簡単なスクリプトを実行してこの再コードを実行し、リスト チェック プロパティを追加することができます。リスト チェックでは、ユーザーが右クリックしてリスト内の値の 1 つを選択できるようになります。JMP 16 でログを使用すると、これらすべての変更がキャプチャされるため、スクリプトを作成する必要はありません。以下でこれを試してください。
//Make Data Table
New Table( "Example 2",
Add Rows( 7 ),
New Column( "Furniture",
Character,
"Nominal",
Set Values( {"Chair", "Bed", "Chair", "Bed", "Stool", "Stool", "Bed"} )
)
);
Wait (2);
// Recode column: Material
dt = Data Table( "Example 2" );
dt << Begin Data Update;
col1 = dt << New Column( dt:Furniture );
col1 << Set Name( "Material" );
dt << Move Selected Columns( {col1}, after( dt:Furniture ) );
dt << Recode Column(
dt:Furniture,
{Map Value(
_rcOrig,
{"Bed", "?", "Chair", "Wood", "Stool", "Metal"},
Unmatched( _rcNow )
)},
Update Properties( 1 ),
Target Column( col1 )
);
dt << End Data Update;
// Clear row selection
Data Table( "Example 2" ) << Clear Select;
// Change column list check: Material
Data Table( "Example 2" ):Material << List Check( {"?", "Metal", "Wood"} );
Re: 条件式とフリーテキストが同じ列にある早速の返信ありがとうございます、ピーター。 これを見て、Value Labels についてさらに詳しく学びました。 ただし、何かを見落としていない限り、ColB は依然として最終的には ColA の関数です。 ColB が ColA と 1 対多の関係にある場合、ColB を ColA から独立させるオプションが必要になります。
たとえば、ColA が「家具の種類」、ColB が「家具の材質は何ですか?」であるとします。 ユーザーが ColA に「Chair」と入力すると、ColB には自動的に「Wood」が入力されます。これは、ユーザーが使用できる椅子は木製のみであることが先験的にわかっているためです。 ただし、ColB に「Bed」と入力した場合、ColB は空白のままになり、「Wood」または「Metal」のいずれかのタイプが存在する可能性があるため、そのいずれかを入力できます。 あるいは、ColA に「Chair」を入力すると、ColB がグレー表示になる可能性があります (ColB が何であるべきかをすでに知っており、時間を節約し、タイプミスを避けようとしているだけなので) が、私はそれを機能させることができませんでした。その操作も数式で実行しました。
これがもう少し明確になることを願っています。 ありがとう!
Re: 条件式とフリーテキストが同じ列にある@Matt_Converse 、 良い質問。以下は、ご質問と同様の例です。範囲を含めることができる値ラベルを使用しました。この値が特定の範囲内にある場合は、ラベルとして表示されます。これにより、期待していること、または少なくとも部分的には達成される可能性があります。列 A は独立しているため、列 A に対してリスト チェックを実行できます。また、列 A が目的の範囲外にある場合も機能する可能性があります。とにかくチェックしてください。質問がある場合はお知らせください。