博文

EXCEL 单元格中文提取拼音首字母的实现方法

在某些领域的工作中,经常会碰到中文名称需要提取每个字拼音首字母的情形,以便于用来进行检索。比如图书名称索引(当然真正的图书馆大量的图书并不会用EXCEL来实现),如下图右侧的字母缩写 图1 事实上,对于汉字转拼音首字母,网上有一套现成的方案。直接引用就可以实现。公式如下: =LOOKUP(MID(A1,ROW($1:$6),1), {"","";"吖","A";"八","B";"攃","C";"咑","D";"妸","E";"发","F";"旮","G";"哈","H";"丌","J";"咔","K";"垃","L";"妈","M";"乸","N";"噢","O";"帊","P";"七","Q";"冄","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";"帀","Z"}) 这其中  ROW($1:$6)的作用是形成一个数组,即{1,2,3,4,5,6}。当然了,这个公式仅限于取6个汉字的拼音首字母。正常使用时,为了保证可扩展性,可以使用 ROW(INDIRECT("$1:$"&LEN(A1)))这个公式来生成动态的数组。它会自动...

使用power query 实现excel单元格内多个数字提取求和

      昨天在网上看到有人提问,说想实现EXCEL某单元格中不规律数字提取并求和。由于本人正在学习power query,所以第一反应就是用pq来解决。当然,网上也不乏使用excel函数解决的教程,但是多数针对的是一个单元格中只有一个数字的情况。如下图这样的情况,就比较困难了。 图1 不带分隔符的表      因为这涉及到几个数字的提取,并且在提取时要保证数字的完整。也就是说,3就是3,31就是31,不能识别为3和1 ,否则求和结果就是错误的。事实上,有不少power query教程都有这样的示例。但我查询一下,基本上都是针对带有明显分隔符的数据来操作的(如下图)。先按分隔符,将每一个包括数字的部分拆分到一个列表中,然后 再使用替换字符的方法,留下数字,再求和。由于有固定的分隔符,拆分成列表就比较容易。对于没有明显规律的分隔符的,就比较麻烦一点了。大部分教程中都没有提到这种状况的解决方法。经过摸索,基本上成功的解决这个麻烦。 图2 带分隔符的表 大体思路如下: 由于数字都是跟在文本后面的,没有明显的分隔符,所以只能考虑使用文本来进行分隔。 如果用汉字集来分隔的话,那么要取的汉字太多,效率会很低。转变思路,先将单元格中文本取出来,然后以此作为依据进行分隔。这样虽然多一步骤,但是要查找替换的文本只有几个字,效率提高的不是一点点。 以提取出来的文本对单元格进行分隔,将数字分离到一个LIST中,再转换为数值型,求和即可。    以下为实现步骤:       1. 提取除数字之外的文本。由于要提取的数值部分包括0-9数字和作为小数点的.。因此先将这部分移除,剩余的即为要用的文本部分。        代码 = Table.AddColumn(源, "自定义", each Text.Remove([列1],{"0".."9","."})) 由于后面要根据提取出来的文本进行替换,以获得数值部分,所以 将0-9及“. ”先替换掉。这个“.”一定要放在里面,否则替换出来的结果会将小数点去掉,使小数变成整数,造成结果错误。 替换后结果如下: 图3...

通邮件合并实现多行数据合并到一个模板

应朋友之请,要帮她实现一个邮件合并的应用场景。本来,邮件合并是个挺简单的事。但是她的要求却远远超出我对邮件合并的认知。要求是这样的:相同系列的不同产品要放在同一张质量保证书上。每种系列下不超过3个规格。不同系列要分开做质量保证书。WORD的邮件合并对于处理连续单行的数据比较容易,但是对于这种要按某个字段分开处理不太容易。这就是所谓的多行数据合并到一个模板中的问题。 网上搜索了很多教程,看的迷迷糊糊,没有一个真的看懂了。经过一个晚上的反复摸索。总算有了眉目,现将过程记录下来,以防遗忘。 EXCEL文件清单内容如下图。最右列的计数项是添加的辅助列,公式为=if(l2=l3,1,0),也就是判断本行的编号和下一行的编号是否一致。这个非常重要,因为后面的拆分要依靠此列的数据指引。 最终的效果如下图 最终实现域代码如图 下面是具体的操作步骤: 注意:本文中所要求输入的内容中,除了中文外,其他内容均要求在英文半角状态下输入。   先新建一空白WORD文档,然后插入一个多列(根据需求)3行(因为最多只有3个型号,当然,实际使用过程中应该是增加表头行的)的空白表格。然后在“邮件”选项卡中点击“选择收件人”,然后选择“使用现有列表”,找到你保存的EXCEL源文件。打开后,进入正常的邮件合并界面。这一步不多说,因为就是普通的邮件合并步骤,网上教程也很多。  在域代码图所示的第一个空白单元格中,按照常规的邮件合并方法,插入编号字段和规格字段。到这一步为止,所有步骤和普通邮件合并没有任何区别。区别在接下来的步骤中。 在第二行第一个空白单元格中,先按下ALT+F9,然后按CTRL+F9,出现一对大括号{},但这个大括号一定是要通过组合键出来,手工输入是无效的。在大括号中输入set a  ""   ,a可以自己指定其他的名称。在set a “”这三者之间都要有空格。然后将光标定位到“”中间,在菜单中选择“插入合并域”,在列表中选择“计数”字段。这样就会得到{ set a  "{MERGEFIELD 计数}"}这样的代码。 接着,在邮件选项卡下的‘规则’下拉列表中选择“下一条 记录”,如下图 在接下来的对话框 中,域名栏中选择“计数”,比较...

