如何使 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
);