分类
BI/PBI/PY学习交流 excel知识日志 Office应用日志

Excel应用——使用Excel的PowerQuery获取党史题库

建党100周年,举办一个党史有关的答题活动,让广大党员参与进来,既回顾了党史,又提高了认识。这是很合请很合理也很合逻辑的。

既然是学习和答题,那么划定一个出题范围,乃至给出一个题库来,当然也是皆大欢喜的。

那么,如何把题库下载下来,放到excel中,方便自己练习和学习呢?

为了解决这个问题,今天,阁主就带你使用Excel自带的PowerQuery,体验一把网络数据抓取功能。

首先,我们要获得数据的来源网址:
使用微信电脑版,从相关活动二维码打开的内置浏览器窗口上方,点击复制链接按钮,复制链接并粘贴到浏览器中打开。

等待浏览器加载完毕,可以看到题库被分割成了40页,记住40这个数字,后面用到。点击F12打开浏览器开发者工具。在浏览器开发者工具中,选择“网络”选项卡。然后点击网页下方的2,进行切换页操作。

我们点击“2”以后,“网络”选项卡下面会多出来一行记录,这时候,点击这条记录的名称列文本。

这时候,会在右侧出现一个新的视图栏,选择里面的“标头”选项卡,复制“请求URL”。这里是“https://hezuo.btime.com/question/getquestion?page=2”

打开Excel,新建空白工作簿。依次选择【数据】选项卡,【获取数据】组,【获取数据】按钮下拉选择【自其他源】里面的【自网站】按钮(也可以使用【获取数据】中的【自网站】按钮,效果是一样的)

在新弹出的对话框里面粘贴网址并【确定】

这时候,Excel会自动打开PowerQuery编辑器,下一步就在PowerQuery编辑器中操作了。在Powerquery中依次点击Record、List和选项卡中的“到表”按钮。

使用数据预览窗口中列标题中的“扩展”按钮,将Record扩展为表格

在Answer列上点击“扩展”按钮,将候选项扩展为多行文本。这里分隔符选择自定义,勾选使用特殊字符连接,然后选择“换行和回车符”。

选择Column1.Type列,使用替换值功能,将1替换为单选,2替换为多选

到了这一步,我们已经完整的实现了从网页获取单个页面数据并转换为需要的形式的功能。下一步,我们使用“创建函数”功能,进行多个页面数据的获取。

创建函数对话框中输入函数名称,这里取的名字叫“获取数据”。

右键点击“获取数据”,选择“高级编辑器”,打开高级编辑器。

在高级编辑器中,可以看到有一个括号,里面为空。这就是PowerQuery公式中,放函数参数的地方。

在括号中填入x,然后把”page=2″中的”2″删掉,后面加上”&Number.ToText(x)”,确定。

,这表示定义了一个函数参数x,根据x值动态生成网址进行数据获取。

在选项卡中,选择【新建源】→【空查询】

在公式编辑栏输入“={1..40}”,代表是一个从1到40的列表

点击选项卡中【到表】按钮,将列表转为表

切换到“添加列”选项卡,点击“调用自定义函数”按钮,添加一个基于自定义函数的列

在新添加的列标题栏,点击扩展按钮

点击【关闭并上载至…】按钮,将数据返回到Excel中。

大功告成。

总结:在这个实例中,我们通过对浏览器开发者工具,Excel的Powerquery的综合运用,将一个40页的题库,快速进行全文获取,并在Excel中进行呈现,方便下一步的学习与练习工作。如果掌握了这套方法的思路,以后可以快速从网络上获取我们需要的宝贵数据,方便工作使用。

分类
BI/PBI/PY学习交流

PBI学习——使用nginx stream反向代理实现powerBI数据集的远程访问

没有废话版:

1、打开PBID软件,打开数据集

2、查找msmdsrv.port.txt文件,确认PBID使用的端口(假设为8888)

3、下载安装nginx,修改配置文件,设定反向代理端口(假设为6666)启用stream反向代理。启动nginx服务器。

示例配置:

worker_processes  1;

events {
    worker_connections  1024;
}
stream{
    server{
        listen 6666;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass 127.0.0.1:8888;
    }    
}

4、在Excel中选择【数据】→【获取数据】→【来自数据库】→【自Analysis Services】在弹出的对话框【服务器名称】项中填入服务器地址及端口号。假如服务器网址为pbi.cuijiange.com,那么地址栏就应该输入pbi.cuijiange.com:6666;假如没有网址,而是使用的IP地址,那么就输入IP:port

5、【登陆凭据】项选择“使用下列用户名和密码”,在输入框内输入服务器端的用户名和密码


