如何通过if else条件判断将列值按规则移动到对应目标列
条件列值转移实现方案
方案1:Excel/WPS表格公式实现
假设你的表格列顺序和示例完全一致:A列存判断值A,B列存判断值B,C列为A1_1、D列为A1_2、E列为A1_3,F列为B1_1、G列为B1_2、H列为B1_3,数据从第2行开始,直接写对应公式下拉即可:
- A组列处理:
- A1_2(D2单元格):
=IF(A2=3,C2,"") - A1_3(E2单元格):
=IF(A2>=4,C2,"") - 若要清空A1_1不符合条件的内容,C2公式改为
=IF(A2<=2,C2,"")(修改原列前建议先备份原数据,公式计算完成后可粘贴为值再覆盖原列)
- A1_2(D2单元格):
- B组列处理(完全复用逻辑):
- B1_2(G2单元格):
=IF(B2=3,F2,"") - B1_3(H2单元格):
=IF(B2>=4,F2,"") - B1_1(F2单元格)改值公式:
=IF(B2<=2,F2,"")
- B1_2(G2单元格):
方案2:Python Pandas代码实现
适合数据量较大、需要批量处理的场景,通用逻辑无需重复编写多列代码:
import pandas as pd # 读入你的数据源,csv文件就用pd.read_csv df = pd.read_excel("你的原始文件路径.xlsx") def value_shift(row, prefix): # prefix传'A'或者'B',适配不同组的列 trigger_val = row[prefix] source_val = row[f"{prefix}1_1"] # 先初始化三个目标列为空 row[f"{prefix}1_1"] = "" row[f"{prefix}1_2"] = "" row[f"{prefix}1_3"] = "" # 按规则赋值 if trigger_val <= 2: row[f"{prefix}1_1"] = source_val elif trigger_val == 3: row[f"{prefix}1_2"] = source_val else: row[f"{prefix}1_3"] = source_val return row # 分别对A、B两组应用规则 df = df.apply(value_shift, axis=1, prefix='A') df = df.apply(value_shift, axis=1, prefix='B') # 导出处理后的结果 df.to_excel("处理完成的文件.xlsx", index=False)
内容的提问来源于stack exchange,提问作者purplecollar
相关产品推荐
相关产品推荐

