基于多条件匹配的行计数如果 3 列 (ABC) 匹配,我想计算数据集中的行数。 我想在新列 (D) 中输入值。 这是一个例子。 谢谢您的帮助!
| A栏 | B栏 | C栏 | D 栏(计数) |
| 7 | Z | S | 4 |
| 7 | Z | S | 4 |
| 1 | A | 磷 | 3 |
| 1 | A | 磷 | 3 |
| 1 | A | 磷 | 3 |
| 7 | Z | S | 4 |
| 5 | 乙 | 中号 | 2 |
| 5 | 乙 | 中号 | 2 |
| 7 | Z | S | 4 |
回复:根据多条件匹配计算行数我很高兴这个公式@多发性硬化症为您发布作品! 我很好奇为什么我的方法在您的实际表上失败了,但也许我们的时间最好花在您的其他问题上,而不是诊断我的劣质两列方法出了什么问题!
我能问一下创建该计数可以解决什么问题吗? 通过这样做,您似乎最终会得到一列 1,因为无论模式出现的次数如何,您都将其计为 1。 我认为我没有完全理解你想要做什么或者它能帮助你完成什么。 我想如果我知道最终目标,我也许能够提出比一系列公式列更简单的整体方法。
@朱利安
回复:根据多条件匹配计算行数我仍然无法使其正常工作。 朱利安建议的 2 个方程版本 - 第一个方程给了我全 1,所以不确定我做错了什么。 单方程方法确实给出了每个 SOG 中特定存储桶出现的总次数。 我仍在尝试获得的另一部分是我必须抓住水桶的次数。 例如,如果我抓起一个桶并采集 4 个样本,或者再次抓起它并采集 19 个样本 - 在每种情况下我只抓了一次桶。 从我的数据示例来看,EXULU 在 621 SOG 中总共出现了 4 次。 我想创建一个将这 4 次算作 1 次的计数。 EH8QK 在 621 SOG 中总共出现了 19 次,但我想将它们全部算作 1。 我希望这能更好地解释问题的后半部分。 谢谢你!
回复:根据多条件匹配计算行数使用两列进行计数的另一种方法是使用 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">回复:根据多条件匹配计算行数</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(正确答案)”的计算与您所说的手动创建的不匹配,但我很确定我在这里所做的事情是正确的,因为它与我自己的手动计数相符。 你能检查并确认我没有遗漏什么吗?</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">回复:根据多条件匹配计算行数</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">回复:根据多条件匹配计算行数</LINGO-SUB><LINGO-BODY id="lingo-body-214361" slang="en-US" mode="NONE"><P>你是对的,每一行都是唯一的。 这是真实数据集的子集。 我创建了几个专栏来代表我想要完成的任务。 我手动填充了“每个 SOG 中 BUCKET 出现的次数”列。NULL 值可以被视为其自己的 BUCKET。 第二列需要显示 J1 出现的次数:SOG X BUCKET 组合。 希望这能让事情变得更容易,感谢您的帮助。</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214360" slang="en-US" mode="NONE">回复:根据多条件匹配计算行数</LINGO-SUB><LINGO-BODY id="lingo-body-214360" slang="en-US" mode="NONE"><P>你是对的,每一行都是唯一的。 这是真实数据集的子集。 我创建了几个专栏来代表我想要完成的任务。 我手动填充了“每个 SOG 中 BUCKET 出现的次数”列。NULL 值可以被视为其自己的 BUCKET。 第二列需要显示 J1 出现的次数:SOG X BUCKET 组合。 希望这能让事情变得更容易,感谢您的帮助。</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214152" slang="en-US" mode="NONE">回复:根据多条件匹配计算行数</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">回复:根据多条件匹配计算行数</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>索格</STRONG></TD><TD><EM><STRONG>每个 JAR X BUCKET X SOG 发生次数管</STRONG></EM></TD><TD><U><EM><STRONG>每个桶发生 Jar 的唯一次数 X SOG 组合</STRONG></EM></U></TD><TD> </TD></TR><TR><TD>澳大利亚证券交易所</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>韩国国家实验室</TD><TD>阿贝</TD><TD>WDNH</TD><TD>5001</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>国民医疗服务体系</TD><TD>本</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD><P>南达科他州</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>凯迪恩</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>指令管理系统</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>虚拟网络功能</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>左旋KD</TD><TD>鳗鱼</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>凯迪曼</TD><TD>鳗鱼</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>世界LD</TD><TD>鳗鱼</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>克马德</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>斯德</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>SMK</TD><TD>飞</TD><TD>斯德</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>克吉姆</TD><TD>飞</TD><TD>斯德</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>酒精性肝病</TD><TD>飞</TD><TD>斯德</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>濒死体验</TD><TD>飞</TD><TD>斯德</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>IEJ</TD><TD>飞</TD><TD>斯德</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>DFR</TD><TD>阿贝</TD><TD>斯德</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>特雷</TD><TD>阿贝</TD><TD>斯德</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>非金融实体</TD><TD>阿贝</TD><TD>斯德</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">回复:根据多条件匹配计算行数</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 种独特的组合,正如您所指出的,其中一种组合出现 4 次,另外 3 次,另外 2 次。 另一种说法是您有多少唯一行,由前三列定义。 如果这确实是您想要的,则可以使用以下列公式,该公式本质上是计算“计数在组中”列中出现 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;

我也在这里附上了新表。 这是您想要做的吗?
@朱利安
回复:根据多条件匹配计算行数创建一个新列并对新列使用以下公式
summarize(byGroup=by(:Total in Group));
n items(byGroup)
回复:根据多条件匹配计算行数更进一步 - 假设我想添加另一列来显示子集中出现组合的次数。 因此,在示例中,“组中总数”列中有 4-“4”、3-“3”和 2-“2”。 如果所有行(1 到 9)代表整个子集,则本例中的答案将为 3,因为出现了“4”,出现了“3”,出现了“2”。 因此,在新列“子集中的总计”中,每一行都会有一个 3。 我不知道如何以这种方式汇总数字。
回复:根据多条件匹配计算行数谢谢朱利安,专栏方法完美地解决了我的申请。回复:根据多条件匹配计算行数你好@Sciguy_1
有几种方法可以解决这个问题。 我认为公式列方法相对简单,有两列,第一列递增地计算匹配的出现次数,然后第二列按组查找该计数的最大值,这就是您在这里所说的计数。 该表如下所示:
这是列公式:
按用于匹配的列进行分组计数:
Col Cumulative Sum( 1, :Column A, :Column B, :Column C )
以及该计数列的最大值,也按用于匹配的列进行分组
Col Maximum( :Count In Groups, :Column A, :Column B, :Column C )
附表供大家参考。
或者,如果您希望创建一个仅列出一次唯一行及其匹配次数的表,则可以使用“表”>“摘要”。 作为组输入您的列,然后单击“确定”。 该设置如下所示:

这将返回一个汇总表,其中显示这三列中值的唯一组合,以及显示数据表中出现次数的列。 
获得此表后,您可以选择汇总表中的 N 行列,然后将其直接拖动到原始表中,JMP 将为您处理所有匹配,以便使用这些值更新原始表。 看起来是这样的:
最后,制作表格的脚本也作为源脚本保存到汇总表中:
Data Table( "Example.jmp" ) << Summary(
Group( :Column A, :Column B, :Column C ),
Freq( "None" ), Weight( "None" )
)
我希望这有帮助!
@朱利安