Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何识别Excel中跨列非顺序文本字符串共存的模式?_Excel_String_Text - Fatal编程技术网

如何识别Excel中跨列非顺序文本字符串共存的模式?

如何识别Excel中跨列非顺序文本字符串共存的模式?,excel,string,text,Excel,String,Text,我感兴趣的是识别跨多个文本字符串列的共现模式。我有一个固定呼叫中心数据的研究数据集(1个呼叫=1行)。我已经手动向数据集中添加了4列以添加标记,让我们调用列Theme1、Theme2、Theme3、Theme4 大约有50个标签是文本字符串,非顺序,使用一致的拼写(例如,红色、蓝色、绿色、橙色、紫色…[44种随机颜色]…海蓝色) 这些标记在列之间是互斥的。有些呼叫仅使用1或2个标记。我提到它们是非顺序的,所以我的意思是标记可能出现在一行中的Theme1中,但在另一行中的Theme2中。下面是一个

我感兴趣的是识别跨多个文本字符串列的共现模式。我有一个固定呼叫中心数据的研究数据集(1个呼叫=1行)。我已经手动向数据集中添加了4列以添加标记,让我们调用列Theme1、Theme2、Theme3、Theme4

大约有50个标签是文本字符串,非顺序,使用一致的拼写(例如,红色、蓝色、绿色、橙色、紫色…[44种随机颜色]…海蓝色)

这些标记在列之间是互斥的。有些呼叫仅使用1或2个标记。我提到它们是非顺序的,所以我的意思是标记可能出现在一行中的Theme1中,但在另一行中的Theme2中。下面是一个例子:

主题1 主题2 主题3 主题4 红色 蓝色 绿色 紫罗兰色 蓝色 绿色 绿色 红色 蓝色 紫罗兰色 紫罗兰色 绿色 蓝色 蓝色 红色
好吧,我相信你不会介意我说的问题是相当开放的,但这里有几个建议:

要查找同一行中两种颜色的同时出现,请使用标准获取行总数

=SUM(MMULT(N($A$2:$D$7=$G2),{1;1;1;1})*MMULT(N($A$2:$D$7=H$1),{1;1;1;1}))
(我选择使用数组常量,因为我们只对有四列的情况感兴趣)

例如,您可以进一步开发此功能

颜色1跟在颜色2后面的行

颜色1紧跟在颜色2之后的行

注释

考虑上面第一幅图中的单元格H3。这将统计任意位置同时包含蓝色和红色的行数

(1) 建立一个数组,使用相等运算符(=)将A2:D7中的每个数据元素与G2(蓝色)进行比较:

屈服

(2) 为了使用Mmult,必须将真/假数组转换为数字(0或1):

(3) 我们用一个列向量来表示

={1;1;1;1}
其中分号是行分隔符

(4) 因此,Mmult在原始矩阵中的每一行上移动,将每个元素乘以1,然后将它们相加,得到每一行的行总数

=MMULT(N($A$2:$D$7=$G3),{1;1;1;1})

(5) 另一个Mmult的工作方式完全相同,它获取红色的行总数

=MMULT(N($A$2:$D$7=H$1),{1;1;1;1})

(六)

然后对这两个行总计列向量进行标量乘法,以确定有多少行包含红色和蓝色

(七)

剩下的就是使用SUM计算行总数中的1个数:

=SUM(MMULT(N($A$2:$D$7=$G3),{1;1;1;1})*MMULT(N($A$2:$D$7=H$1),{1;1;1;1}))

结果:3

从上述样本数据中,您期望得到什么样的输出?您是否可以添加另一个标题为
预期输出的列
,然后手动放置结果并解释结果是如何产生的。您是在寻找(例如)红色后跟蓝色(即在相邻列中),还是在主题1中是红色,在主题3中是蓝色?顺便说一句,有超过1000对50种颜色的配对。@TomSharpe后者:简单地说,一些公式可以检测红色和蓝色是否在同一行。更广泛地说,这是一个计算4列中2个文本字符串的所有行组合的公式。太棒了!非常感谢你。我修改了你的解决方案,它成功了。老实说,我根本不懂语法。我还有更多的东西要学。嗨,汤姆,你介意带我看一下你上面第一个公式的语法吗=SUM(MMULT(N($A$2:$D$7=G2),{1;1;1})*MMULT(N($A$2:$D$7=H$1),{1;1;1;1}))我试图理解它是如何工作的,但我希望得到一些指导。我已经试过Excel教程中关于数组公式的内容,但是我仍然无法在这里区分语法。当然,我会在我的答案中添加注释。
={1;1;1;1}
=MMULT(N($A$2:$D$7=$G3),{1;1;1;1})
=MMULT(N($A$2:$D$7=H$1),{1;1;1;1})
=MMULT(N($A$2:$D$7=$G3),{1;1;1;1})*MMULT(N($A$2:$D$7=H$1),{1;1;1;1})
=SUM(MMULT(N($A$2:$D$7=$G3),{1;1;1;1})*MMULT(N($A$2:$D$7=H$1),{1;1;1;1}))