如何使 if 公式以另一列中任意行中出现的行值为条件?你好 :)
我正在寻找排序/过滤/列表问题的交互式解释。
例如,如果我的任务是:根据以下数据集将从未购买过咖啡的客户所进行的所有客户购买的列表导出到 Excel。 因此,任务是将客户 2 和 4 的所有行导出到 Excel,我的挑战是如何做出能够解决此问题的选择/变量。
我尝试创建一个列,其中包含关于咖啡是否在行中的二进制“if”公式,然后如果客户购买了咖啡,则创建一个显示客户 ID 的列。 然后,我希望将此列保存为列表,并根据此列表中出现的客户 ID 创建一个 if 公式,例如,客户 1 和 3 的所有行都将具有相同的值,因此可以被排除。 但我陷入了列表部分+这可能不是最简单的方法。
有人可以帮忙吗?
| | | 尝试过“解决方案” | |
| 客户ID | 喝 | 咖啡与否 | 购买过咖啡的顾客ID |
| 1 | 咖啡 | 1 | 1 |
| 1 | 咖啡 | 1 | 1 |
| 1 | 水 | 0 | 0 |
| 1 | 咖啡 | 1 | 1 |
| 2 | 水 | 0 | 0 |
| 2 | 水 | 0 | 0 |
| 2 | 水 | 0 | 0 |
| 2 | 水 | 0 | 0 |
| 2 | 水 | 0 | 0 |
| 2 | 水 | 0 | 0 |
| 2 | 水 | 0 | 0 |
| 3 | 水 | 0 | 0 |
| 3 | 水 | 0 | 0 |
| 3 | 咖啡 | 1 | 3 |
| 4 | 水 | 0 | 0 |
| 4 | 水 | 0 | 0 |
| 4 | 水 | 0 | 0 |
| 4 | 水 | 0 | 0 |
| 4 | 水 | 0 | 0 |
| 4 | 水 | 0 | 0 |
回复:如何使 if 公式以另一列中任何行中出现的行值为条件?效果非常好而且简单 - 非常感谢!
回复:如何使 if 公式以另一列中任何行中出现的行值为条件?用户似乎喜欢的另一种方法是在数据表中创建一个新列,其中包含特定条件的公式。 在这种情况下,按客户 ID 聚合的列总和将找出咖啡使用的计数。 然后使用“选择位置”或“选择咖啡用量 == 0 的匹配单元格”。 该列可用于数据过滤器等。

回复:如何使 if 公式以另一列中任何行中出现的行值为条件?你好@内尔91 ,
另一种适用于仅基于一个项目进行选择的情况的方法是使用右键单击 > 选择匹配。 首先,选择一个有咖啡的单元格,右键单击>选择匹配,这会选择该列中的所有咖啡单元格。 然后,单击客户 ID 列,并右键单击已选定的单元格 > 选择匹配。 现在将选择所有因购买咖啡而被选择的客户。 现在,您可以删除这些行,然后剩下从未购买过咖啡的客户子集。

@朱利安
回复:如何使 if 公式以另一列中任何行中出现的行值为条件?你好@内尔91 ,
如果您想在 JMP 中完成此操作而不使用任何 JSL,甚至不使用列公式,您可以使用“表”>“汇总”来创建一个链接汇总表,用于计算每个客户购买的饮料数量。 然后,使用此链接的汇总表,您可以选择购买了零杯咖啡的客户(这也将选择原始表中的那些客户),然后将这些客户子集到新表中。下面是一个显示该过程的快速视频。
我希望这有帮助!
@朱利安
回复:如何使 if 公式以另一列中任何行中出现的行值为条件?附件是您的示例数据表,其中应用了以下公式
dt = Current Data Table();
currentCustomer = :Customer ID;
If(
N Rows(
dt << get rows where(
:Customer ID == currentCustomer & :Drink == "Coffee"
)
) > 0,
1,
0
);