我有一个包含 1800 名员工的数据库(每行 1 名员工)以及一个二进制确认,用于确认他们是否拥有我们跟踪的 105 项专业认证中的 1 项或多项(每列 1 项认证)。
我需要将这些信息合并为|员工 A| |认证 1(即 PMP)| |认证 2| |认证 3| |认证 4| |认证 5|。
不使用宏可以实现吗?如果可以,该怎么做?
答案1
好的。我建议使用文本转数据。例如。如果你有文本,Jim Bob|A+|CCNA|MOS Access|CAP|CISSP
你可以使用文本到列使用 分隔符|
将其分隔开。
下一个挑战是将所有证书合并到一个文本字段中。为此,我实际上将使用快速一次性 Excel 表来制作合并公式。因此,假设您的数据在 Sheet1 上。
我制作了一组包含 、、、、'=CONCATENATE(
的单元格=IF(Sheet1!C2=1,Sheet1!C$1 & ", ","")
=IF(Sheet1!D2=1,Sheet1!D$1 & ", ","")
=IF(Sheet1!E2=1,Sheet1!E$1 & ", ","")
')
请务必注意'
未完成的连接命令之前将其标记为文本。由于在适当的位置仔细标记为静态(使用 $ 来防止单元格地址的该部分发生变化),您可以将其中一个 IF 单元格一直复制过去,以覆盖所有员工所需的内容。
这给你类似的东西。
我知道你在说什么。“这些乱七八糟的东西到底是什么!这根本没用。”下一个技巧是使用你最喜欢的文本编辑器中的查找和替换功能。
因此,请转到 Excel 中的公式选项卡并单击显示公式。哇!很多东西。选择所有已填充的单元格(单击左上角,Ctrl-Shift-Right 效果很好)并复制。打开您最喜欢的文本编辑器,我的是 Notepad++。
粘贴。大量制表符分隔的公式化功能。我将使用“查找/替换”进行一些替换。在我的环境中按 Ctrl-H
- 首先,我要用它查找
CONCATENATE(<Tab>
并替换以(
删除第一组标签。 - 其次,我将查找
,<Tab>)
并替换以)
删除尾随逗号和最后一个制表符。 - 第三(-ly?)我要查找
<tab>
并替换|
这个,将使所有制表符变成逗号。 - 第四(-ly?)我要查找
=IF
并替换IF
。这将留下类似“=CONCATENATE(IF1,IF2,IF3,IF4....)”的内容。
将文本从 = 复制到行尾。返回 Excel(我喜欢不同的工作表,但您可以随意选择)单击单元格,然后我建议您单击地址栏,然后粘贴公式。这样您就不会意外粘贴为文本。这样您应该可以在一个单元格中看到所有已完成证书的列表。您可以将该单元格复制到其余员工中。
然后,您可以像我上面建议的那样将其分开。这很容易,对吧?这需要很多设置,但是一旦您习惯了这种操作,它真的可以帮助您制作一些复杂的公式。例如,将 105 个认证名称(如果它们存在)连接到一个单元格的公式。如果您有任何更具体的问题,请回复