到目前为止,我有一个有两张纸的工作簿。1个工作表表示某列中的日期与相邻列中的其他数据在这里不相关。在表2中,一列中也有一个日期,然后相邻的10个列也有一串数据。我想创建一个新的表(工作表3),当且仅当工作表1中的日期也在工作表2中时,它才会填充,并且只返回工作表2中匹配日期的整行的数据。
例如,在表1中,我在B4中有2019年2月19日。表2也有2/19/2019在它的右边有一堆数据,用于当天的生产。在工作表3中,我想自动返回工作表2中的整行。这可能吗?我有点头疼:)
我尝试过使用COUNTIF和MATCH,但我似乎不能理解如何让它检查整个列的匹配日期。
发布于 2019-04-23 17:30:55
如果我是你,我会:
在'Sheet 3‘的'B’栏中,写下下面的公式...
=IF(COUNTIFS('Sheet 1'!$A:$A,$A1,'Sheet 2'!$A:$A,$A1)>0,VLOOKUP($A1,'Sheet 2'!$A:$Z,#COLUMN NUMBER#,0),"")您需要将#COLUMN NUMBER#替换为您希望从'Sheet 2‘返回的列号。输入“1”(不带引号)将返回列“A”,输入“2”将返回列“B”,依此类推...
在“表3”中,根据需要在任意多的列中重复此操作。
希望这能有所帮助!
发布于 2019-04-23 22:00:05
仅仅使用公式就有点复杂了。Dominic的建议将首先解决这个问题。虽然,我认为它可能有一些问题的评论提到“多行共享相同的日期表2”。我认为公式只会返回符合条件的第一行。
我看到没有VBA标记,但我能想到的唯一答案是一个VBA脚本来绕过这些子句。它还需要"Sheet2“上的帮助器列来标识已经检查了一行,我已经将其设置为测试电子表格中的H列(第8列)。
如果这对你有用,请在下面找到它。
Option Explicit
Sub Worksheet_activate()
Dim b, c, d, x As Integer
Dim a, ab, ac As Worksheet
'Names of the spreadsheets need to be in the speech marks.
Set a = Worksheets("Sheet1") 'Sheet to be compared.
Set ab = Worksheets("Sheet2") 'Sheet to look through and copy from.
Set ac = Worksheets("Sheet3") ' Sheet to be pasted into.
b = a.Cells(a.Rows.Count, "A").End(xlUp).Row 'Bottom date in column A of "Sheet1"
c = ab.Cells(ab.Rows.Count, "A").End(xlUp).Row 'Bottom date in column A of "Sheet2"
d = ac.Cells(ac.Rows.Count, "A").End(xlUp).Row + 1 'Next empty space in column A of "Sheet3"
e = 8 'Number value for the helper column. Set as 8 for column H.
x = 2
Do Until x > c
'Helper column placed in column H.
If ab.Cells(x, e) = "" Then
If WorksheetFunction.CountIf(a.Range("A2:A" & b), ab.Range("A" & x)) >= 1 Then
ab.Rows(x).Copy
ac.Range("A" & d).PasteSpecial xlPasteValuesAndNumberFormats
d = ac.Cells(ac.Rows.Count, "A").End(xlUp).Row + 1
End If
End If
'Text added to helper column
ab.Cells(x, e) = "Yes"
x = x + 1
Loop
Application.CutCopyMode = False
ac.Range("A" & d).Select
End Sub需要编辑以下信息以适应您的电子表格:
此处更改语音标记中3个电子表格的名称,例如a=工作表(“
然后,在粘贴到打开的窗口之前,需要将其添加到工作表中,方法是右键单击要复制数据的工作表,并选择“查看代码”。代码在选项卡打开时运行,因此在某些情况下可能需要切换选项卡以更新它。
https://stackoverflow.com/questions/55799085
复制相似问题