如何快速生成唯一设备与Tariff的全组合两列数据列表?
嘿,这个需求我经常碰到,给你几个不同场景下的快捷实现方案,挑你顺手的用就行:
方法1:Excel/Google Sheets 公式法(零编程,适合小白)
假设你的设备名称在A2:A10(比如A2是「设备1」,A3是「设备2」……),4种资费放在D2:D5(D2=Tariff 1,D3=Tariff 2,以此类推):
- 生成设备列(比如从B2开始):输入公式
=INDEX($A$2:$A$10,INT((ROW()-2)/4)+1),然后下拉到所有组合完成。这个公式的逻辑是每4行重复一次设备名称。 - 生成资费列(比如从C2开始):输入公式
=INDEX($D$2:$D$5,MOD(ROW()-2,4)+1),同样下拉。这个公式会循环遍历4种资费。
如果用的是Excel 365/Google Sheets,还有更省心的一键生成方式,直接在任意空白单元格输入:
=LET( devices, A2:A10, tariffs, D2:D5, total_rows, ROWS(devices)*ROWS(tariffs), device_list, INDEX(devices, ROUNDUP(SEQUENCE(total_rows)/ROWS(tariffs), 0)), tariff_list, INDEX(tariffs, MOD(SEQUENCE(total_rows)-1, ROWS(tariffs))+1), HSTACK(device_list, tariff_list) )
回车后直接生成完整的两列组合数据,不用手动下拉!
方法2:Excel Power Query 可视化操作(适合大量数据)
如果你的设备数量很多,用公式下拉容易卡,试试Power Query:
- 选中设备列表,点击「数据」选项卡 → 「从表格/区域」导入Power Query;
- 同样把资费列表也导入Power Query;
- 回到设备的查询表,添加一个自定义列,公式写
=#"资费表"(替换成你的资费表名称); - 点击自定义列右侧的展开按钮,选择展开所有数据,瞬间就得到所有设备+资费的组合;
- 最后点击「关闭并上载」,把结果导回Excel即可。
方法3:Python 代码法(适合自动化批量处理)
如果需要经常做这类组合操作,或者要和其他自动化流程结合,用Python的pandas库两行搞定:
import pandas as pd # 替换成你的设备和资费列表 devices = ["设备1", "设备2", "设备3", "设备4"] tariffs = ["Tariff 1", "Tariff 2", "Tariff 3", "Tariff 4"] # 生成笛卡尔积组合 result = pd.MultiIndex.from_product([devices, tariffs], names=["设备名称", "Tariff"]).reset_index() # 可以导出成Excel文件 result.to_excel("设备资费组合.xlsx", index=False)
运行后直接得到带两列的Excel文件,完美适配需求。
内容的提问来源于stack exchange,提问作者isic5
相关产品推荐
相关产品推荐

