我正在寻找有关如何搜索或查找与特定数据行相关的数据的建议。运行Microsoft Excel 365和SQL Server 2014。在我的情况下,我将作业行存储在SQL表中。第二个表包含多个制造工序,编号从1到多,与每行相关。
职务明细列表
工作编号 | 组件编号 | 组装件部件编号 |
---|---|---|
千零一 | 0 | A1 |
小行星1002 | 0 | 地下一层 |
小行星1002 | 1 | B10 |
小行星1002 | 第二章 | B11 |
1003 | 0 | C1 |
1003 | 1 | 碳十 |
作业操作列表
工作编号 | 组件编号 | OpSeq | 操作代码 | 小时 |
---|---|---|---|---|
千零一 | 0 | 10个 | MF | 第1.2条 |
千零一 | 0 | 二十 | FA | 2.0版 |
千零一 | 0 | 三十 | 油漆 | 0.5分 |
小行星1002 | 0 | 10个 | MF | 二、五 |
小行星1002 | 1 | 10个 | MF | 1.5岁 |
小行星1002 | 1 | 二十 | 制备 | 1.0分 |
小行星1002 | 1 | 三十 | 油漆 | 1.5岁 |
小行星1002 | 第二章 | 10个 | FA | 0.5分 |
小行星1002 | 第二章 | 二十 | 打包 | 0.5分 |
“作业详细信息”行存储在以下位置
Public Type JobStatusDetailLine
JobNum As String
AssemblySeq As Integer
PartNum As String
...
End Type
Public JobStatusDetailArr() As JobStatusDetailLine
工单工序列表
Public Type JobStatusOperations
JobNum As String
AssemblySeq As Integer
OpSeq As Integer
OpCode As String
Hours As Double
...
End Type
Public JobStatusOperationArr() As JobStatusOperations
Excel表格输出
工作编号 | 操作编号 | 操作1 | 操作2 | 操作3 |
---|---|---|---|---|
千零一 | 0 | MF | FA | 油漆 |
小行星1002 | 0 | MF | - - | - - |
小行星1002 | 1 | MF | 制备 | 油漆 |
小行星1002 | 第二章 | FA | 打包 | - - |
当前,我将所有职务行读入JobStatusDetailArr,然后遍历数组,向Excel表中添加新行。在每次迭代中,我查找该作业的操作并将其读入JobStatusOperationArr。然后遍历数组,并将每个操作追加为表中行的一列。根据作业行数和每个作业的操作数(某些作业可能有20 - 30个操作),生成表的速度可能会很慢。
另一种方法可能是将每个作业的所有操作读入一个大数组中,但我不知道一种有效的方法来查找与当前作业行相关的操作,因为我迭代了JobStatusDetailArr来构建每个表行。
查找每个作业行的工序的更好方法是什么?
此外,有条件格式的表操作单元格的基础上的操作小时数和操作是否完成(没有显示在我的操作表)
1条答案
按热度按时间fnvucqvd1#
尽量不要考虑行,尤其是当数据在SQL数据库中时。SQL是基于集合的,不需要使用循环。可以从SQL表中提取数据,其中每行都已使用所需数据构建
我用以下示例数据模拟了SQL表
然后数据提取可能看起来像这样
结果
如果您希望将数据单独保存在工作簿中,那么就像@ cetinbasoz建议的那样,使用数据透视表即可