记第一次使用Excel进行计算

早就知道Excel强大, 可是始终也没用过什么高级功能. 之前至多是用它来看看SharePoint的ULS日志, 因为Filter功能实在是非常好用.

今天, 在看dump的时候遇到了一个问题, 使用!dumpheap –stat, 在Fragmented blocks larger than 0.5 MB的部分, 看到特别多条记录, 于是就想统计一下这些对象一共占用了多少内存.

 

问题描述

=================

简化来说, 我从WinDBG的输出中拷贝了类似如下的文字:

0d6998e0    5.2MB         0dbc3218 System.String
111a0598    3.8MB         11577fa8 System.String
0d6998e0    5.2MB         0dbc3218 System.String
111a0598    3.8MB         11577fa8 System.String
0d6998e0    5.2MB         0dbc3218 System.String
111a0598    3.8MB         11577fa8 System.String
0d6998e0    5.2MB         0dbc3218 System.String
111a0598    3.8MB         11577fa8 System.String
0d6998e0    5.2MB         0dbc3218 System.String
111a0598    3.8MB         11577fa8 System.String
0d6998e0    5.2MB         0dbc3218 System.String
111a0598    3.8MB         11577fa8 System.String
0d6998e0    5.2MB         0dbc3218 System.String

我如何才能比较方便地获取第二列的所有的数字之和?

 

解决方案

=================

1. 首先将该段文字存入一个文本文档.

2. 使用Excel的Data Import From Text功能.

image

3. 得到这样的excel文件

image

4. 如果B列全是数字就OK了, 可惜有MB挡路. 先去进行了Google找到了一篇文章Extracting numbers from alphanumeric strings. 看了好久, 终于明白了这篇文章中的技巧. 可是该技巧却不适合我这个应用. 因为小数点的问题并没有被考虑到, 所以该解决方案只适用于数字连续的整数.

5. 本来我是不会使用Excel公式的, 看了上面的文章, 就明白了一点, 自己摸索一下, 就解决了我的问题. 其实我面临的问题更加简单, 只需要扣掉后面的MB, 然后再累加即可.

6. 先使用我们需要得到的是B列的一个子串, 该子串从母串的首字母开始, 长度是母串的长度减去2("MB"的长度). 得到了子串后, 需要让其乘1, 以转型为数字. 公式如下:

=1*MID(B1,1,LEN(B1)-2)

7. 接下来使用AutoFill来填满结果列的全部.

image

8. 得到了数字, 剩下的事情就简单罗, 一个SUM搞定.

image

 

 

参考资料

Extracting numbers from alphanumeric strings

http://office.microsoft.com/en-us/excel-help/extracting-numbers-from-alphanumeric-strings-HA001154901.aspx

posted on   中道学友  阅读(566)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2010-03-28 WebDAV上传比其他的方式都要慢?
2010-03-28 Web Proxy Autodiscovery Protocol
2010-03-28 把SQL2000的数据库迁移至SQL2005

导航

< 2011年3月 >
27 28 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示