将excel单元格颜色读入Power BI

时间:2016-09-06 10:43:48

标签: excel powerbi

我有一个excel文件,我需要阅读Power BI。不幸的是,我无法控制这个文件,因为它是由另一个人自动生成的。

此文件中的某些单元格只是填充了颜色,我希望能够在将数据导入Power BI时转换这些颜色。

例如,如果excel中的颜色为绿色,则在相应的电源BI单元格中显示为true。目前它只是空白。

有没有人知道如何获得细胞" meta" Power BI中如excel的颜色数据?

2 个答案:

答案 0 :(得分:1)

叹息。

颜色不是数据。不幸的是,许多人对单元格进行颜色编码,然后期望能够根据单元格的颜色进行操作。但事情并非那么简单。

虽然Excel现在提供了一些按单元格颜色进行过滤的方法,但它仍无法使用工作表公式识别单元格颜色。

因此,您需要一个VBA例程来评估所有单元格并将其颜色记录在另一个表格中,然后您需要将其推送到Power BI数据模型中。

从长远来看,与生产彩色编码细胞的其他人交谈可能更容易,并教会他们更好的做事方式。向他们展示如何使用基于单元格值的条件格式进行颜色编码。用于条件格式的逻辑也可用于对Power BI中的数据进行分类。

从数据架构的角度来看,最好的解决方案是在源头解决问题,而不是创建处理错误数据输入的工具。

只是说'。

答案 1 :(得分:1)

不要放弃...

我找到了一个示例,该示例在Excel中使用Power Query以回旋方式工作。它通过其地址为您提供与每个单元格关联的元数据(例如,A1以FFFFFF00颜色突出显示)。我依靠一些Excel函数将突出显示的单元格地址与单元格值相关联。使用 Power BI 提取单元格数据可能需要其他工作。

该技术是使用Power Query打开Excel .xlsx文件,该文件基本上是一个包含.xml文档的.zip文件。每个单元的颜色信息可以提取到表格中。从那里,我能够使用<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>BFBCD6D538B3EB6A</RequestId><HostId>BtQuuVJw63Ixvir1ghCu0QLq/FKORNSIyyIh9AoYhul1TnsaoZZ1V0p/FBooM/0HTNhM7ZSegM8=</HostId></Error> 语句从.xlsx工作簿中读取并从彩色单元格中提取值。对我来说效果很好。

您可以在以下链接的论坛中找到一个有效的示例。该示例中用户定义的 DecompressFiles 函数使用INDIRECT()命令访问.xlsx文件中的XML文件。

https://www.excelguru.ca/forums/showthread.php?7047-Extract-Cell-Color-with-M&p=28875&viewfull=1#post28875


在我的情况下,我将大约7,000行和50列的数据库导出到Excel。用户可以脱机工作,然后通过Excel进行更改,突出显示他们已更改的每个单元。然后他们要我仅使用突出显示的单元格来更新数据库。每个人使用的背景颜色各不相同,但我不在乎颜色是什么,只是颜色是

对于每个更改的单元格,我都能够生成SQL语句来更新数据库,并且还可以插入事务日志表中。主数据库表大部分是平坦的,但是修改后的一些外键查找值我必须手动更新。

enter image description here

列F使用间接公式从源工作簿中提取数据。请注意,必须打开源工作簿,才能从中读取间接公式。 Binary.Decompress

G列通过用引号引起来,以精炼F列中的数据,如果单元格为空,则为NULL。

H列获取列标题以了解要更新的字段。

列K从列E中指定的行中获取记录ID值。

我必须为用户运行三个不同的过程,因此我的投资时间很快得到了回报。我要做的就是将最新突出显示的Excel文件放在本地文件夹中,并刷新Power Query以生成新的SQL语句。


抱歉,我这里没有发布“解决方案”。这个过程仍然有些脆弱,我正在尝试举一个我可以分享的更可靠的例子。似乎并未为解决方案的持续开发设置堆栈溢出。这个答案的重点是向那些渴望解决方案并且不会接受'No'的人提供希望

相关问题