excel - 搜索唯一编号并将其特定数据复制到另一张工作表
问题描述
我有一本包含三张纸的工作簿。
在名为“Grade Wise”的第二张表上,我有原始数据。
在名为“Sheet1”的第三张工作表上,我想要一个按钮,它将数据从第二张工作表复制到第三张工作表。
在第二张纸上,在 A 列和 B 列中重复数据。这些农民提供了不同重量的不同等级。
我想将每个农民的唯一农民编号和名称(A 列和 B 列)数据复制到第三张表(如附图所示)。
在第二张表中,C 列有不同的等级,其起始字母为 X、C、M、B,第三个字母也包括 A、F、C。
挑战 1:我想将所有 X 的总和复制到 X(在第三张表 D 列上)、所有 C 到 C 的总和(在第三张表 E 列上)、所有 M 到 M 的总和(在第三张表 F 列上)和总和每个唯一编号的所有 B 到 B (在第 3 页 G 列上) - 如附图所示。
(VBA 代码是为这个挑战编写的并且正在工作,但我想添加以下操作)
挑战 2:它还应该寻找第三个字母(A、F、C)并将它们的所有 A 的总和复制到 A(在第三张表 N 列上)、所有 F 到 F 的总和(在第三张表列 O)、总和所有 C 到 C(在第 3 页 P 列),如附图所示。
挑战 1 代码是:
Sub test2()
Dim c As Object ' Dictionary
Dim Ws As Worksheet
Dim toWs As Worksheet
Dim vDB, vNum(), vR()
Dim k As Long, i As Long
Dim x As Long, y As Long
Dim s As String
Set Ws = Sheets(2)
Set toWs = Sheets(3)
Set c = CreateObject("Scripting.Dictionary")
vDB = Ws.Range("a1").CurrentRegion
For i = 2 To UBound(vDB, 1)
If Not c.Exists(vDB(i, 1)) Then 'Farmer NO.
k = k + 1
c.Add vDB(i, 1), k 'Farmer NO.
ReDim Preserve vNum(1 To 3, 1 To k)
vNum(1, k) = k
vNum(2, k) = vDB(i, 1)
vNum(3, k) = vDB(i, 2)
End If
Next i
ReDim vR(1 To k, 1 To 10)
For i = 2 To UBound(vDB, 1)
s = Left(vDB(i, 3), 1)
y = c.Item(vDB(i, 1)) 'Farmer no
x = getIndex(s)
vR(y, x) = vR(y, x) + vDB(i, 4) 'Bales
vR(y, 5) = vR(y, 5) + vDB(i, 4) 'Sum of Bales
vR(y, x + 5) = vR(y, x + 5) + vDB(i, 5) 'New Weight
vR(y, 10) = vR(y, 10) + vDB(i, 5) 'Sum of Weight
Next i
With toWs
.UsedRange.Offset(2).Clear
.Range("a3").Resize(k, 3) = WorksheetFunction.Transpose(vNum)
.Range("d3").Resize(k, 10) = vR
.UsedRange.Borders.LineStyle = xlContinuous
End With
End Sub
Function getIndex(v As String)
Dim i As Integer
Select Case v
Case "X"
i = 1
Case "C"
i = 2
Case "M"
i = 3
Case "B"
i = 4
End Select
getIndex = i
End Function
解决方案
使用 Vlookup 填充前两列 Farmer No.(使用高级过滤器从数据中选择唯一值)和 Farmer Name 后,一个简单的公式就足够了。然后,您只需要一个公式=SUMIFS($C$2:$C$18,$A$2:$A$18,$E2,$B$2:$B$18,F$1&"*")
,然后您就可以将其复制下来。
见图片。
如果您担心为新客户的新条目自动执行此操作,您可以简单地在包含 FarmerNo 的同一工作簿中维护一个主表。和名称。在输入数据之前,您只需要检查农民是否在主人中。您可以使用重复名称的简单条件格式来做到这一点。如果这样做,您甚至可以取消数据中的名称列或 Sheet3 中的农民编号 col
推荐阅读
- google-slides - 如何将全屏图像嵌入谷歌幻灯片
- fullcalendar - cakephp 和完整的日历集成
- python-3.x - PyX中文本的中心对齐
- flutter - 关于颤振的问题,我不知道如何解决
- botframework - 我的 global.asax.cs 文件中是否缺少用于连接到 Azure Cosmos 的依赖项?
- python - 打破嵌套的while True循环
- gremlin - Gremlin 添加关系功能出现异常
- python-2.7 - 访问被拒绝:项目 PROJ:用户 X@gmail.com 在项目中没有权限-pycharm 使用错误的电子邮件
- wordpress - 我的 wordpress 网站未加载并显示错误
- java - 将 EditText/String 转换为 Integer 时,我的应用程序崩溃