You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用Excel函数识别需合并配送的门店?支持多配送场景判断

配送合并判断的Excel函数实现及替代方案

Excel函数实现步骤

假设你的透视表结构为:A列是门店名称,B-H列对应周一至周日的配送量(空单元格代表当日无配送)。

1. 计算门店配送日数量

添加辅助列(如I列),输入公式统计每个门店的配送天数:

=COUNT(B2:H2)

2. 标记符合条件的门店

添加标记列(如J列),用嵌套IF函数覆盖所有场景:

=IF(I2=1,"无需处理",
 IF(I2=2,IF(MIN(B2:H2)/MAX(B2:H2)<0.5,"需合并","无需处理"),
 IF(I2>=3,IF(MIN(B2:H2)/MAX(B2:H2)<0.3,"需标记","无需处理"),"")))
  • 单配送日(I列=1):直接标记「无需处理」
  • 双配送日:若最小配送量/最大配送量 < 50%,标记「需合并」,否则「无需处理」
  • 三配送日及以上:若最小配送量/最大配送量 < 30%,标记「需标记」,否则「无需处理」

3. 提取目标门店列表

  • 若使用Excel 365/2021,用FILTER函数一键提取:
    =FILTER(A:A,J:J<>"无需处理")
    
  • 旧版Excel用INDEX+SMALL组合(下拉填充至出现#NUM!):
    =INDEX(A:A,SMALL(IF(J:J<>"无需处理",ROW(J:J)),ROW(A1)))
    

替代工具(Excel无法满足时)

Python(Pandas库)

适合处理超大规模数据,逻辑扩展性强:

import pandas as pd

# 读取透视表数据(以CSV为例,可替换为Excel读取)
df = pd.read_csv("配送数据.csv")
# 筛选星期几对应的配送量列
delivery_cols = [col for col in df.columns if col not in ["门店"]]

# 计算配送日数、最大/最小配送量
df["配送日数"] = df[delivery_cols].count(axis=1)
df["最大配送量"] = df[delivery_cols].max(axis=1)
df["最小配送量"] = df[delivery_cols].min(axis=1)

# 定义判断逻辑
def judge_merge(row):
    if row["配送日数"] == 1:
        return "无需处理"
    elif row["配送日数"] == 2:
        return "需合并" if (row["最小配送量"] / row["最大配送量"]) < 0.5 else "无需处理"
    else:
        return "需标记" if (row["最小配送量"] / row["最大配送量"]) < 0.3 else "无需处理"

df["标记"] = df.apply(judge_merge, axis=1)
# 提取符合条件的门店
target_stores = df[df["标记"] != "无需处理"]["门店"]
print(target_stores)

Power Query

Excel内置的可视化数据处理工具,无需编写复杂公式,通过拖拽步骤即可实现:

  1. 将透视表导入Power Query
  2. 新增列计算配送日数、最大/最小配送量
  3. 添加条件列实现标记逻辑
  4. 筛选出标记不为「无需处理」的门店,加载回Excel

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 01:03:20