废话版:

昨天前几天,学习群里,潘老师给下达了一个任务:实现使用A电脑上的Excel访问B电脑上的PBI数据集。

PBID本质上就是一个服务端和客户端的集合体,服务端使用的是Microsoft家族成熟的Microsoft SQL Server Analysis Services,那么就可以通过连接SSAS的方法进行连接。

那么,具体是怎么连接的呢?下面跟着阁主,来一探究竟吧。

第一步,我们需要打开PowerBI desktop软件。如果不打开软件,那么后面我们就会找不到工作区目录的。

第二步,我们需要找到PBID的SSAS服务的端口号。经过老师的指导,阁主了解到PBID的SSAS服务的端口号并不是固定的,每次打开PBID都会发生变化。在我们打开PBID的情况下,PBID会在我们的硬盘中生成一个SSAS工作区目录analysisServicesWorkspaceXXXXXXXXX,我们可以从该目录的Data子目录中的msmdsrv.port.txt获得端口号。阁主就按照老师给的参考地址,去C:\users\淬剑阁阁主\appdata\local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces目录下寻找,结果没有找到。后来,阁主使用everything搜索msmdsrv.port.txt,在C:\users\淬剑阁阁主\Microsoft\Power BI store Desktop\AnalysisServicesWorkspaces目录下找到了相应的配置目录。为什么找不到呢?阁主猜测,可能是因为阁主用的是应用商店版本的PowerBI desktop,版本不同导致文件的位置也不一样。在这里,为了方便朋友们快速找到相应的位置,阁主写了两个带系统变量的地址语句,复制到“资源管理器”地址栏回车就能找到所需要的目录。

应用商店版:
%USERPROFILE%\Microsoft\Power BI Desktop store app\AnalysisServicesWorkspaces
安装版:
%LOCALAPPDATA%\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces

找到了工作区文件夹。如果有童鞋发现这个文件夹是空的,那么是因为你没有打开PowerBI软件,请把PowerBI Desktop软件打开。

如果您的PowerBI Desktop已经是打开的,那么这个位置应该就出现了形如【AnalysisServicesWorkspace123456789】这样子的文件夹,请打开这个文件夹,会看到有一个【Data】目录和一个【pbiworkspace.lock】文件,打开Data文件夹,打开里面的文本文档【msmdsrv.port.txt】,里面的端口号就是我们第二步需要找到的端口号啦~

第三步,架设nginx stream反向代理服务器。nginx是一款开源的多平台服务器软件,今天我们借助他的stream代理功能,将外部访问转换为本地访问,以突破ssas服务只能够本地访问的限制。

首先,我们要有一个nginx的安装包。很多网站上都可以下载到这个安装包,在这里,阁主还是推荐您使用官方地址http://nginx.org/en/download.html来下载,可以保证软件的有效性。

安装好nginx服务器之后,我们还需要对它进行相应的配置,以启用stream反向代理功能。配置文件的默认路径是【程序目录\conf\nginx.conf】示例代码已经放在上面了,各位童鞋可以参照修改哦~

当然,如果不便于直接修改nginx.conf配置文件,那么我们也可以复制一份nginx.conf文件,到其他位置,或者改名字(假设为【d:\pbi.conf】)。

修改完毕后,我们启动nginx,这样stream反向代理就架设成功了。(如果使用了非默认的配置文件名和文件位置,那么我们在启动nginx的时候就需要通过添加参数来特别指定要使用的配置文件)我们可以通过excel来进行测试~(方法不再赘述)

第四步,如果我们想要其他电脑访问(废话),那么我们还需要进行防火墙设置。打开windows高级防火墙,在入站规则中,放行我们的反向代理端口(示例中为6666端口)。

(由于阁主也是刚刚接触PBI,所以上述说法也是听来转述的,可能有偏颇甚至错误的时候,如果您发现文章有误,还请您直指不足,不吝赐教^_^)

分类
BI/PBI/PY学习交流 每日技巧

PBI学习——每日技巧20200828

潘淳老师:如何在PQ中一次性调出所有M函数(并取得帮助)?

不废话:#shared

详细步骤:

1)打开Excel

2)数据–>获取数据–>启动PQ

3)进入PQ Edit

4)主页–>新建源–>其它源–>空查询

5)公式栏输入:= #shared

6)点开任意函数,得到帮助

Tips-20200828OVER

阁主提示:点击一下【到表中】,查找更方便哦

对PBI、BI、PY感兴趣的童鞋们可以加我们的QQ群,后续有精彩课程大餐等您哦。

点击链接加入群聊【BI/PBI/PY学习交流群】

群号:874452276