从Excel 2002/2003 XML电子表格文件加载时,Excel通常会将条件格式公式视为数组公式,除外。
这只是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$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并查看条件格式公式。和以前完全一样。点击OK。条件格式化再次开始工作,并且在文件打开的整个会话期间将起作用。
考虑的变通方法:
以原生(BIFF)Excel格式提供文件。这些电子表格不是一个选项,它是由Web服务器动态生成的,这只是我们系统动态生成的几十种工作簿中的一种。
以Excel 2007原生XML格式(xlsx)提供文件。不是选项,当前用户群没有Office 2007或兼容性插件。
要求用户选择范围,请进入“条件格式”对话框,然后按“确定”。在这种情况下,不是一个选项,不熟练的用户。
要求用户打开XML电子表格,另存为本机XLS,关闭并重新打开XLS文件。 这不起作用!如果从XML文件加载格式化,则原生XLS格式的格式化仍然存在。如果在保存之前执行上述(3),则XLS文件将正常工作。
我最终重写条件格式以不使用数组公式。所以我想这在某种程度上得到了“回答”,但它仍然是Excel 2002/2003处理XML文件时的一个无证的,如果模糊的错误。
答案 0 :(得分:1)
我试图重新创建您描述的问题。这是我发现的。
可以不断重新创建 在Windows上使用Excel 2003的问题 保存为XML时的XP 电子表格。
不可以重现问题 在Windows XP上使用Excel 2003时 保存为标准xls 电子表格。
不可以重现问题 在Windows Vista上使用Excel 2007 在本机中保存文件时 xlsx格式。
不可以重现问题 在Windows Vista上使用Excel 2007 在Excel中保存文件时 97-2003 xls format。
(注意:所有Windows更新都是最新的Excel和Windows实例。)
我还为每个测试添加了一个简单的条件格式化公式。在每种情况下,它在保存文件,关闭Excel并重新打开文件后按预期工作。
所以答案似乎是在保存文件时使用标准的Excel 2003文件格式。
顺便说一句,这是一个非常奇怪的格式化公式。很难想象你会如何使用它。它必须是一个非常具体的&不寻常的商业案例我也觉得你的帖子中缺少一些东西。 (我不是在指责你是不诚实的 - 只是想知道你是否可能缩短了可读性的公式。)如果这不是你正在使用的完全公式,请用完整的文章编辑你的原始帖子公式,我很乐意重新审视这个问题。答案 1 :(得分:0)
您可以在以下页面找到一些教程视频,用于自学习条件格式问题: conditional formatting