关于Excel表 函数问题

一共有两张表,
表1的B列是公司名称, H列和k列分别是负责人和安全员。需要计算的就是负责人和安全员的总数。表2是f列式公司名称, H列是负责人和安全员两个属性,需要的是在表1的h列通过函数查找出表二和表一公司名称相同的负责人总数,与在表1的k列通过函数找出表2和表一名称相同的安全员总数。

你是不是标签设置错了,excel里用函数做很麻烦,我觉得excel的vba更适合你,python处理这个问题会更容易些


Sub Calculate()
    Dim table1 As Worksheet
    Dim table2 As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    Set table1 = ThisWorkbook.Sheets("表1")
    Set table2 = ThisWorkbook.Sheets("表2")
    
    ' 计算表1中负责人和安全员的总数
    lastRow = table1.Cells(table1.Rows.Count, "B").End(xlUp).Row
    For i = 2 To lastRow
        table1.Cells(i, "H").Value = WorksheetFunction.SumIf(table1.Range("B2:B" & lastRow), table1.Cells(i, "B").Value, table1.Range("H2:H" & lastRow))
        table1.Cells(i, "K").Value = WorksheetFunction.SumIf(table1.Range("B2:B" & lastRow), table1.Cells(i, "B").Value, table1.Range("K2:K" & lastRow))
    Next i
    
    lastRow = table2.Cells(table2.Rows.Count, "F").End(xlUp).Row
    For i = 2 To lastRow
        table2.Cells(i, "H").Value = WorksheetFunction.VLookup(table2.Cells(i, "F").Value, table1.Range("B2:H" & lastRow), 6, False)
        table2.Cells(i, "I").Value = WorksheetFunction.VLookup(table2.Cells(i, "F").Value, table1.Range("B2:K" & lastRow), 11, False)
    Next i
End Sub

【以下回答由 GPT 生成】

对于这个问题,我可以使用VLOOKUP函数来解决。下面是解决方案的步骤:

  1. 首先,在表1的列I中,使用VLOOKUP函数在表2中查找与当前公司名称匹配的负责人数量。VLOOKUP函数的语法如下: =VLOOKUP(lookup_value, table_array, col_index, [range_lookup]) 其中,lookup_value是要查找的值(即当前公司名称),table_array是要查找的表(即表2的公司名称列和负责人列),col_index是要返回的列的索引(负责人列的索引为2),range_lookup为可选参数,表示是否进行近似匹配,我们设置为False以确保进行精确匹配。具体的公式如下: =VLOOKUP(B2, Table2!$F$2:$H$100, 2, FALSE) 将这个公式填充到表1的列I中,即可求得负责人数量。

  2. 然后,在表1的列J中,使用VLOOKUP函数在表2中查找与当前公司名称匹配的安全员数量。同样使用VLOOKUP函数,公式如下: =VLOOKUP(B2, Table2!$F$2:$H$100, 3, FALSE) 将这个公式填充到表1的列J中,即可求得安全员数量。

  3. 最后,将表1的列H和列K相加,得到负责人和安全员的总数。使用公式如下: =I2+J2 将这个公式填充到表1的列L中,即可求得总数。

注意:上述解决方案假设表2的数据范围为$F$2:$H$100,根据实际情况修改范围。

希望以上解决方案能够对你有帮助。如果还有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^