e - 我可以在一列中对值进行分组并在 emeditor 中汇总它们的总数吗?
问题描述
请问我如何对列进行分组并在Emeditor中总结它们的相应值?类似于 Power Query 或 PowerBi 中的“分组依据”。例如:
文件
NAME COST
John 5
Mike 3
Dan 5
John 2
Dan 8
John 5
预期结果
NAME COST
John 12
Mike 3
Dan 13
在这种情况下,我在文件的“名称列”下获得每个值的总成本
解决方案
假设两列由制表符分隔,您可以使用 EmEditor 对第一列进行排序,合并行,然后使用带有 JavaScript 的正则表达式替换第二列。如果您想快速完成,可以跳到使用宏部分。
打开你的文件。
单击CSV/排序工具栏上的Tab按钮以切换到 Tab 分隔的 CSV 模式。
单击CSV/排序工具栏上的标题按钮,然后选择标题 1。
选择第一列,然后单击CSV/排序工具栏上的从A 到 Z排序按钮对第一列进行排序。
右键单击标题的第 1 列(或选择编辑菜单上的CSV子菜单),然后选择组合行。
确保检查重复
1: COST
的列中的复选框已设置,并且要组合的列中的复选框已设置。输入要插入的字符串文本框。单击确定。2: NAME
+
- 选择第二列,按Ctrl+H调出替换对话框,输入
[\d\+]+\d
到查找文本框,然后\J eval("\0");
到替换为文本框,设置在仅选择和正则表达式选项中,然后单击全部替换。
使用宏
如果要使用宏,可以在打开文件后运行以下宏。
editor.ExecuteCommandByID(22529); // TSV
editor.ExecuteCommandByID(3894); // Heading 1
document.selection.StartOfDocument(false);
document.Sort("1>A+",eeSortBinaryComparison,"");
document.CombineLines("1","2","+","",0,"");
document.selection.SetActivePoint( eePosCellLogical, 2, 1 );
editor.ExecuteCommandByID(4461); // Select Column
document.selection.Replace("[\\d\\+]+\\d","\\J eval(\"\\0\");",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0);
document.selection.Collapse();
要运行它,请将此代码另存为,例如,GroupCol.jsee
然后从宏菜单中的选择...中选择此文件。最后,打开要转换的文件,并在要转换的文件处于活动状态时选择宏菜单中的运行 GroupCol.jsee 。
推荐阅读
- excel - 对象全局失败错误的方法联合
- asp.net - dotnet 发布命令不适用于 aws buildspecs.yml 文件中的 asp dotnet 项目
- node.js - 我需要多个条件的 mongodb 组管道
- validation - 在将视图数据设置到模型之前验证视图数据
- node.js - AWS S3 - 使用 pre-signurl 将对象从一个存储桶复制到另一个存储桶
- html - 如何使用 Twig 打印格式化的 html?
- r - 如何在保留名称的同时将多个文件导入列表?
- python - 如何在 pandas 中使用 apply 对我的代码进行分类?
- payment-gateway - Python 后端中的 Paytm 支付网关 UPI 集成
- reactjs - 如何在 reactjs 中添加 Google Play 商店按钮