关于office 2003:Excel XML电子表格文件的条件格式中的数组公式?

关于office 2003:Excel XML电子表格文件的条件格式中的数组公式?

Array Formulas in Conditional Formatting of Excel XML Spreadsheet files?

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

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

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

测试用例:

在新表中输入以下内容:

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

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

1
=(SUM(($A1:$C1="N")*($A$2:$C$2=A$3))>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文件时的一个未记录的(即使模糊的)错误。


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

    • 可以一致地重新创建
      Windows上使用Excel 2003的问题
      保存为XML时的XP
      电子表格。

    • 无法重现问题
      在Windows XP上使用Excel 2003时
      另存为标准xls
      电子表格。

    • 无法重现问题
      在Windows Vista上使用Excel 2007
      将文件保存在本机中时
      xlsx格式。

    • 无法重现问题
      在Windows Vista上使用Excel 2007
      在Excel中保存文件时
      97-2003 xls格式。

      (注意:Excel和Windows的所有实例都是最新的所有Windows更新。)

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

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

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


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


    推荐阅读