You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Sheets及Excel Online中乐谱收藏表多演出日期存储方案咨询

Google Sheets及Excel Online中乐谱收藏表多演出日期存储方案咨询

针对你遇到的乐谱收藏表演出日期存储问题,结合Google Sheets和Excel Online的特性,给你几个实用的方案,你可以根据自己的数据量和使用习惯选择:

方案一:使用关联数据表(长期维护首推)

这是最贴合数据库逻辑的做法,不管是现在用Google Sheets还是后续转Excel Online都能完美适配,完全解决排序和可读性的问题:

  • 新建一个独立工作表(比如命名为「演出记录」),设置列:Octavo #(和主表的编号一一对应,作为关联标识)、演出日期,还可以加可选列比如演出地点、参演乐团
  • 每有一次演出,就在这个表新增一行,对应乐谱的Octavo #和具体日期
  • 主表的可读性和简洁性完全不受影响,想看某首乐谱的所有演出日期,用函数就能快速汇总:
    • Google Sheets:在主表新增「演出日期汇总」列,输入=TEXTJOIN(", ", TRUE, QUERY(演出记录!A:B, "SELECT B WHERE A="&A2, 0)),就能自动把对应乐谱的所有日期合并显示
    • Excel Online:用TEXTJOIN配合FILTER,比如=TEXTJOIN(", ", TRUE, FILTER(演出记录!B:B, 演出记录!A:A=A2))
  • 排序需求直接在「演出记录」表操作就行:想按最新演出排序就按日期列降序,想按最早演出排序就升序,还能按Octavo #筛选查看单首乐谱的所有演出轨迹

方案二:单元格结构化存储+辅助列排序(轻量数据适用)

如果不想新增工作表,这个折中方案适合数据量不大的场景:

  • 在主表新增「演出日期」列,所有日期用统一格式(比如YYYY-MM-DD),用逗号或分号分隔,比如2024-06-01, 2023-12-20
  • 为了实现排序,新增两个辅助列:
    • 「最新演出日期」:Google Sheets用=MAX(SPLIT(C2, ", ")),Excel Online用=MAX(FILTERXML("<t><s>"&SUBSTITUTE(C2, ", ", "</s><s>")&"</s></t>", "//s")),提取单元格里的最大日期
    • 「最早演出日期」:把上面的MAX换成MIN即可
  • 之后不管是要按最新还是最早演出排序,直接按对应辅助列排序就行,主表的日期单元格也能保持相对整洁(只要日期数量不是特别多)

方案三:多值数据验证+辅助列(规范输入优先)

这个方案是方案二的升级,能避免日期格式混乱:

  • 在主表的「演出日期」列设置数据验证:
    • Google Sheets:选择「数据验证」→ 条件选「列表」→ 勾选「允许输入多个值」,分隔符选逗号
    • Excel Online:同样在数据验证里开启「允许多个值」,设置分隔符
  • 输入日期时会自动规范格式,之后再用方案二的辅助列提取最大/最小日期来实现排序,兼顾输入规范和排序需求

额外小贴士

  • 不管用哪个方案,日期格式一定要统一(推荐YYYY-MM-DD),这样函数计算和排序才不会出问题
  • 如果用关联数据表,建议把主表的Octavo #设置为唯一值,避免关联错误
  • Google Sheets可以用「筛选视图」,Excel Online用「切片器」,快速筛选查看特定乐谱的所有演出记录

备注:内容来源于stack exchange,提问作者Jon Arnold

火山引擎 最新活动