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

如何将列表型分组原始数据转表格?求Batch/PowerShell/Excel方案

分组数据转表格的三种实现方法

1. PowerShell 方法

直接读取文本文件,按空行拆分用户组,提取字段值后输出表格:

# 读取目标文本文件内容,按空行分割成用户组(过滤空行)
$users = (Get-Content -Path "your_input_file.txt" -Raw) -split "`n`n" | Where-Object { $_ -notmatch '^\s*$' }

# 定义表头和结果数组
$headers = @("Title", "Name", "Company")
$result = @()

foreach ($user in $users) {
    # 拆分每组的行,提取冒号后的值并去除多余空格
    $fields = $user -split "`n" | ForEach-Object {
        ($_ -split ": ", 2)[1].Trim()
    }
    # 创建自定义对象并加入结果集
    $result += [PSCustomObject]@{
        Title   = $fields[0]
        Name    = $fields[1]
        Company = $fields[2]
    }
}

# 在控制台输出格式化表格
$result | Format-Table -AutoSize
# 可选:导出为CSV文件,方便Excel打开
$result | Export-Csv -Path "output.csv" -NoTypeInformation

说明:将your_input_file.txt替换为实际文件路径,执行后即可看到格式化表格,导出的CSV文件可直接用Excel打开编辑。

2. Batch 脚本方法

通过命令行循环读取每行内容,提取字段并拼接成表格行:

@echo off
setlocal enabledelayedexpansion

:: 配置输入输出文件路径
set "input=your_input_file.txt"
set "output=output_table.txt"

:: 写入表头(手动调整空格保证对齐)
echo Title     Name      Company > "%output%"

:: 初始化字段变量
set "title="
set "name="
set "company="

:: 逐行读取输入文件
for /f "usebackq delims=" %%a in ("%input%") do (
    set "line=%%a"
    :: 判断行首字段,提取对应值
    if "!line:~0,6!"=="Title:" (
        set "title=!line:~7!"
    ) else if "!line:~0,5!"=="Name:" (
        set "name=!line:~6!"
    ) else if "!line:~0,8!"=="Company:" (
        set "company=!line:~9!"
        :: 字段齐全时写入表格行
        echo !title!       !name!      !company! >> "%output%"
        :: 重置变量准备下一组数据
        set "title="
        set "name="
        set "company="
    )
)

echo 转换完成,结果已保存到 %output%
pause

说明:替换your_input_file.txt为输入文件路径,执行后生成的output_table.txt即为对齐后的表格。若字段长度差异较大,可手动调整表头和行中的空格数优化对齐效果。

3. Excel 操作方法

手动分步操作(无需复杂公式)

  • 第一步:将所有原始数据复制粘贴到Excel的A列(包含空行)
  • 第二步:选中A列,点击「数据」选项卡 → 「分列」,选择「分隔符号」,勾选「其他」并输入:,点击完成。此时字段名和值会分成A、B两列
  • 第三步:在C1单元格输入=IF(A1="Title",ROW(),""),下拉填充至所有行。该公式会为每个用户组的Title行标记行号
  • 第四步:选中C列,按Ctrl+G打开定位窗口,点击「定位条件」→ 「空值」,输入=C1(引用上方非空单元格),按Ctrl+Enter填充所有空值,让同一组的行拥有相同组号
  • 第五步:选中所有数据,点击「数据」选项卡 → 「排序」,主要关键字选C列(组号),次要关键字选A列(字段名),排序后每组的字段会按顺序排列
  • 第六步:将B列中对应Title、Name、Company的值分别复制到D、E、F列,添加表头后删除多余列即可得到目标表格

Power Query 高效方法

  • 第一步:点击「数据」选项卡 → 「获取数据」→ 「从文件」→ 「从文本/CSV」,导入你的原始文本文件
  • 第二步:在Power Query编辑器中,点击「主页」→ 「拆分列」→ 「按分隔符」,选择:,按最左侧的分隔符拆分
  • 第三步:点击「转换」→ 「透视列」,值列选择「值」,列名选择「属性」,生成表格后点击「关闭并上载」即可将表格导入Excel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:01:14