Формулы массива в условном форматировании файлов электронных таблиц Excel XML?
-
01-07-2019 - |
Вопрос
Excel обычно обрабатывает формулы условного форматирования так, как если бы они были формулами массива, за исключением при загрузке их из файла XML-таблицы Excel 2002/2003.
Это проблема только с форматом электронной таблицы 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)
Это формула массива, которая активируется для A1, B1 и C1 всякий раз, когда в любом из них есть "N", а ячейка в строке 2 под "N" равна ячейке в строке 3 текущего столбца.
(Это было упрощено на основе реальной бизнес-таблицы.Извините за сложность тестового примера, я пытаюсь найти более простой тестовый пример для представления здесь.)
И это работает...вы можете изменить буквы N или x любым удобным для вас способом, и форматирование будет работать просто отлично.
Сохраните это в виде электронной таблицы XML.Закройте Excel и снова откройте файл.Форматирование теперь нарушено.Теперь вы можете активировать условное форматирование, только если A1 - это "N", а A2 совпадает с A3, B3 или C3.Значения B1, B2, C1 и C2 не влияют на форматирование.
Теперь выберите A1: C1 и посмотрите на формулу условного форматирования.Точно такой же, как и раньше.Нажмите "ОК".Условное форматирование снова начинает работать и будет работать в течение всего сеанса, пока файл открыт.
Рассмотренные обходные пути:
Предоставление файла в собственном формате Excel (BIFF).Это не вариант, эти электронные таблицы генерируются веб-сервером "на лету", и это лишь один из десятков типов рабочих книг, динамически генерируемых нашей системой.
Предоставление файла в собственном формате XML Excel 2007 (xlsx).Не вариант, текущая база пользователей не имеет Office 2007 или подключаемого модуля совместимости.
Попросив пользователей выбрать диапазон, войдите в диалоговое окно условного форматирования и нажмите ok.Не вариант в данном случае для неискушенных пользователей.
Просит пользователей открыть таблицу XML, сохранить как собственный XLS-файл, закрыть и повторно открыть XLS-файл. Это не сработает! Форматирование остается нарушенным в собственном формате XLS, если оно было загружено нарушенным из XML-файла.Если (3) вышеописанное выполнить перед сохранением, XLS-файл будет работать должным образом.
В итоге я переписал условное форматирование, чтобы не использовать формулы массива.Так что я предполагаю, что на этот вопрос в какой-то степени дан "ответ", но это все еще недокументированная, хотя и малопонятная ошибка в обработке XML-файлов Excel 2002/2003.
Решение
Я попытался воссоздать проблему, которую вы описываете.Вот что я нашел.
Удалось последовательно воссоздать проблему с использованием Excel 2003 в Windows XP при сохранении в виде электронной таблицы XML .
Мог бы нет воспроизведите проблему используя Excel 2003 в Windows XP при сохранении в виде стандартной xls электронной таблицы.
Мог бы нет воспроизведите проблему используя Excel 2007 в Windows Vista при сохранении файла в собственном формате xlsx.
Мог бы нет воспроизведите проблему используя Excel 2007 в Windows Vista при сохранении файла в формате Excel 97-2003 xls.
(Примечание: Все экземпляры Excel и Windows обновлены со всеми обновлениями Windows.)
Я также добавил простую формулу условного форматирования к каждому тесту.В любом случае после сохранения файла, закрытия Excel и повторного открытия файла все работало так, как ожидалось.
Таким образом, ответ, по-видимому, заключается в использовании стандартного формата файла Excel 2003 при сохранении файла.
Кстати, это очень странная формула форматирования.Трудно представить, как бы вы это использовали.Это должен быть очень конкретный и необычный бизнес-кейс.У меня также такое чувство, что в вашем посте чего-то не хватает.(Я не обвиняю вас в нечестности – просто интересно, возможно, вы сократили формулу для удобства чтения.) Если это не точный формула, которую вы используете, пожалуйста, отредактируйте свой исходный пост с полной формулой, и я буду рад вернуться к этому вопросу.
Другие советы
На следующих страницах вы можете найти несколько обучающих видеороликов для самостоятельного изучения проблемы условного форматирования:условное форматирование