我有一个电子表格,其中包含a栏中的患者,b栏中患者的诊断以及c栏中的医生.我有另一张表,其中列出了a列中的医生,列b中列出了他们的练习组.我需要一个功能,它将查看表1中列c中的每个值,将其与第2页(医生列表)中第a列的医生匹配,并将练习组返回到表1中的第d列.我尝试了一些公式包括这一个
=IFERROR(VLOOKUP(C2,'Doctors List'!A:B,2,FALSE),"")
Run Code Online (Sandbox Code Playgroud)
但似乎无法得到任何工作!它只是返回空白.请帮忙!
**表1
Patient Name Diagnosis Attending Physician Practice Group**
Patient A Diagnosis Dr. Smith
Patient B Diagnosis Dr. John
Patient C Diagnosis Dr. Joe
Patient D Diagnosis Dr. Ken
Patient E Diagnosis Dr. Williams
Patient F Diagnosis Dr. Williams
Patient G Diagnosis Dr. Smith
Patient H Diagnosis Dr. Jones
Run Code Online (Sandbox Code Playgroud)
**表2
Physician Practice Group**
Dr. Smith Practice A
Dr. John Medical Group A
Dr. Joe Practice B
Dr. Ken Medical Group B
Dr. Williams Practice C
Dr. Jones …Run Code Online (Sandbox Code Playgroud) 我是SQL的新手,如果你有空闲的时刻,我想知道是否有人可以帮我复制VlookupSQL中的Excel 函数吗?
从一些研究中,我怀疑它是join我需要的功能之一,但是,我不想只选择两个表中包含的数据 - 我只想在1个表中查找另一个表中的值.
如果数据包含在查找表中,则返回值,如果不包含,则返回NULL.
我在下面给出了几个示例表来帮助说明我的问题.
请注意,产品'C'和'D'不在表2中,但它们仍在结果表中但具有NULL值.
我也有大量独特的产品,所以我不是在寻找一个包含硬编码的答案,例如; CASE WHEN [Product] = 'A' THEN...
表格1
Product Quantity
-------------------
A 10
B 41
D 2
C 5
B 16
A 19
C 17
A 21
Run Code Online (Sandbox Code Playgroud)
表2
Product Cost
-----------------
A £31.45
B £97.23
Run Code Online (Sandbox Code Playgroud)
结果表
Product Quantity Cost
-----------------------------
A 10 £31.45
B 41 £97.23
D 2 NULL
C 5 NULL
B 16 £97.23
A 19 £31.45
C 17 NULL
A 21 £31.45
Run Code Online (Sandbox Code Playgroud) 我有一个 59720 obs 的数据框。看起来像下面。我想为查找表中的每个观察值分配一个 MARKETNAME。
> data (a)
DAY HOUR LEAD Row.Count DATE ITIME HOMEPHONE CITY STATE ZIPCODE ZONENAME
1 Monday 13:00 1 9430 7/1/2013 13:42:51 FORT LAUDERDALE FL 33315 68
2 Monday 13:00 1 9432 7/1/2013 13:43:50 xxxxx9802x PLEASANT GROVE AL 35127 82
3 Monday 13:00 1 9434 7/1/2013 13:46:18 5xxxx85x10 ORO VALLEY AZ 85737 54
4 Monday 0:00 1 9435 7/1/2013 0:04:34 50xxxx1x364 SPOKANE WA 99204 211
5 Monday 11:00 1 9436 7/1/2013 11:45:43 951xxxxx20 RIVERSIDE CA 92507 …Run Code Online (Sandbox Code Playgroud) 我正在使用Office 2007.我有一个PowerPoint宏,它使用Excel工作表来执行vLookup.我为vLookup创建了一个公共函数.当正确提供所有值时,它运行良好.现在,我正在尝试捕获无法找到查找值的条件的错误.功能代码是:
Public Function v_lookup _
(lookup_value As Variant, _
table_array As Range, _
col_index_num As Integer, _
range_lookup As Boolean) _
As String
Dim varResult As Variant
Dim objExcelAppVL As Object
Set objExcelAppVL = CreateObject("Excel.Application")
objExcelAppVL.Visible = False
varResult = objExcelAppVL.Application.WorksheetFunction.VLookup _
(lookup_value, _
table_array, _
col_index_num, _
range_lookup)
If IsError(varResult) Then varResult = ""
v_lookup = varResult
objExcelAppVL.Quit
Set objExcelAppVL = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)
我使用以下语句从主宏调用此函数:
varGatherNumber = v_lookup(varDateTime, Lit_Sched_Table_Lookup, 5, vbFalse)
Run Code Online (Sandbox Code Playgroud)
没有错误时,此代码很有效.问题是,当查找失败时,我被抛入Debug指向,
varResult = objExcelAppVL.Application.WorksheetFunction.VLookup
Run Code Online (Sandbox Code Playgroud)
..声明.If IsError(varResult)... …
我正在尝试通过使用 Vlookup 填充列来计算从图纸计划到图纸结果的组件数量,具有:
Count_col: 是工作表中的总列 PlanLast_col: 是工作表中的总列Result(在添加列需求之前)工作表结果
| 材料 | 成分 | 需求W1 | 需求 W2 |
|---|---|---|---|
| ABCD1000 | NC200 | #姓名? | #姓名? |
图纸计划
| 材料 | 需求W1 | 需求 W2 |
|---|---|---|
| ABCD1000 | 1000 | 200 |
For i = 1 To count_col
Cells(1, i + last_col).Value = "=Plan!RC[-2]"
Cells(1, i + last_col).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Plan!C1:C15,i+1,0)"
Next i
Run Code Online (Sandbox Code Playgroud)
但结果是名称错误,我检查了函数的拼写是否正确,不知道如何修复。为什么我的公式中有“@”?
错误详情
=VLOOKUP($A2,Plan!$A:$O,@i+1,0)
Run Code Online (Sandbox Code Playgroud) 我需要知道在这种情况下使用什么代码。
我在 vba 中使用 vlookup 来定位某个记录号。然后我需要知道记录所在的行号。我尝试了以下操作,但收到错误:
nRowSavedRecord = [Vlookup(Cells(nRows, nColRecNmbr),Range("RecordInfo"),2,False).Row]
Run Code Online (Sandbox Code Playgroud)
这给了我一个“ Type Mismatch”错误。
或者
nRowSavedRecord = Application.vlookup(cells(nRows, nColRecNmbr), Range("RecordInfo"),2,False).Rows
Run Code Online (Sandbox Code Playgroud)
这给了我一个“ Object Required”错误。
我确定我缺少的东西很简单。
(nRowSavedRecord是Long)任何人都可以帮忙吗?
谢谢!
我一直无法让这个宏工作。我希望它循环遍历一个范围并突出显示一个单元格(如果它不等于通过该函数的另一个vlookup工作表上的相应值)。但我不断收到此代码的错误:
For Each cell In Worksheets("Sheet1").Range("A2:A1000")
If cell <> Application.WorksheetFunction.VLookup(cell, Worksheets("Sheet2").Range("C3:E128"), 3, 0) Then
cell.Interior.Color = 65535
Else
End If
Next cell
Run Code Online (Sandbox Code Playgroud)
它不断返回
运行时错误“1004”:无法获取 WorksheetFunction 类的 VLookup 属性
非常感谢任何见解!
试图找到答案但找不到 - 我是一个优秀的新手。
我们公司举办了一次网络研讨会,我们收到了与会者的 Excel 电子表格、公司名称等。
我的任务是将与会者列表/电子表格与我们公司的 CRM 数据库进行比较,以查看它们是否已经在系统中。仅按公司名称进行比较。
我从我们在 CRM 系统中拥有的所有公司的 CRM 系统创建了一个导出,作为单列 excel 文件(A 列,公司名称,732 行)。
我需要将 CRM 导出 xls 列 A 与参加者电子表格、公司名称(列 E2-E180)进行比较,并标记 CRM 系统中已存在的每一项。
我想在未找到的公司行的 F 列的与会者表上添加“NO MATCH”或“MATCH”文本。
任何人都可以给出一些建议/公式,这样我就不必一一手动执行此操作。
只是想看看是否可以在表的第二列上使用 VLookup?我无休止地搜索并找不到答案,但我觉得这应该是可能的。
我要补充一点,VBA 不是我的强项。我来自 PHP/MySQL 背景,但在我的工作中没有使用任何一种的奢侈,所以我求助于学习 VBA。
到目前为止我的代码(简化):
Dim userEnviron As String
Dim rowId As Integer
rowId = 0
userEnviron = Environ("Username")
Dim tbladmin As ListObject
Set tbladmin = Sheets("Office Details").ListObjects("officeAdmin")
On Error Resume Next
rowId = Application.VLookup(userEnviron , Range(tbladmin), 4, False)
Run Code Online (Sandbox Code Playgroud)
此代码正在查找用户环境变量并在 tbldadmin 表中查找匹配项。该表的构造与标题类似:
Name UserID Email RowID
Tom Smith Tom the@the.com 2
我试图查找用户 ID 并返回名称,但是目前我已将代码设置为查找名称并返回 RowID(我添加了第二段代码来获取 RowID 并返回名称)
我可以看到很多完成此操作的非 VBA 示例,但是似乎没有一个使用表格。
可以按照描述使用 VLookup 来搜索第二列中的匹配项并从第一列返回一个值吗?如果我能搜索第二列,我会从最后一列返回。
jg Job Group
1 116.0
2 116.0
3 116.0
4 116.0
5 116.0
6 116.0
7 124.0
8 124.0
9 74.0
10 74.0
11 74.0
12 126.0
13 126.0
Run Code Online (Sandbox Code Playgroud)
ul UpperGroup LowerGroup Time
116 116 5
116 124 15
116 74 15
116 126 15
124 116 15
124 124 5
124 74 15
124 126 15
74 116 15
74 124 15
74 74 5
74 126 15
126 116 15
126 124 15
126 74 15
126 …Run Code Online (Sandbox Code Playgroud)