我每天早上使用 SQL 和 Python 自动用数据填充 Excel 模板文件。在 Excel 文件中,以下表为例,我需要从
Code
列获取不同的代码列表,但前提是 New
列的值为 Y
。这是每天早上发布的自动报告,因此我无法进行任何手动数据操作。
现有数据样本:
| New | Code |
| --- | ---- |
| N | RTB |
| N | RTB |
| Y | RTB |
| N | SCR |
| N | SCR |
| Y | SCR |
| Y | SCR |
| N | SLD |
| N | SLD |
| N | SLD |
| N | RTS |
| N | RTS |
| Y | RTS |
| Y | RTS |
| N | CC |
| N | CC |
上表列出了 5 个代码,但在
Y
列中只有 3 个代码为 New
。我想要以下输出:
| Code |
| ---- |
| RTB |
| SCR |
| RTS |
创建一个数据透视表并按
New
列出,然后按 Code
创建正是我所需要的,但正如我上面所说,这必须完全自动化,因此数据透视表将无法工作。我只是想不出正确的公式。
这个公式让我很接近,但是使用上面的例子,它会列出所有五个代码:
=IFERROR(INDEX(DATA!$B$2:$B$9999, MATCH(0, INDEX(COUNTIF($A$1:A1, DATA!$B$2:$B$9999),0,0), 0))), "")
我也不知道如何告诉它按New
列进行过滤。
如果有更简单的方法可以用 Python 或 SQL 来完成此操作,那么我也很擅长。我正在从 SQL 查询创建数据帧并将它们写入 Excel 以获得上面提到的动态数据。
谢谢!