Формулы массива в условном форматировании файлов электронных таблиц Excel XML?

StackOverflow https://stackoverflow.com/questions/84978

Вопрос

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 и посмотрите на формулу условного форматирования.Точно такой же, как и раньше.Нажмите "ОК".Условное форматирование снова начинает работать и будет работать в течение всего сеанса, пока файл открыт.

Рассмотренные обходные пути:

  1. Предоставление файла в собственном формате Excel (BIFF).Это не вариант, эти электронные таблицы генерируются веб-сервером "на лету", и это лишь один из десятков типов рабочих книг, динамически генерируемых нашей системой.

  2. Предоставление файла в собственном формате XML Excel 2007 (xlsx).Не вариант, текущая база пользователей не имеет Office 2007 или подключаемого модуля совместимости.

  3. Попросив пользователей выбрать диапазон, войдите в диалоговое окно условного форматирования и нажмите ok.Не вариант в данном случае для неискушенных пользователей.

  4. Просит пользователей открыть таблицу 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 при сохранении файла.

Кстати, это очень странная формула форматирования.Трудно представить, как бы вы это использовали.Это должен быть очень конкретный и необычный бизнес-кейс.У меня также такое чувство, что в вашем посте чего-то не хватает.(Я не обвиняю вас в нечестности – просто интересно, возможно, вы сократили формулу для удобства чтения.) Если это не точный формула, которую вы используете, пожалуйста, отредактируйте свой исходный пост с полной формулой, и я буду рад вернуться к этому вопросу.

Другие советы

На следующих страницах вы можете найти несколько обучающих видеороликов для самостоятельного изучения проблемы условного форматирования:условное форматирование

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top