Skip to main content

Posts

Showing posts from May, 2016

用 Excel 函数实现数据数值的排序

Excel 数值排序多使用工具栏数据排序功能,或者对数据透视表(Pivot Table)结果排序,两者均需要选中数据区域(range)并通过鼠标键完成。如果想通过 Excel 函数组合实现数值按增序排列可以按本文实现。

思路
人工建立不重复数组序号使用 Large 函数得到数据列数值使用 Match 函数找到数组的行号使用 Index 函数找到数据列该行号的值或值引用
示范 Excel 数据
BCDEF科室诊察量序号诊察量排序科室排序性病科461114611性病科神经外科394923949神经外科口腔科318833349妇科妇科334943301国际诊疗中心家庭医学科319153191家庭医学科国际诊疗中心330163188口腔科中医科189471894中医科
函数
根据数值递减排序结果,在源数据区域中找到行号:

=INDEX($B$18:$B$24,MATCH(G18,$C$18:$C$24,0))
使用 Index 函数找到数据列该行号的值或值引用:

=LARGE($C$18:$C$24,$E18)
此方法的缺点,不能处理同值数据的排序。目前看来只能通过数据透视表(Pivot Table)实现递增或递减排序。

CHEO 东安大略省儿童医院募捐活动

某宝参加了社区募捐活动,到住户门口叩门取得居民支持并捐款。在网上用关键词组合 Google 了某宝说的这个 CHEO ,实为也就是Children Hospital of East Ontario东安大略省儿童医院。附加搜索了一下这家医院,职工还做了不少流行病学调查,调查引起多过地媒体的报道。


学校将学生每四人分为一组,负责一条街,每两人负责一侧民宅。上门敲门说:

我是**学校的学生,你有兴趣为 CHEO 捐款吗?
根据某宝的讲法,那天她募捐得到了$20,另一组也不错,募捐结果$25。有居民家中没有零钱,甚至一出手就是 $20 或 $10 的整钞。全校那天的总结果为 1.9万元。

这种上门呼吁募捐的做法为将来从事市场销售引发了基本兴趣,估计至少帮助处理社交焦虑、掌握谈话技巧。比起莲花山小童拿报纸向游客兜售,家长在后保障后勤饮料和零食,卖不完的报纸有人迅速收回,某宝的课程实践与现实接连。

Excel VBA 小作品:筛选财务日结报表并输出至指定工作表(第一版)

社区健康服务信息系统财务日结报表含医疗收入诊察费、中草药费等关键数据,可分析社康服务中心诊察人次变动、中医药服务能力等。各社康中心财务报表行数不同,经典的建立 Vlookup 命令获取字段名和对应数值效率低,社康中心数量越多,Excel 分析与处理成本越大。

这个 Excel VBA 小作品实现以下自动化处理:

使用 ActiveCell 赋值文本,按筛选目的获取财务项目字段名,将用友社区健康服务信息系统字段名配套为财务通用字段名。使用 For 遍历循环得到财务报表的行数,选择财务报表数据范围。通过 VLookup 在财务日结报表数据范围获取相应数值,写入到财务通用字段名的输出区域。使用 Selection.Copy 复制筛选结果,为汇总为其他数据工作表做准备。
这段 VBA 代码为:

Sub 筛选财务日结报表() ' '从用友财务日结报表筛选研究对象字段名,在现有工作表输出筛选结果 ' '命名筛选输出标题 Range("I1").Select ActiveCell.FormulaR1C1 = "用友字段名" Range("J1").Select ActiveCell.FormulaR1C1 = "通用字段名" '筛选用友字段名,配套显示通用字段名 Range("I2").Select ActiveCell.FormulaR1C1 = "总费用" Range("J2").Select ActiveCell.FormulaR1C1 = "医疗收入" Range("I3").Select ActiveCell.FormulaR1C1 = "诊察费" Range("J3").Select ActiveCell.FormulaR1C1 = "诊察费" Range("I4").Select ActiveCell.FormulaR1C1 = "西药费" Range("J4").Select ActiveCell.FormulaR1C1 = &…

如何获取 Excel Sheet 最后一列数据的列号

Excel 遍历工作表最后一行非空值数据的行号在《Excel 2010 VBA 入门与提高》有示范,但依样画葫芦却得不到 VBA 获取最后一列非空值数据的列号。

Google 一下,在 Stackoverflow 得到了启发:

Sub 获取最后数据的列数() '变量声明 Dim ColN As Long '从工作表 Sheet1 第3行(标题)最后数据为非空值的列向左递减遍历 ColN = Sheet1.Cells(3, Columns.Count).End(xlToLeft).Column '输出列号 Debug.Print "最后数据为非空值的列号为:" & ColN End Sub
但是 End(Direction) 属性适用于可见单元格,一旦有数据列隐藏,End(Direction) 不会得到正确的结果。 VBA 获取最后一列非空值数据的列号考虑使用 For 循环:

