我什至不知道如何问这个。
我有一个数据库,其中每一行都是一个人。列是联系信息、电话等。一列是“访问日期”。每个人可以访问多个日期。我不想使用逗号或将它们全部堆叠在一个字段中。
有没有办法拥有一个“嵌套”列表(不是下拉菜单 - 只是每个人的访问日期列表),这样一个人仍然只消耗一行?
是的,
为此,请为每个人提供一个唯一且不会更改的 ID。然后在另一张纸上存储 ID 和日期。
主表(ID、姓名、联系信息、电话等)第二张表(ID、访问日期)
在数据库理论中,这称为“一对多”关系,而我所描述的称为“规范化数据集”。
在 Excel 中,您现在可以使用公式来操作数据,但是您需要或可以在将其拆分后想象。
正如您在评论中提到的,计算用户的所有访问日期。在右侧的主工作表上,您可以使用:
=countif(Sheet2!A:A,Sheet1!A1)
这将计算第二张表中与主表上当前行 ID 匹配的所有 ID。
关于使用一个单元格的注意事项:
将所有日期存储在一个单元格中最终会将其最大化,并且随着它的增长将使其难以查看/搜索,因此我强烈建议不要使用这种方法。
但是,如果您坚持将日期保留在其中,则可以通过计算逗号的总数 + 1 来计算访问次数=(LEN(G1) - LEN(SUBSTITUTE(G1,",","")))+1
此公式采用所有日期的长度以及删除逗号的日期长度并减去它们以获得多次出现。
关于使用多列的注意事项:
这种方法与我建议的方法具有相同的想法,我们将许多日期与行的人的身份相关联。但是,有一些关键的限制和缺点。
主要区别在于,当我们通过调换日期以垂直扩展来抽象日期时,我们可以更轻松地操作它们,并使一个人的 20 个日期列表更易于阅读。通过在第二张表中垂直转置日期而不是使用这种方法,我们还获得了使用 Excel 内置过滤器的能力。仅仅存储大量数据本身是没有用的。以一种您可以轻松查看和操作的方式存储它可以让一切变得更加强大。