複数の条件一致に基づいて行をカウントする3 つの列 (ABC) が一致する場合にデータセット内の行をカウントしたいと考えています。 新しい列(D)に値を入力したいと思います。 ここに一例を示します。 ご協力いただきありがとうございます!
| A列 | B列 | C列 | 列 D (カウントされた集計) |
| 7 | Z | S | 4 |
| 7 | Z | S | 4 |
| 1 | あ | P | 3 |
| 1 | あ | P | 3 |
| 1 | あ | P | 3 |
| 7 | Z | S | 4 |
| 5 | E | M | 2 |
| 5 | E | M | 2 |
| 7 | Z | S | 4 |
Re: 複数条件一致に基づいて行をカウントする公式は嬉しいよ@MSあなたのために作品を投稿しました! 私の場合、なぜあなたの実際のテーブルで失敗するのか興味がありますが、私の劣った 2 列メソッドで何が問題になったかを診断するよりも、おそらく他の質問に時間を費やしたほうがよいでしょう。
その集計を作成することでどのような問題が解決されるのか聞いてもいいですか? パターンの出現回数は 1 としてカウントされるため、これを行うと 1 の列が完成するだけのようです。 あなたが何をしたいのか、それが何を達成するのに役立つのか、私は完全には理解していないと思います。 最終目標がわかっていれば、一連の数式列よりも全体的な方法を提案できるかもしれないと思います。
@ジュリアン
Re: 複数条件一致に基づいて行をカウントするこれを機能させるにはまだ問題があります。 Julian が提案した 2 つの方程式バージョン - 最初の方程式ではすべて 1 が得られるため、何が間違っているのかわかりません。 単一方程式法では、SOG ごとに特定のバケットが出現する合計回数が得られます。 私がまだ達成しようとしているもう 1 つの部分は、バケツをつかまなければならない回数です。 たとえば、バケツをつかんで 4 つのサンプルを取得した場合、またはもう一度バケツをつかんで 19 のサンプルを取得した場合、いずれの場合もバケツを取得したのは 1 回だけです。 私のデータ例によると、EXULU は 621 SOG に合計 4 回出現します。 その4回を1回としてカウントする集計を作成したいと考えています。 EH8QK は 621 SOG 内に合計 19 回出現しますが、それらもすべて 1 として数えたいと思います。 これで問題の後半がより良く説明されることを願っています。 ありがとう!
Re: 複数条件一致に基づいて行をカウントする2 つの列を使用してカウントを取得する代わりに、ColNumber() 関数を使用して各組み合わせの行をカウントすることもできます。
例えば:
Col Number(Row(), :J1, :SOG, :BUCKET);
</CODE></P>
<P> </P>
<P> </P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-214889" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214889" slang="en-US" mode="NONE"><P>やあ<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank">@Sciguy_1</A> 、</P>
<P> </P>
<P>これは、前に示した式をそれぞれの組み合わせに合わせて使用して、私が望んでいることを達成する表です。 「SOG (正解) ごとに BUCKET が表示される回数」の私の計算は、あなたが手動で作成したと述べたものと一致しませんが、私自身の手動カウントと一致するため、ここで行ったことが正しいと確信しています。 何か欠けていないか確認していただけますか?</P>
<P> </P>
<P>が必要であることに気づくでしょう。<STRONG>列のペア</STRONG>これらのカウントごとに、グループごとに増分カウントするものと、合計を求めるものがあります。 テーブル内の増分カウント列を非表示にしましたが、これらの列が必要であることに注意してください。 これを実際に任意の数の組み合わせに一般化できます。以下に示すように数式を調整して、グループごとに適切な列を含めるだけです。</P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" style="width: 374px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" style="width: 374px;"><span class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" style="width: 374px;"><img src="https://us.v-cdn.net/6038925/uploads/images/18030i629C729C275487D5/Screen%20Shot%202019-06-26%20at%205.20.49%20PM.png" role="button" title="Screen Shot 2019-06-26 at 5.20.49 PM.png" alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" /></span></SPAN></SPAN></P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" style="width: 536px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" style="width: 536px;"><span class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" style="width: 536px;"><img src="https://us.v-cdn.net/6038925/uploads/images/18031i3CBC6C15082459EE/Screen%20Shot%202019-06-26%20at%205.20.54%20PM.png" role="button" title="Screen Shot 2019-06-26 at 5.20.54 PM.png" alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" /></span></SPAN></SPAN></P>
<P> </P>
<P>これでさらに前進できることを願っています。</P>
<P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2026" target="_blank">@ジュリアン</A></P></LINGO-BODY><LINGO-SUB id="lingo-sub-214377" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214377" slang="en-US" mode="NONE">間違いがあったようです。 最後の列 jar_id のヘッダーは列 J1 と同じです。 また、J1 X SOG X BUCKET の組み合わせごとに T1 が発生する回数も知りたいと考えています。 ありがとう。</LINGO-BODY><LINGO-SUB id="lingo-sub-214361" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214361" slang="en-US" mode="NONE"><P>おっしゃるとおり、すべての行は一意です。 これは実際のデータセットのサブセットです。 私が達成しようとしていることを表すいくつかの列を作成しました。 「SOG ごとに BUCKET が表示される回数」列には手動で値を入力しました。NULL 値は独自の BUCKET として扱うことができます。 2 番目の列には、SOG X BUCKET の組み合わせごとに J1 が出現する回数を示す必要があります。 これで作業が楽になることを願っています。ご協力いただきありがとうございます。</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214360" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214360" slang="en-US" mode="NONE"><P>おっしゃるとおり、すべての行は一意です。 これは実際のデータセットのサブセットです。 私が達成しようとしていることを表すいくつかの列を作成しました。 「SOG ごとに BUCKET が表示される回数」列には手動で値を入力しました。NULL 値は独自の BUCKET として扱うことができます。 2 番目の列には、SOG X BUCKET の組み合わせごとに J1 が出現する回数を示す必要があります。 これで作業が楽になることを願っています。ご協力いただきありがとうございます。</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214152" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214152" slang="en-US" mode="NONE"><P>テーブル内のすべての行が一意であるように見えるため、テーブル全体で「JAR X BUCKET X SOG ごとにチューブが発生する回数」が 1 になることが予想されます。 この形式を誤解しているのでしょうか?</P>
<P> </P>
<P>また、メッセージの本文にテーブルを貼り付けるよりも、列の式をそのままにして JMP データ テーブルまたはそのサブセットを添付する方が、何が起こっているかを診断するのにはるかに役立ちます。</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214149" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214149" slang="en-US" mode="NONE"><P>それがまさに私がやりたいことなのですが、とても丁寧に説明していただきました。 しかし、式を適用しても正しい値が得られません。 私たちが同じ波長にあることを確認するために、新しい例を紹介しましょう。 これは非常に大規模で非常に動的なデータ セットです。 これが問題をより良く説明し、混乱させないことを願っています。 ありがとう。</P><P> </P><TABLE border="1"><TBODY><TR><TD><STRONG>チューブ</STRONG></TD><TD><STRONG>瓶</STRONG></TD><TD><STRONG>バケツ</STRONG></TD><TD><STRONG>SOG</STRONG></TD><TD><EM><STRONG>番号 JAR X バケット X SOG ごとにチューブが発生する回数</STRONG></EM></TD><TD><U><EM><STRONG>バケット X SOG の組み合わせごとに Jar が発生する一意の回数</STRONG></EM></U></TD><TD> </TD></TR><TR><TD>ASX</TD><TD>安倍</TD><TD>WDNH</TD><TD>5001</TD><TD><P>3</P></TD><TD><P>2</P></TD><TD> </TD></TR><TR><TD>CDV</TD><TD>安倍</TD><TD>WDNH</TD><TD>5001</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>KNL</TD><TD>安倍</TD><TD>WDNH</TD><TD>5001</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>NHS</TD><TD>ベン</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD><P>SDC</P></TD><TD>ベン</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>MKD</TD><TD><P>猫</P></TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>KDN</TD><TD>猫</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>AMD</TD><TD>猫</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>CMD</TD><TD>猫</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>MDN</TD><TD>犬</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>VNF</TD><TD>犬</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>RKE</TD><TD><P>うなぎ</P></TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>LKD</TD><TD>うなぎ</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KDM</TD><TD>うなぎ</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>WLD</TD><TD>うなぎ</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KMD</TD><TD>うなぎ</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>FDL</TD><TD>飛ぶ</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>SMK</TD><TD>飛ぶ</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>KJM</TD><TD>飛ぶ</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>ALD</TD><TD>飛ぶ</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>臨死体験</TD><TD>飛ぶ</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>IEJ</TD><TD>飛ぶ</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>DFR</TD><TD>安倍</TD><TD>SDER</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>TRE</TD><TD>安倍</TD><TD>SDER</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>NFE</TD><TD>安倍</TD><TD>SDER</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR></TBODY></TABLE></LINGO-BODY><LINGO-SUB id="lingo-sub-214145" slang="en-US" mode="NONE">Re: 複数条件一致に基づいて行をカウントする</LINGO-SUB><LINGO-BODY id="lingo-body-214145" slang="en-US" mode="NONE"><P>やあ<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank">@Sciguy_1</A> 、</P>
<P> </P>
<P>質問の内容は理解できたと思いますが、念のためもう一度言わせてください。 組み合わせが何回発生したかに関係なく、一意の組み合わせの数をカウントする新しい列が必要ですか? 提供されたサブセットには、3 つの列の一意の組み合わせが 3 つあり、ご指摘のとおり、組み合わせのうちの 1 つは 4 回、別の 3 回、そして別の 2 回発生しました。 別の言い方をすると、最初の 3 列で定義される一意の行がいくつあるかを表します。 これが実際に求めているものである場合は、次の列の数式が機能します。これは基本的に、「グループ内の数」列で 1 が出現する回数、つまり一意のグループの数をカウントアップします。</P>
<P> </P>
<PRE><CODE class=" language-jsl">As Constant(
uniqueRowCount = Summation(
i = 1,
N Row(),
If( :Count In Groups[i] == 1,
1,
0
)
)
);
uniqueRowCount;