Sub 获取最后数据的列数() '变量声明 Dim ColN As Long '利用For循环从最后一列非空值列递减遍历 For ColN = Columns.Count To 1 Step -1 If Cells(3, ColN).Value <> "" Then Debug.Print "最后数据为非空值的列号为:" & ColN Exit For End If Next ColN End Sub

医院名称的英语翻译

医院对外合作需要外语翻译医院名称,至少用英语表达,很难想象一个国际诊疗中心使用拼音去考起国际访客。这里举例一些英文报纸或权威站点出现过的医院名称英语翻译结果。

武警北京市总队第二医院:The Second Hospital of the Beijing Armed Police Corps

广医一院:The First Affiliated Hospital of Guangzhou Medical University

香港大学深圳医院:Hong Kong University - Shenzhen Hospital

医科大学管辖的医院用两个相同的介词 Of 来翻译有没有问题?例如 xx hospital of xx medical school 这样的翻译结构。

Quora 上这样评价了英语一句话里出现多个相同的介词只会让人觉得怪异:

is fine with respect to the grammar, but is awkward

SQL Select 传染病报告卡评价及月统计表

传染病报告卡评价及月统计表与传染病登记本项目共用相同的数据源。传染病报告卡评价及月统计表引用全部标题(字段名),因此 SQL Select 语法用通配符 * 抓取全部数据:

select * from [Report$]
但是 Microsoft Query 过程以字段名首尾字母升序排序,和通用的传染病报告列表字段名顺位不同,需要人工干预为以下字段名顺位:

select 卡片ID,卡片编号,卡片状态,患者姓名,患儿家长姓名,有效证件号,性别,出生日期,年龄,患者工作单位,联系电话,病人属于,现住地址国标,人群分类,病例分类,病例分类2,诊断时间,疾病名称,订正前病种,订正前诊断时间,订正前终审时间,填卡医生,医生填卡日期,报告单位地区编码,报告单位,单位类型,报告卡录入时间,录卡用户,录卡用户所属单位,县区审核时间,审核状态,订正报告时间,订正终审时间,终审死亡时间,订正用户,订正用户所属单位,删除时间,删除用户,删除用户所属单位,删除原因,备注 from [Report$]
数据库导出的文档格式为 *.csv,另存为 XLSX 再执行 SQL 命令,能提取齐全的 Excel 数据。

再根据分析目标,使用数据透视表(Pivot Table)和其他 Excel 函数统计。

近期国家预防控制信息系统的传染病查询表格标题(字段名)从41个字段曾至46个字段:

select 卡片ID,卡片编号,卡片状态,患者姓名,患儿家长姓名,有效证件号,性别,出生日期,年龄,患者工作单位,联系电话,病人属于,现住地址国标,现住详细地址,人群分类,病例分类,病例分类2,发病日期,诊断时间,死亡日期,疾病名称,订正前病种,订正前诊断时间,订正前终审时间,填卡医生,医生填卡日期,报告单位地区编码,报告单位,单位类型,报告卡录入时间,录卡用户,录卡用户所属单位,县区审核时间,地市审核时间,省市审核时间,审核状态,订正报告时间,订正终审时间,终审死亡时间,订正用户,订正用户所属单位,删除时间,删除用户,删除用户所属单位,删除原因,备注 from [Report$]

挤出来的锻炼时间 冲刺型无氧运动

“时间就是挤出来的”,放在以运动控制体重同样适用。McMaster 大学的研究人员最近发现少量多次剧烈运动与长期有氧运动效果相当。

参加无氧运动者每次热身2分钟,剧烈骑车20秒,放松运动2分钟,静息3分钟 ——如此循环3组为一次,每周锻炼3次。坚持这种锻炼3个月后,它的健身效果与45分钟的常规运动效果相当,两种运动方式坚持下来的结果在肺活量、心输出量、血糖水平、胰岛素水平等方面没有统计学差异。


BBC 有一段视频专辑也是反映了同样的体育健康科学,实验对象在健身单车上爆发冲刺到极为疲劳后修整,放松,再冲刺,再修整。一段日子过后实验对象的血脂明显降低。

所以办公一族没有时间不再是借口。用10分钟快速奔跑或者攀爬公司的楼梯间,坚持12周后很容易就见到效果。

我的基础心率平均为每分钟90次,这种冲刺型无氧运动的最大心率控制在每分钟130-140次,用每天很短的时间锻炼,3个月后看看减脂效果。
TOP