Excel - 查找与 ID 相关的值并填写另一个工作簿

Excel - 查找与 ID 相关的值并填写另一个工作簿

我在印度的一家小医院工作,遇到以下问题:对于一种特殊药物,我们有一个包含日期、ID、剂量、持续时间、下次访问的清单,我们将其用作每日工作清单(工作簿 1),这意味着一个 ID(人)可以在这个列表中出现多次。

在另一个工作簿中,我们有一个“主文件”(工作簿 2),每个 ID 只出现一次,但每次人员再次出现时都会重复模式(日期、持续时间、下次访问)(因此日期 2、持续时间 2、下次访问 2)

我正在寻找一种优雅的方法,将每日列表(工作簿 1)中的数据自动填充到主表(工作簿 2)中。因此,我假设我需要一些 IF + INDEX/Match + Array 函数来查找工作簿 1 中的 ID,获取 DATE1、DURATION1、NEXT VISIT2 的值并填写到工作簿 2,然后在工作簿 1 中进一步查找列表,找到患者下次就诊的时间,获取数据并在工作簿 2 中再次填写,但现在是在 DATE2 中……依此类推。

我添加了两张图片来解释这个问题。

每日报表:
在此处输入图片描述

主表: 在此处输入图片描述

答案1

  1. 可以使用公式查找值。您只需要标题显示数字,例如 1,格式为0“第一次访问”ETC。
  2. 不幸的是,这些函数永远不会处理两件事:数据丢失和溢出。想象一下病人第 8 次来就诊,但你的表格中却没有显示,因为你只填了 7 个病人。

你可能正在寻找的功能是

=SUMPRODUCT(1*(A3>$A$3:$A$8),1*(B3=$B$3:$B$8))+1

需要将其添加到工作簿一中,它会告诉您给定会议的次数,第一次:1,第二次:2 等。此公式的另一个问题是它不会区分两个相同值的数字。如果某人恰好在一天内拜访您两次(假设您没有记录到小时数),则只会算一次。

答案2

正如其他答案所述,您可以使用公式来完成,但它可能不是最好/最简单的解决方案,我会使用以下选项之一:

数据透视表:

如果您可以忍受它的局限性,那么这可能是最简单、最优雅的解决方案:
- 目标范围不可编辑(在您的情况下甚至可能是积极的)。
- 您只能在表格主体中使用数字和日期值(您的示例中只有文本是速率,但您可以设置自定义数字格式以在数字后显示“mg”)。
准备:
- 在表格中添加新列 - VisitSequence:。=countifs(f:f,f3,b:b,"<="&b3)-
创建数据透视表。 列标签:ID;行标题:VisitSequence;值:日期、剂量、持续时间、下次访问(因为每个 ID X 日期组合只有一行,所以您可以使用总和或平均值)。

VBA:

需要比pivot更多的工作,但它更加灵活。

微软 Access:

您需要的报告的原生工具。它可能需要您学习一些知识,但它可能是最佳的长期解决方案。

相关内容