新しい表もここに貼り付けておきます。 これがあなたがやりたかったことですか?
@ジュリアン
Re: 複数条件一致に基づいて行をカウントする新しい列を作成し、新しい列に次の式を使用します。
summarize(byGroup=by(:Total in Group));
n items(byGroup)
Re: 複数条件一致に基づいて行をカウントするさらに一歩進んで、サブセット内で組み合わせが発生した回数を示す別の列を追加したいとします。 したがって、この例では、「グループ内の合計」列には 4-「4」、3-「3」、および 2-「2」があります。 すべての行 (1 ~ 9) がサブセット全体を表す場合、「4」が発生し、「3」が発生し、「2」が発生するため、この場合の答えは 3 になります。 したがって、新しい列「サブセットの合計」では、すべての行に 3 が入ります。 そのように数値を合計する方法がわかりません。
Re: 複数条件一致に基づいて行をカウントするありがとう、ジュリアン、コラムアプローチは私のアプリケーションに完璧に対応しています。Re: 複数条件一致に基づいて行をカウントするやあ@Sciguy_1
これにはいくつかの方法があります。 数式列のアプローチは比較的簡単だと思います。2 つの列があり、最初の列は一致の出現を増分的にカウントし、次に 2 番目の列はグループごとにカウントの最大値を検索します。これをここではカウントされた集計と呼んでいます。 そのテーブルは次のようになります。
そして、列の式は次のとおりです。
一致に使用される列ごとにグループでカウントします。
Col Cumulative Sum( 1, :Column A, :Column B, :Column C )
およびそのカウント列の最大値。これも一致に使用される列によってグループ化されます。
Col Maximum( :Count In Groups, :Column A, :Column B, :Column C )
参考までに表を添付します。
あるいは、一意の行と一致した回数を 1 回だけリストするテーブルを作成したい場合は、[テーブル] > [概要] を使用できます。 列に「グループ」と入力し、「OK」をクリックします。 その設定は次のようになります。

これにより、これら 3 つの列の値の一意の組み合わせを示す概要テーブルと、データ テーブル内の出現数を示す列が返されます。 
このテーブルを作成したら、集計テーブルから N 行列を選択して元のテーブルに直接ドラッグすると、JMP がすべてのマッチングを処理して、それらの値で元のテーブルを更新します。 これは次のようになります。
最後に、テーブルを作成するためのスクリプトも、ソース スクリプトとして概要テーブルに保存されます。
Data Table( "Example.jmp" ) << Summary(
Group( :Column A, :Column B, :Column C ),
Freq( "None" ), Weight( "None" )
)
これがお役に立てば幸いです!
@ジュリアン