RFM分割Excel采取中等价值

我试图用RFM Segmentation对客户进行细分,对于每一列R,F和M,范围在1到5之间。组合了三列后,有很多可能性,如555254等等。 代码555是最好的客户, X5X是忠实的客户。 “X”定义任何数字,例如Code 454也是忠诚的客户分类。 问题是我不能准确地在Excel中提供IF函数。 这是我555审判

 =IF(O14="555","Best Customer",IF(MID(O14,2,1)="5","Loyal Customer")) 

function重叠,因为它采取了最新的IF,所以555的结果是忠诚的客户应该是最好的客户。 对于大牌球手来说, XX5有很多细分,比如XX5 ,但是由于公式变成了重叠,我无法继续其余部分。 感谢您的帮助。

如果你只需要每个数字1个结果,那么你只需要把最高优先级放在首位。 第一个是TRUE的IF将会被使用。 从你的例子来看,“455”看起来既是忠诚的客户,也是大的消费者。 在这种情况下,我们无法从你的解释中看出结果是什么。 但是,优先级较高的应该早于嵌套的IF语句。

你的公式看起来正确,555应该返回“最佳客户”。 如果它正在返回忠诚客户,那么看起来好像在O14中存储了555个数字而不是文本。 如果是一个数字,你的公式应该是:

 =IF(O14=555,"Best Customer",IF(MID(O14,2,1)="5","Loyal Customer")) 

唯一的区别是删除555附近的引号。如果O14被存储为一个数字,那么O14 =“555”是比较一个数字与一个string(三个“5”字符,而不是数字555),这将始终返回FALSE,因此它在下一个IF声明上移动。 要在开始时获得TRUE结果,您需要将O14与555进行比较。

然后,您可能会困惑为什么公式的第二部分工作。 这是因为MID函数将接受一个数字作为input,然后强制进行types转换。

当你使用=运算符时,excel只能比较类似的值。 意思是它可以将string与string或数字进行比较,但不能将数字与string进行比较

但是,MID函数将接受string或数字。 当给定一个数字时,它将首先将其转换为一个string,然后输出一个string。

如果给定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。