求助 Excel 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
moioooo
V2EX    程序员

求助 Excel 问题

  •  
  •   moioooo 2022-08-21 20:21:27 +08:00 1833 次点击
    这是一个创建于 1229 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有 3 列数据
    文本 A 201001 202203
    文本 B 201211 201809
    想要按年拆分成多行
    结果如下
    文本 A 201001 201012
    文本 A 201101 201112
    文本 A 201201 201212
    ...
    文本 A 202201 202203
    文本 B ...

    请问 Excel 现有功能,能实现么。或者 VBA ?
    7 条回复    2022-08-22 10:05:13 +08:00
    horseInBlack
        1
    horseInBlack  
       2022-08-21 20:29:29 +08:00
    好像 Excel 本身的排序就支持多个关键词排序,你可以搜索下 Excel 多列排序

    程序来实现的话,你用的语言有什么操作 Excel 的类库我不清楚,但是转成 csv 以后应该是比较简单规整的数据,了解数组操作就能做了
    zx4824
        2
    zx4824  
       2022-08-21 22:30:31 +08:00   1
    文本 A 201001 [201012]

    这个 201012 的数据都不在原数据表里,也不说明逻辑

    拆分逻辑都不写清楚,这种思维水平还是别上论坛问了,去淘宝付费找人做不好吗
    moioooo
        3
    moioooo  
    OP
       2022-08-21 22:37:56 +08:00
    @zx4824 #2 已经说明了呀。按年拆分。
    所以才出现 201012 这个数据呀。一年的最后一个月不是 12 月么?
    wxf666
        4
    wxf666  
       2022-08-21 23:09:21 +08:00
    还是用 vba 快些吧*(反正我想不出来有啥公式能搞定)*

    VB 伪代码*(我不熟悉 Excel 的对象)*:

    Dim 输入行 As Integer, 输出行 As Integer, 年 As Long
    Dim 起始年月 As Long, 终止年月 As Long, 起始年 As Integer, 终止年 As Integer

    输入行 = 1
    输出行 = 1

    While Len(单元格("A" & 输入行))
      起始年月 = CLng(单元格("B" & 输入行))
      终止年月 = CLng(单元格("C" & 输入行))
      起始年 = 起始年月 \ 100
      终止年 = 终止年月 \ 100
       For 年 = 起始年 To 终止年
        单元格("A" & 输出行) = 单元格("A" & 输入行)
        单元格("B" & 输出行) = CStr(年 * 100 + IIf(年 > 起始年, 1, 起始年月 Mod 100))
        单元格("C" & 输出行) = CStr(年 * 100 + IIf(年 < 终止年, 12, 终止年月 Mod 100))
        输出行 = 输出行 + 1
       Next
    Wend
    wxf666
        5
    wxf666  
       2022-08-21 23:10:15 +08:00
    少打一行:

    ……
       Next
      输入行 = 输入行 + 1
    Wend
    wxf666
        6
    wxf666  
       
    噢,输出列不该也是 A B C ,应该设为 D E F 之类的:

        单元格("D" & 输出行) = ……
        单元格("E" & 输出行) = ……
        单元格("F" & 输出行) = ……
    jingben1
        7
    jingben1  
       2022-08-22 10:05:13 +08:00
    这种问题问搜索引擎呀!搜索关键词:excel 分列
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2305 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:11 PVG 10:11 LAX 18:11 JFK 21:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86