如何根据另一值返回对应值:取point1与point2最大值匹配成就
实现方法
Excel/Google Sheets 实现
- 将两个表格的内容整理到同一工作表中,确保
Branch列对应(比如第一个表格数据在A:C列,第二个在D:F列,D列为Branch)。 - 新建结果列:
- point_max:在目标单元格(如H2)输入公式
=MAX(C2,F2),下拉填充至所有行,该公式会取对应行point1和point2的最大值。 - achievements:在目标单元格(如G2)输入公式
=IF(C2>F2,B2,E2),下拉填充。如果point1和point2相等,可调整为=IF(C2>=F2,B2,E2)来优先取achievements1的值(或根据需求修改)。
- point_max:在目标单元格(如H2)输入公式
- 最终提取
Branch、achievements、point_max三列即可得到目标表格。
Python Pandas 实现
通过Pandas合并数据并计算目标字段,代码示例如下:
import pandas as pd # 构造输入数据(实际使用时可通过read_excel/read_csv读取文件) df1 = pd.DataFrame({ 'Branch': ['A', 'B', 'C'], 'achievements1': [10, 20, 30], 'point1': [1, 2, 3] }) df2 = pd.DataFrame({ 'Branch': ['A', 'B', 'C'], 'achievements2': [30, 20, 10], 'point2': [3, 2, 1] }) # 按Branch合并两个数据集 merged_data = pd.merge(df1, df2, on='Branch') # 计算point_max merged_data['point_max'] = merged_data[['point1', 'point2']].max(axis=1) # 匹配对应最大值的achievements merged_data['achievements'] = merged_data.apply( lambda row: row['achievements1'] if row['point1'] >= row['point2'] else row['achievements2'], axis=1 ) # 筛选需要的列生成结果 result = merged_data[['Branch', 'achievements', 'point_max']] print(result)
运行后输出的结果即为目标表格。
内容的提问来源于stack exchange,提问作者hoa tran
相关产品推荐
相关产品推荐

