喜欢就关注我们吧!
有一天,拿到一份表格,突然突发奇想,想知道每一个患者的诊断都有多少个,是不是可以快速统计出来呢?话说以前是突发奇想,但是现在还真的会有这种统计需求,要求统计一年出院病案首页上的诊断数量或者平均每份病案上的诊断个数。哎,真是不该想,不该说。
既然要统计数量,如果量小的话直接数也不错,但是量大的话,呵呵,话说一年出院量十好几万,你慢慢数吧……
那下面分析一下,看看这个表格里面的诊断的书写特点,每一个单元格里面诊断的中间都用“;”分隔,那是不是诊断的个数就是“;”的个数+1?
对头,先把公式列出来,看一下最终结果,在D2单元格输入公式“=LEN(A1)-LEN(SUBSTITUTE(A1,";",""))+1”。B列和C列的内容属于中间过程,都说一口吃不成胖子,一笔也写不出一个复杂公式,刚开始写嵌套公式的时候还是一步一步来的好。
下图是最后公式的显示结果。
下面就再解释一下这次用到的两个函数len和substitute。
1、len函数:表示返回文本串的字符数。
如len(A1)返回的就是A1单元格的字符串长度
2、substitute函数:将文本字符串中的某个字符替换成新字符。
语法格式
=substitute(text,old_text,new_text,[instance_num])
=substitute(需要替换的文本,旧文本,新文本,第N个旧文本)
参数Instance_num ——为一数值,用来指定以 new_text (新文本)替换第几次出现的 old_text(旧文本)。
参数Instance_num 可省略,这表示用 new_text(新文本)替换掉所有的old_text(旧文本)。
所以SUBSTITUTE(A1,";",""),就是把A1单元格中的字符串中的所有”;”都替换成“”,即都去掉。
所以len(A1)-len(SUBSTITUTE(A1,";",""))就是用A1字符串的长度减去A1字符串中去掉所有“;”之后的长度,也就是最后得到原字符串中“;”的出现次数,再加上1就是诊断的个数。
OK,完工,是不是又有get到一个小技巧?下次遇到这种问题就会统计了吧?
扫码二维码
获取更多精彩
不正经病案人
点个在看你最好看