Excel XML电子表格文件的条件格式中的数组公式?

时间:2020-03-05 18:59:17  来源:igfitidea点击:

Excel通常将条件格式设置公式视为数组公式,除非从Excel 2002/2003 XML电子表格文件加载条件格式设置公式。

这只是Excel 2002/2003 XML电子表格格式的问题……本机Excel格式可以正常工作,而较新的Excel 2007 XML格式(xlsx)也可以。

加载电子表格后,可以通过选择格式范围,进入"条件格式"对话框并单击"确定"来使其正常工作,但这只能解决会话问题。

测试用例:

在新表中输入以下内容:

A B C
1 N N N
2 x x x
3 x x x

在单元格A1:C1(我们选择的漂亮颜色格式)上创建此条件格式公式:

=(SUM(($A1:$C1="N")*($A:$C=A))>0)

这是一个数组公式,只要它们中的任何一个具有" N"并且" N"下方的第2行中的单元格等于当前列第3行中的单元格,就会为A1,B1和C1激活。

(这已经从真实的业务电子表格中简化了。很抱歉测试用例的复杂性,我试图在此处找到一个更简单的测试用例。)

它的工作原理是...我们可以根据需要以任何方式更改N或者x,格式也可以正常工作。

将其另存为XML电子表格。关闭Excel,然后重新打开该文件。现在格式已损坏。现在,仅当A1为" N"并且A2与A3,B3或者C3相同时,我们才可以激活条件格式。 B1,B2,C1和C2的值对格式没有影响。

现在,选择A1:C1并查看条件格式公式。与以前完全相同。点击确定。条件格式再次开始起作用,并且将在打开文件的整个会话期间起作用。

考虑的解决方法:

  • 以本机(BIFF)Excel格式提供文件。这些电子表格不是一种选择,而是由Web服务器动态生成的,这只是我们系统动态生成的数十种工作簿中的一种。
  • 提供Excel 2007本机XML格式(xlsx)的文件。不能选择,当前用户群没有Office 2007或者兼容性插件。
  • 要求用户选择范围,进入条件格式对话框,然后单击确定。在这种情况下,老练的用户不是一种选择。
  • 要求用户打开XML电子表格,另存为本机XLS,关闭,然后重新打开XLS文件。这行不通!如果格式是从XML文件中加载的,则格式将保持本机XLS格式。如果在保存之前执行了上述(3),则XLS文件将正常工作。

我最终重写了条件格式以不使用数组公式。因此,我猜这在某种程度上是"可以回答的",但它仍然是Excel 2002/2003处理XML文件时的一个未记录的(即使模糊的)错误。

解决方案

回答

我试图重现我们描述的问题。这是我发现的。

  • 另存为XML电子表格时,可以在Windows XP上使用Excel 2003一致地重现该问题。
  • 另存为标准xls电子表格时,在Windows XP上使用Excel 2003无法重现该问题。
  • 以本地xlsx格式保存文件时,无法在Windows Vista上使用Excel 2007重现该问题。
  • 将文件保存为Excel 97-2003 xls格式时,在Windows Vista上使用Excel 2007无法重现该问题。 (注意:Excel和Windows的所有实例都是最新的所有Windows更新。)

我还为每个测试添加了一个简单的条件格式公式。在每种情况下,保存文件,关闭Excel并重新打开文件后,它都能按预期工作。

因此,答案似乎是在保存文件时使用标准的Excel 2003文件格式。

顺便说一句,这是一个非常奇怪的格式公式。很难想象我们将如何使用它。它必须是一个非常具体且不寻常的业务案例。我也感觉到帖子中缺少某些内容。 (我不是在指责我们不诚实,只是想知道我们是否已缩短公式的可读性。)如果这不是我们所使用的确切公式,请使用完整的公式编辑原始帖子,我很乐意再次访问这个问题。

回答

我们可以在以下页面上找到一些教程视频,以自助学习条件格式问题:
条件格式