最近,我的一个朋友找我请求帮助生成由一组给定单词组成的所有可能的短语。 当您需要在搜索查询中检查所有可能的单词排列时,在为在线广告和 SEO 推广编制关键字和短语列表时,可能会出现此类问题:
在数学中,这种操作称为 笛卡尔积. 官方定义如下:集合 A 和 B 的笛卡尔积是所有对的集合,其中第一个分量属于集合 A,第二个分量属于集合 B。而且集合的元素可以都是数字和文字。
翻译成人类语言,这意味着如果在集合 A 中我们有单词“white”和“red”,而在集合 B 中有“BMW”和“Mercedes”,那么在这两个集合的笛卡尔积之后,我们输出是所有可能的短语变体的集合,由两个列表的单词组成:
- 白色宝马
- 红色宝马
- 白色奔驰
- 红色奔驰
… 即我们所需要的。 让我们看一下在 Excel 中解决此任务的几种方法。
方法 1. 公式
让我们从公式开始。 假设作为初始数据,我们分别在 A、B 和 C 列中有三个原始单词列表,每个列表中的元素数量可以变化:
首先,让我们用索引制作三列,即每个列表中所有可能组合的单词的序数。 第一行单位 (E2:G2) 将手动输入,其余的我们将使用以下公式:
这里的逻辑很简单:如果上一级单元格中的索引已经到了链表的末尾,即等于函数计算的链表中的元素个数 COUNT个 (计数),然后我们重新开始编号。 否则,我们将索引增加 1。特别注意巧妙地用美元符号 ($) 固定范围,以便您可以向下和向右复制公式。
现在我们已经从每个列表中获得了所需单词的序数,我们可以使用函数提取单词本身 指数 (指数) 分成三个单独的列:
如果你以前在工作中没有遇到过这个函数,那么我强烈建议你至少对角学习它——它在很多情况下都有帮助,而且很有用(甚至更多!) VPR (VLOOKUP).
好吧,在那之后,只需要使用连接符号 (&) 逐行粘合生成的片段:
… 或者(如果您有最新版本的 Excel)具有方便的功能 结合 (文本连接),它可以通过给定的分隔符(空格)粘合指定单元格的全部内容:
方法2.通过Power Query
Power Query 是一个强大的 Microsoft Excel 插件,它执行两项主要任务:1. 从几乎任何外部源将数据加载到 Excel 中,以及 2. 对加载的表进行各种转换。 Power Query 已内置在 Excel 2016-2019 中,对于 Excel 2010-2013,它作为单独的加载项安装(您可以从 Microsoft 官方网站免费下载)。 如果您还没有开始在工作中使用 Power Query,那么是时候考虑一下了,因为上面描述的转换可以轻松自然地完成,只需几个动作。
首先,让我们将源列表作为单独的查询加载到 Power Query 中。 为此,对于每个表,请执行以下步骤:
- 让我们通过按钮将表格变成“智能”表格 格式化为表格 标签 主页 (首页——表格格式) 或键盘快捷键 按Ctrl+T. 每个表都会自动命名 表 1,2,3、XNUMX、XNUMX…, 但是,如果需要,可以在选项卡上更改 构造函数 (设计).
- 在表格中设置活动单元格后,按下按钮 从表 (从表) 标签 时间 (日期) 或在选项卡上 电源查询 (如果您将其作为 Excel 2010-2013 的单独加载项安装)。
- 在打开的查询编辑器窗口中,选择命令 主页 — 关闭并加载 — 关闭并加载... (首页—关闭&加载—关闭&加载到..) 然后选项 只需创建一个连接 (仅创建连接). 这会将加载的表留在内存中,并允许将来访问它。
如果你做的一切都正确,那么右侧面板中的输出应该是模式下的三个请求 仅连接 使用我们的表名:
现在右键单击第一个查询并选择命令 链接 (参考)制作一个可更新的副本,然后通过命令向数据添加一个附加列 添加列 ž – 自定义列 (添加列-ž自定义列). 在公式输入窗口中,输入新列的名称(例如,Fragment2)和一个极其简单的表达式作为公式:
=表2
… 即,换句话说,第二个查询的名称:
点击后 OK 我们将看到一个新列,在每个单元格中都有一个嵌套表格,其中包含第二个表格中的短语(如果单击单词旁边的单元格背景,您可以看到这些表格的内容 表):
仍然可以使用结果列标题中带有双箭头的按钮来扩展这些嵌套表的所有内容并取消选中 使用原始列名称作为前缀 (使用原始列名作为前缀):
…我们从前两组中得到所有可能的元素组合:
此外,一切都是相似的。 使用公式添加另一个计算列:
=表3
…,然后再次展开嵌套表——现在我们已经拥有了从三个集合中分别排列单词的所有可能选项:
它仍然从左到右选择所有三列,保持 按Ctrl, 并使用命令连接它们的内容,用空格分隔 合并列 (合并列) 从标签 转型 (转换):
可以使用熟悉的命令将生成的结果卸载回工作表上 主页 — 关闭并加载 — 关闭并加载... (首页—关闭&加载—关闭&加载到..):
如果将来我们的源表中发生了带有片段的更改,那么只需通过右键单击结果表并选择命令来更新生成的查询就足够了 更新并保存 (刷新) 或按键盘快捷键 按Ctrl+其他+F5.
- 什么是 Power Query、Power Pivot、Power Map 和 Power BI,它们为什么需要 Excel 用户
- 在 Power Query 中创建甘特图
- INDEX 函数的 5 种使用方法