标签:Excel函数,PY函数
本文包括如何启用Excel中的Python,在Excel中使用Python,以及Excel中Python的计算规则等内容。
启用Excel中的Python
要在Excel中使用Python,先选择一个单元格,然后进行以下任一操作:
操作1.单击“公式”选项卡“Python”组中的“插入Python”。这会告知Excel在所选单元格中编写Python公式。

图1
操作2.输入=PY启用Python,如下图2所示。

图2
输入=PY后,使用Tab键,或在函数后添加左括号:=PY(。结果如下图3所示,可以看到单元格左侧增加了一个带PY字的绿色框,同样在公式编辑栏左侧也出现了一个带PY字的绿色框,并且其左侧由“插入函数”图标变成了带有下拉箭头的“Python对象”图标。

图3
现在,可以直接在单元格中输入Python代码,也可以在公式编辑栏中输入Python代码。
操作3.使用Shift+Alt+Ctrl+P组合键。
使用Python
如果要在Python单元格中引用Excel对象,在Python单元格处于编辑模式下,选择要包含在Python公式中的单个单元格或单元格区域。这会自动让选择的单元格或单元格区域的地址填充到Python单元格,如下图4所示。

图4
可以看到,Excel中的Python使用自定义Python函数xl()在Excel和Python之间进行接口。xl()函数接受Excel对象,例如单元格区域、表、查询和名称。
当然,也可以使用xl()函数在Python单元格中直接键入引用。例如,要引用单元格A1,直接输入xl(“A1”);引用单元格区域B1:C4,输入x1(“B1:C4”)。对于带有标题的名为MyTable的表,输入xl(“MyTable[#All]”,headers=True)。[#All]说明符确保在Python公式中分析整个表,headers=True确保正确处理表头。
下图5显示了Excel中的Python计算,将单元格A1和B1的值相加,Python结果返回到单元格C1。

图5
注意到图5中的一些元素,包括:公式栏增大了、输出结果单元格中带有[PY]字样且右边有一个卡图标,下面分别介绍。
公式栏
使用公式编辑栏进行类似代码编辑的操作,例如使用Enter键创建新行。使用其左侧的向下箭头图标展开编辑栏,从而可以一次查看多行代码。还可以使用键盘快捷键Ctrl+Shift+U展开编辑栏。
如果公式编辑栏显示不出完整代码,可以将鼠标置于其下方,待光标变成白色竖直双向箭头后,向下拖拉以扩展公式栏。
输出结果的类型
使用公式编辑栏左侧的Python对象输出菜单来控制Python计算的返回方式。将计算结果作为Python对象返回,或将计算结果转换为Excel值并直接输出到单元格中。下图6所示显示了作为Python对象返回的Python公式,这也是其默认返回方式。

图6
单击“Excel值”,则返回值,如下图7所示。

图7
也可以在Python单元格中单击鼠标右键,从快捷菜单中选择要输出的方式,如下图8所示。

图8
注意:返回Excel值的公式结果将转换为最接近的Excel等效值。如果计划在将来的Python计算中重用结果,建议将结果作为Python对象返回。将结果作为Excel值返回允许对值进行Excel分析,例如制作Excel图表、创建公式和条件格式。
Python对象在单元格中包含其他信息。要查看其他信息,选择并单击卡图标打开卡。卡片上显示的信息是字段(或对象的预览,我的Excel上没有?),这在处理大型对象时很有用。

图9
Excel中的Python可以将多种类型的数据作为Python对象返回,一个有用的Python Excel数据类型是DataFrame对象(后续将专题介绍)。
导入外部数据
在Excel中使用Python处理的所有数据必须来自工作表或通过Power Query导入。
计算顺序
传统的Python语句从上到下计算。在Excel单元格中的Python,Python语句执行相同的操作——它们从上到下进行计算。但在Excel工作表中的Python,Python单元格按行为主的顺序计算,单元格计算运行在该行每列(从列a到列XFD),然后到下一行运行。
在工作表中定义和引用变量时,计算顺序很重要,必须先定义变量,然后才能引用它们。
重要提示:行主计算顺序也适用于工作簿中的工作表,并且基于工作簿中工作表的顺序。如果使用多个工作表在Excel中使用Python分析数据,确保在分析数据的单元格和工作表之前,单元格和工作表中包含数据和任何存储数据的变量。
重新计算
当Python单元格的依赖值发生变化时,所有Python公式都会按顺序重新计算。要暂停Python重新计算并提高性能,使用“部分计算”或“手动计算”模式。这些模式允许在准备就绪时触发计算。要更改此设置,在功能区“公式”选项卡中打开“计算选项”来操作。部分计算和手动计算模式暂停Python和数据表的自动重新计算。
在Python开发期间禁用工作簿中的自动重新计算可以提高性能和单个Python单元格的计算速度。但是,必须手动重新计算工作簿,以确保每个Python单元格的准确性。在“部分计算”或“手动计算”模式下,有三种方法可以手动重新计算工作簿。
1.使用键盘快捷键F9。
2.使用功能区“公式”选项卡“开始计算”。
3.在具有过时值的单元格,该单元格以删除线格式显示,然后选择该单元格旁边的错误符号,从菜单中选择“立即计算”。
错误
Excel中的Python计算可能会返回错误,例如在Python单元格中显示#Python!,#BUSY!,#CONNECT!。
注:本文整理自Microsoft官方网站,进行了一些补充,有兴趣的朋友可以阅读原文。
夜雨聆风