我正在尝试使用RFM分段对客户进行细分,每列R,F和M的范围为1到5.在我合并三列之后,有许多可能性,例如151
,555
,或254
等等。
代码555
是最好的客户
而X5X
是忠诚的客户。 “X”定义任何数字,例如代码454
也是忠诚客户细分。
问题是我无法正确地在excel中正确地传递IF函数。以下是555
=IF(O14="555","Best Customer",IF(MID(O14,2,1)="5","Loyal Customer"))
该功能重叠,因为它采用了最新的IF,因此555
的结果是忠诚客户,应该是最佳客户。对于大消费者来说,有许多细分,例如XX5
,但是由于公式转向重叠,我无法继续其余的。谢谢你的帮助。
答案 0 :(得分:1)
如果您只需要每个数字1个结果,那么您只需要先将最高优先级放在首位。第一个为TRUE的IF将是使用的IF。从你的例子看,它看起来像" 455"既可以是忠诚的客户,也可以是Big Spender。我们无法从您的解释中说明在这种情况下结果应该是什么。但是,优先级较高者应该在嵌套的IF语句中更早出现。
您的公式看起来是正确的555应该返回"最佳客户"。如果它正在返回Loyal Customer,那么您似乎已经将555存储为数字而不是O14中的文本。如果是数字,则您的公式应为:
=IF(O14=555,"Best Customer",IF(MID(O14,2,1)="5","Loyal Customer"))
唯一的区别是删除555附近的报价。如果O14存储为数字,则O14 =" 555"将数字与字符串进行比较(三个" 5"字符而不是数字555),它总是返回FALSE,因此它会在下一个IF语句上移动。要在开始时获得TRUE结果,您需要将O14与数字555进行比较。
然后,您可能会对公式的第二部分为何起作用感到困惑。这是因为MID函数会接受一个数字作为输入,然后强制进行类型转换。
使用=运算符时,excel只能比较相似的值。这意味着它可以将字符串与字符串或数字与数字进行比较,但不能将字
但是,MID函数将接受字符串或数字。当给出一个数字时,它将首先将其转换为字符串,然后输出一个字符串。
如果给出MID(555,2,1),它首先将555更改为" 555"并给出与MID(" 555",2,1)相同的结果,即字符" 5"而不是数字5。
所以,即使O14的数字是555,MID(014,2,1)也会返回字符" 5"和比较MID(O14,2,1)=" 5"将返回TRUE。