一共有两张表,
表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的列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中,即可求得负责人数量。
然后,在表1的列J中,使用VLOOKUP函数在表2中查找与当前公司名称匹配的安全员数量。同样使用VLOOKUP函数,公式如下: =VLOOKUP(B2, Table2!$F$2:$H$100, 3, FALSE)
将这个公式填充到表1的列J中,即可求得安全员数量。
最后,将表1的列H和列K相加,得到负责人和安全员的总数。使用公式如下: =I2+J2
将这个公式填充到表1的列L中,即可求得总数。
注意:上述解决方案假设表2的数据范围为$F$2:$H$100,根据实际情况修改范围。
希望以上解决方案能够对你有帮助。如果还有其他问题,请随时提问。
【相关推荐】