excel - 如何让 Excel 根据不同列中的值动态生成列?
问题描述
在 Excel 2016 中,我有一个“品牌”列,它的每一行都包含一个字符串。可能的字符串值的集合是有限的,它们可能会出现不止一次。
另一列“模型”中有相关数据。每个模型值总是不同的。
如何让 Excel 为每个现有品牌生成一个列,并以自动方式用相应的模型填充它?
我的问题是我不能手动进行,因为对于每次分析,品牌的数量都是不同的,而且我事先并不知道。
这将是输入:
这是预期的输出:
有任何想法吗?
先感谢您!
解决方案
尝试使用数组公式。首先,将不同的品牌价值放在第 1 行,从 D 列开始。如果需要,可以使用 C 列,但我喜欢在数据和所需结果之间留一个空列。
D1 = 苹果,E1 = 诺基亚,F1 = 三星,G1 = 小米
然后,在单元格 D2 中的 Apple 正下方,粘贴以下公式:
=IFERROR(INDEX($B$2:$B$9999, SMALL(IF(D$1=$A$2:$A$9999, ROW($A$2:$A$9999)-ROW($A$2)+1), ROW (1:1))),"")
如果您有超过 9999 行,则在公式中根据需要进行调整。
光标仍在公式中,同时按 CTRL-SHIFT-ENTER 使其成为一个数组。
将公式复制到单元格 E2、F2 和 G2。如果事情看起来不对,您可能需要再次为其中的每一个重复数组技巧(CTRL-SHIFT-ENTER)。因此,您的 Excel 将如下所示:
现在,根据需要将公式向下拖动。如果没有找到更多模型,公式的 iferror 部分将确保单元格看起来很干净。
- - -在最近的评论后编辑- - -
我无法确定如何自动从 A 列中选择不同的值并将它们自动转换为一行。将它保存在列中很容易,但是转置为行很麻烦。
无论如何,这是丑陋的更新。单元格 D1 将简单地说明“品牌”。在单元格 D2 中,将其设为数组公式 (CTRL-SHIFT-ENTER)。
=IFERROR(INDEX($A$2:$A$9, MATCH(0, COUNTIF($D$1:D1, $A$2:$A$9), 0)), "")
因此,第 2 行将是您的品牌。拖动公式,重复数组技巧。
现在,在单元格 E1 中,键入公式 =D2。拖过去。
放置原始答案中的公式建议,从第 3 行开始。最终结果如下所示。它现在应该是“自动化的”,但它并不吸引人。小的编辑会有所帮助(例如,使第 1 行几乎不可见)。
推荐阅读
- python - 如果下一列不在上一列中,则python连接多列
- python - 如何克隆一个python虚拟环境
- php - 发布数据时出现奇怪的编码问题
- vue.js - VueJS:多个数组,在任何一个数组中选择时删除其他数组中的值
- python - 如何使我的代码在最后输出一个格式化的值,并将其放在一个函数中,并带有一个返回值?
- python - 我的网页抓取代码不会让我的 streamlit 应用程序停止运行
- database - 我想与同事分享我的 docker mongodb 数据库
- google-sheets - Google 表格在地址公式中显示错误的结果。如何进行多部分查询,结果来自同一行的另一列
- excel - 将工作表数据合并到具有工作表名称和文件名列的新工作表中
- java - 为日期时间字符串标准化日期字符串