我在excel中有两个不同的工作表,在所有第1行单元格中都有相同的标题(a1 = id,b1 = name,c1 = price).我的问题是,有没有办法将数据(如名称)从1个工作表导入到另一个工作表中"id"相同的另一个工作表中.
eg.
sheet 1 sheet2
ID Name Price ID Name Price
xyz Bag 20 abc 15
abc jacket 15 xyz 20
Run Code Online (Sandbox Code Playgroud)
那么有没有办法在表格1中将"名称"添加到表2中的"名称"中,其中表1中的"ID"=表2中的"ID"?
没有应对和粘贴当然谢谢
我有以下脚本,我收到VLOOKUP错误:
Dim DataRange, LookupRange As Range
Dim Data, Test As Variant
Set DataRange = Sheets("sheet").Range("A1:K12000")
Set LookupRange = sheets("sheet2").Range("A1:C50")
Data = DataRange.Value
For i = LBound(Data, 1) To UBound(Data,1)
ReDim Preserve Test(1 To 3, 1 To i)
test(1, i) = Application.WorksheetFunction.VLookup(Data(i, 4), LookupRange, 3, 0)
'Other stuff works fine
Next i
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到错误说明:
"Unable to get the VLookup property of the WorksheetFunction class"
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为所有变量和范围在监视模式下都很好.查询也是字母...任何想法发生了什么?
我的代码循环遍历表中的单元格值,并查看是否存在具有相同名称的文档.如果它确实存在,它将执行一个操作来打开这些文件并导入数据.
If bProcess Then
FileCounter = 0
For Each folderIDX In PrimaryMergeFiles
'If folderIDX.Name = Worksheets("Table").Range("A1:A13") Then
Dim vTest As Variant
vTest = Application.WorksheetFunction.VLookup(folderIDX.Name, Worksheets("Table").Range("A1:B13"), 2, False)
'Creating Merge File
If Not IsError(vTest) Then
FileCounter = FileCounter + 1
strStatus = "Creating file " & FileCounter & " of " & PrimaryMergeFiles.Count & ": " & folderIDX.Name
Application.StatusBar = strStatus
CreateMergedFile wdApp, sPrimaryMergeDirectory, folderIDX.Name, sSourceFile, ClientCount, _
sClientSubDirectory, bClearHighlightings(ClientCount), bHome
'ElseIf IsError(vTest) Then
Else
End Sub
End If
Next
End …Run Code Online (Sandbox Code Playgroud) 我需要将几百个3个字母的国家代码(ISO 3166-1 alpha-3)转换为MS EXCEL中的完整国家/地区名称.
我想这可以通过一个VLOOKUP公式完成,有没有人有它的方便?谢谢
"查找值所在的范围.请记住,查找值应始终位于VLOOKUP正常工作范围的第一列中.例如,如果查找值位于单元格C2中,则范围应以C开头. "
但有时我希望能够进行双向查找.即,使用A列中的键进行查找以同时获取B列中的值,并在其他公式中查找B中的值以获取A中的值.
我知道的唯一方法是添加一个反映A的列C,然后使用AB进行第一次查找,使用BC进行第二次查找.但必须有一些更清洁的解决方案.是否有某种方法可以强制VLOOKUP使用除第一列之外的其他列来查找键值,或者是否存在允许等效的不同函数?
作为旁注,我问的是Excel,但实际上我使用的是LibreOffice.据推测,这些功能应该是相同的,但是在LibreOffice中也可以使用的答案更可取.
请帮忙.有数据帧:
ArtNo Description Price
AAA Lore Ipsum 10
BBB Lore Ipsum 9
CCC Lore Ipsum 8
DDD AAA Lore Ipsum 0
EEE BBB Lore Ipsum 0
FFF CCC Lore Ipsum 0
GGG ZZZ Lore Ipsum 0
HHH AAA Lore Ipsum 0
Run Code Online (Sandbox Code Playgroud)
我需要通过ArtNo列中文章的"描述"列中的文章添加一个乘以价格而不是零的列.如果没有匹配(在ArtNo列和空间描述中的第一个单词之间),请将"倍增列"应用于同一行中"价格"列中的相同数字:
ArtNo Description Price Price (multiplied) ???
AAA Lore Ipsum 10 10
BBB Lore Ipsum 9 9
CCC Lore Ipsum 8 8
DDD AAA Lore Ipsum 0 10
EEE BBB Lore Ipsum 0 9
FFF CCC Lore Ipsum 0 …Run Code Online (Sandbox Code Playgroud) 我有两列数据需要相互比较 - 列A和列B.
A栏:
Steve
Jane
Mary
Peter
Ed
Scott
Ted
Run Code Online (Sandbox Code Playgroud)
B栏:
Peter
Scott
David
Nancy
Run Code Online (Sandbox Code Playgroud)
我需要找出B列中的哪些值也在A列中.
上述样本数据的预期输出:
Peter TRUE
Scott TRUE
David FALSE
Nancy FALSE
Run Code Online (Sandbox Code Playgroud)
感谢你的帮助!
所有单元格都格式化为日期,当一个单元格为空白时,我希望它返回一个明显为空白的单元格而不是1/0/1900。这是我到目前为止的内容,但是它仍然返回日期而不是空白:
= IF(ISNA(VLOOKUP($B$4,TrainingDatabase!$A$3:$S$14,3,0))= 0,"", (VLOOKUP($B$4,TrainingDatabase!$A$3:$S$14,3,0)))
Run Code Online (Sandbox Code Playgroud) 关于使用合并在熊猫中复制Excel的Index-Match功能的文章有好几篇,但是合并似乎并没有涵盖Excel的Index-Match的最基本功能之一。
我有一个可行的解决方法,但是我敢肯定有更好的方法。当然,我可能会缺少有关pandas.merge的明显信息。
假设我们有以下两个表格
t1
numbers letters
0 1623 a
1 3266 b
2 3672 c
t2
letters target
0 a ddd
1 a ddd
2 a ddd
3 b eee
4 b eee
5 b eee
6 c fff
7 c fff
8 c fff
Run Code Online (Sandbox Code Playgroud)
并且我们想向t1添加一列,该列根据t2.letters中的值简单地映射t2.target中的值以产生以下结果:
numbers letters target
0 1623 a ddd
1 3266 b eee
2 3672 c fff
Run Code Online (Sandbox Code Playgroud)
使用pandas.merge,似乎t2.target中的所有重复值都必须显示在结果DataFrame中,如下所示:
numbers letters target
0 1623 a ddd
1 1623 a ddd
2 1623 a ddd
3 3266 b …Run Code Online (Sandbox Code Playgroud) 我目前有一个With语句,它将一个单元格的值与一系列单元格进行比较,InStr()然后返回true,然后标记cell.Value为" Yes"如果不是那么"No".
这是场景.说我正在检查它的值,A2这是111.我正在与111一系列其他单元格进行比较,并且应该匹配的字段是111, 222, 333包含111在其中的字段.我下面的第一组代码适用于此但速度很慢.我希望有一个更快的方式,我认为我可以用公式做到这一点,但使用True而不是False在vlookup中使用不像我想的那样.
这是代码:
With inv_twcg_ws
For Each cell In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
For Each cellx In report_rng
If InStr(cellx.Value, cell.Value) Then
cell.Offset(0, 6).Value = "Yes"
Exit For
End If
cell.Offset(0, 6).Value = "No"
Next cellx
Next cell
End With
Run Code Online (Sandbox Code Playgroud)
问题是它有点慢.我的应用程序需要大约5分钟才能运行.我希望能结合InStr()与Application.Vlookup()以某种方式,试图加快配方.这可能吗?
这是我目前的Vlookup,但使用True不接缝来满足我的需求......
With inv_twcg_ws
For Each cell In .Range("G2:G" & …Run Code Online (Sandbox Code Playgroud) vlookup ×10
excel ×9
vba ×3
pandas ×2
python ×2
date ×1
formatting ×1
formula ×1
if-statement ×1
libreoffice ×1
loops ×1
merge ×1
spreadsheet ×1
sql ×1
sql-server ×1