EXCEL 运用SQL语法实现多表合并数据透视

多表合并实现数据透视在EXCEL中实现比较麻烦,但有了SQL的加持,就会非常强大。可惜SQL对于非编程人员还是略有门槛。经过摸索,也经历了多次失败,才总结出一点规律。 下面的代码其实作用是提取多个表(这里只用两个表为例)的其中指定的字段数据进行合并且构造出一个新的表。 select 单位名称,金额,"2017-12" as 月份 from [2017.12$a:h] union all select 单位名称,金额,"2018-1" as 月份 from [2018.1$a:h] 可以实现提取部分字段重新组织数据。但如果[2017.12$]这里不加入具体范围的话,经常会出现打开数据库错误的提示。经过多次尝试,发现在这里加入数据范围,错误就解决了。

删除 UBUNTU wine 及 残留的快捷方式

有时候没有安装软件,就喜欢用CHROME创建一个桌面快捷方式来运行网页版的程序。但是网页版的程序图标是非常模糊的。或者有时候是不想使用这个网页版的程序了,但是在程序列表中无法删除,在软件管理器中也找不到该快捷方式。所以只能手动删除相关快捷方式的文件才可以。 以下是手动删除的方法: 1.进入快捷方式存放目录 cd  ~/.local/share/applications 在此文件夹下,保存着相关的快捷方式文件。删除扩展名为.desktop的文件即可。 wine很恶心的一个地方就是,你卸载了wine,但是你安装过的wine程序快捷方式还残留在你的主菜单里边,太蛋疼了,现在教你怎么彻底删掉wine: 1.卸载wine主程序,在终端里输入: sudo apt-get remove --purge wine 2.然后删除wine的目录文件: rm -r ~/.wine 3.卸载残留不用的软件包: sudo apt-get autoremove 但我们在用wine卸载一些windows程序后,在“应用程序”-“其它”菜单里还残留着它的图标,我们可以通过以下方式把它彻底清除掉: 1.将 ~/.local/share/applications/ 下的相关文件或目录删除掉。 rm -r ~/.local/share/applications 2.删除 ~/.config/menus/applications-merged/ 里面相关的文件。 rm -r ~/.config/menus/applications-merged/wine*

树莓派nginx关于运行PHP网页的配置文件

由于NGINX本身并不具备运行PHP网页的能力,因此需要配合PHP程序来解释网页。在树莓派中添加配置文件/etc/nginx/conf.d/***.conf 打开此文件 server { listen 82 ; ========此处为自定义端口 root /var/www/html/admin; ========>此处为网页文件文件夹 # Add index.php to the list if you are using PHP index index .php index .html index .htm index .nginx-debian.html; server_name _ ; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri / = 404 ; } # pass PHP scripts to FastCGI server # location ~ \.php$ { ★★★ # include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): fastcgi_pass unix: /var/run /php/php 7. 0 -fpm.sock; ★★★ fastcgi_index index .php; ★★★ include fastcgi_params; ★★★ # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; } ★★★ # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #locat...

树莓派上nginx+php7打开PHP页面 显示空白的解决方法

配置好网站后,在浏览器中访问PHP页面,但是显示为空白,没有任何出错提示。 由于nginx与php-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面   .html 都能正常访问,而   .php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件: vi /etc/nginx/fastcgi_params 在文件的最后增加两行: fastcgi_param SCRIPT_FILENAME $document_root$ fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; 然后重启一下服务: service php5-fpm reload service nginx reload //重新加载各项配置改动。