好的,这里有一个问题:
我在医疗保健部门工作,目前我有一个工作簿,该工作簿使用基于病人名称的INDEX:MATCH函数引用值,我手动输入该值。我使用这种方法自动拉出7/10列。第8栏是信息的生成日期,第9栏是另一张纸上的日期/时间戳,我是根据病人的病房号手动输入的。
这是棘手的部分。这两份报告,是我从我们的床管理程序Allscript中提取的,并不是以同样的方式翻译床名/编号的。所以我在另一个工作表中创建了一个翻译表。我的问题是:是否可以使用INDEX:MATCH、VLOOKUP或Excel或VBA中的其他函数来引用我的翻译表,以便查找床头名称/编号并自动填充所需的信息?
电子表格如下所示:
因此,“原始数据页”上的G列需要引用同一页中的E列,根据“床翻译页”翻译该床名,然后从G栏中的“作业活动详细信息”页面查找该已翻译床的日期/时间信息。问题是,由于日复一日地输入数据,在当前工作簿中重复床名超过100 k次(我手动更改了INDEX:MATCH函数中的每个列的搜索范围)。
我希望有人能给我一些启示,这已经是我近两年来的祸根了!感谢您提供的任何信息/帮助!:)
发布于 2016-07-15 21:34:06
好消息,伙计,你不需要这个!它从作业活动详细信息中提取G列,其中rawdata页面上的标识符等于作业活动详细信息上的标识符,并且在作业活动详细信息和入口详细门户上的名称相同,并且在J和M中的两次相应工作表匹配。
Option Explicit
Sub bd()
Dim rdsheet As Worksheet, jbsheet As Worksheet, btsheet As Worksheet
Dim bdstr, bdendrow, rng As Range, y, Key, GCell, BdCell
Set rdsheet = Sheets("Raw Data Page")
Set jbsheet = Sheets("Job Activity Detail")
Set btsheet = Sheets("Portal of Entry Detail")
bdstr = rdsheet.Range("G3").Address
bdendrow = rdsheet.Range("A3").End(xlDown).Row
Set rng = rdsheet.Range(bdstr & ":G" & bdendrow)
For Each y In rng
If IsEmpty(y) Then
Key = y.Offset(0, -2).Value
Key = Replace(Key, "-", "")
Set GCell = jbsheet.Range("A:A").Find(what:=Key, LookAt:=xlPart)
Set BdCell = btsheet.Range("B:B").Find(what:=y.Offset(0, -4).Value, LookAt:=xlPart)
If Not GCell Is Nothing And btsheet.Range("J" & BdCell.Row).Value = jbsheet.Range("M" & GCell.Row).Value Then
rdsheet.Range(y.Address) = jbsheet.Range("G" & GCell.Row)
End If
End If
Next y
End Sub发布于 2016-07-15 21:03:33
{=索引(“作业活动详细信息”!$G$106463:$G$106689,match (“原始数据页”!E 15459和H 15459,“作业活动详细信息”!$106463:$106689&‘作业活动详细信息’!$M$106463:$M$106689,0))}将值查找为具有多个匹配条件的数组函数似乎正在工作!我很欣赏洛帕尔的洞察力!)
https://stackoverflow.com/questions/38403612
复制相似问题