Почему команда сортировки в Excel не работает как следует?

Вопрос или проблема

У меня есть таблица в Excel (отформатированная как таблица), которая позволяет мне сортировать, но ее результаты неверны как минимум по двум причинам:

  1. столбец числовых значений, по которому я сортирую от A до Z или от наибольшего к наименьшему, возвращается НЕ в порядке (и я не могу понять, какому шаблону это соответствует?!?

    "отсортированный" столбец

  2. Он “перепутывает” данные другого столбца произвольно. (Как это бывает, если у вас есть NULL или вы не выбрали весь диапазон данных.)

    • У меня форматировано как ТАБЛИЦА.
    • У меня нет никаких NULL/пустых мест в диапазоне данных.
    • Я пробовал выбирать всю таблицу перед сортировкой и пробовал не выбирать всю таблицу тоже.
    • Я старался сделать все формулы относительными (с $ (как в $A$1), или с ссылками на столбцы таблицы (как в 1-[@[ColumnHeader]]).
    • У меня есть довольно сложные формулы, но это небольшая таблица (27 строк на 11 столбцов), и они все работают до тех пор, пока я не попытаюсь СОРТИРОВАТЬ.

Обновление: В соответствии с комментариями, пытаюсь поделиться всей таблицей с примером одной из формул в строке формул.

Да, в столбце “% Модель” есть формула, по которой я пытаюсь сортировать, но я пытаюсь сортировать по значениям… разве это невозможно?

Вся таблица и одна формула.
Вся таблица и одна формула.

Добавляю запись экрана с текстом формулы.

вставьте описание изображения здесь

вставьте описание изображения здесь

вставьте описание изображения здесь

вставьте описание изображения здесь

вставьте описание изображения здесь

В настройках, которые вы показываете, столбец Имен (столбец X) заполняется формулами, ссылающимися на ячейки, используя обычные ссылки, в то время как вы “религиозно” используете структурированные ссылки в других формулах, судя по всему. И в нескольких показанных формулах, N41 и N43 занимают видное место.

Суть вышеизложенного в том, что эти ячейки находятся за пределами таблицы. Еще одним индикатором является наличие самого столбца Имен. Если столбец A был бы частью таблицы, этот целый столбец не был бы необходим для работы Excel, хотя кто-то мог бы желать видеть имена периодически в наборе данных, который охватывает несколько экранов и требует постоянного отображения имен. Есть и другие способы сделать это, но это был бы один из них. Тем не менее, учитывая ссылки на N41 и N43, существование этого столбца подразумевает, что ваша таблица начинается в столбце X.

Почему это важно? Ваш выбранный столбец сортировки, AB, содержит формулу, которая извлекает значение из столбца фактических данных каждой строки. Она, в свою очередь, содержит формулы, которые используют столбец Имен для поиска, который предположительно возвращает некоторое числовое значение.

(Кстати, в этой формуле NOT FOUNT используется в качестве значения, которое возвращается, если имя не найдено. Однако без двойных кавычек на каждом конце оно будет интерпретировано как Именованный диапазон, но с пробелом между словами оно не может быть Именованным диапазоном. Если я не ошибаюсь, это нужно исправить, и единственная причина, по которой это не было проблемой, заключается в том, что, как и в связанной проблеме со всеми этими возможностями “NotTru” в других формулах, данные просто не вызывали использования этой части формулы, так что никогда не вклад предмета в работу. Проблема с “NotTru”, кстати, заключается в том, что это текст, а не числовое значение, в формулах, которые явно должны иметь числовые входные данные. Так что если это был бы результат IF(), в котором он находится, то формулы бы делили на… текст… и вызывали бы ошибку.)

Это числовое значение затем используется в формуле вашего столбца % от Модели. Так что все это сводится к столбцу Имен. Поскольку это не структурированные ссылки (предположительно, потому что столбец A не является частью этой таблицы), Excel выполнит сортировку, и в течение нескольких микро- или миллисекунд элементы в этом столбце будут перемещаться с их строками именно так, как требуется, затем до того, как вы увидите это, Excel корректирует формулы, не структурированные ссылки (=A7 и так далее), чтобы сохранить их первоначальный порядок, что имеет побочный эффект возвращения таблицы к её видению до сортировки.

Исправление этого будет проблемой.

Один из способов – это несколько изменить порядок поиска. Поместите реальные данные имен в столбец Имен, а в столбец A поместите формулу для получения имени этой строки. Конечно, если есть другие данные, которые не отражены в таблице, они не будут отсортированы вместе с таблицей, так что… проблема.

Другой способ – это обновить все. Поместите все данные в таблицу, а не слева от неё. Столбцы с рабочими элементами, такими как ячейки N41 и N43, останутся за пределами таблицы. Это вполне осуществимо, но может вызвать определенные проблемы в работе, если есть другие пользователи, и им это не понравится… проблема.

Последний способ, вероятно, действительно единственный, который имеет смысл.

Нет никаких причин, по которым это не может быть помещено в таблицу в смысле Excel. После попадания в таблицу таблице не нужно искать данные за её пределами, так что никаких формул, чтобы вмешаться в сортировку. Рабочие ячейки, такие как N41 и N43, не принадлежат никакой конкретной записи и остаются вне таблицы. Тогда у вас будет свобода в сортировке и так далее.

То, что у вас здесь, является эквивалентом сортировки формул без перемещения основной информации в Excel.

Представьте, что у вас есть следующее:

     A       B
1    Данные    Расчет    (формула из столбца B)
2    1       2       =A2*2
3    5       10      =A3*2
4    8       16      =A4*2
5    0       0       =A5*2

И вы дали Excel отсортировать столбец B — только столбец B. Он переместит эти формулы вверх и вниз в зависимости от значений в ячейках, но это относительные ссылки — Excel будет изменять их при перемещении вверх и вниз.

Например, B4, который равен 16, должен быть внизу. Excel возьмет формулу из B4 (‘=A4*2’) и сделает эквивалент копирования и вставки на одну ячейку вниз, в B5. И вы знаете, что Excel сделает с таким копированием и вставкой; когда он вставит формулу на одну ячейку вниз, он обновит её, чтобы получить ‘=A5*2’. Что значит, даже после сортировки, B5 все равно будет равен нулю. В основном, сортировка ничего не сделает.

Способ исправить это – включить столбец A в ту же сортировку; вы можете отсортировать по столбцу B, и пока основные данные действительно перемещаются, вы получите то, что хотите. Копирование и вставка B4 И A4 в B5 и A5 переместит 8 вниз в A5, и B5 все равно будет иметь формулу ‘=A5*2’, что именно то, что мы хотим, потому что теперь это 16.

То, что у вас есть, является эквивалентом этого гораздо более простого примера — по сути, вы делаете эквивалент просто перемещения формул без перемещения основной информации. Вам нужно как-то решить эту проблему.

Признаю, что это старый вопрос, и этот ответ, вероятно, не решит предыдущую проблему пользователя, учитывая его опубликованные уравнения.

Я наткнулся на этот пост, потому что у меня была аналогичная проблема сортировки, когда она казалась произвольной. Я нашел виновника – формулу, которая сама ссылалась на активный лист.

Например – формула ниже на листе 1:

=INDEX('sheet3'!$C$12:$AL$12,MATCH('sheet1'!B7,'sheet3'!$C$3:$AL$3,0))

Проблема для меня заключалась в “sheet1” перед B7. Удаление “sheet1” решило для меня проблему сортировки. “Sheet1” на Листе 1 не нужен в формуле, но Excel иногда добавляет его автоматически.

Примечание 1: Я не сортировал по столбцу, в котором находилась вышеупомянутая формула, эта формула имела косвенные воздействия.

Примечание 2: Использую Excel 365 – настольное приложение. (Я никогда не сталкивался с этой проблемой в более ранних версиях.)

Ответ или решение

Почему команда сортировки в Excel работает неправильно?

Разбор проблемы, связанной с сортировкой в Excel, требует внимательного подхода. Если Вы столкнулись с ситуацией, когда сортировка не приводит к ожидаемым результатам, давайте разберем возможные причины и решения.

1. Ошибки в форматировании данных

Ваша таблица отформатирована как "Таблица" (Table), однако возможно, что некоторые данные в колонках имеют неправильный формат. Например, если некоторые численные данные хранятся в текстовом формате, Excel не сможет корректно отсортировать их по возрастанию или убыванию.

Решение: Проверьте формат всех ячеек в колонне, по которой выполняется сортировка. Убедитесь, что все ячейки числовые. Для этого можно воспользоваться инструментом "Текст по столбцам" (Text to Columns), чтобы преобразовать текстовые значения в числовые.

2. Ссылки на внешние данные

Если в Вашей таблице присутствуют формулы, которые ссылаются на данные за пределами самой таблицы, например, на ячейки вне диапазона (например, ячейки N41 и N43), это может вызвать проблемы при сортировке. Excel может не корректно обновлять ссылки для строк, которые перемещаются в результате сортировки.

Решение: Чтобы избежать этого, попробуйте перенести все данные, которые необходимы для вычисления, в саму таблицу. Это позволит Excel правильно учитывать зависимости и избежать путаницы при сортировке.

3. Сложные формулы

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

Решение: Проверить все формулы, наличие в них структурированных ссылок. Структурированные ссылки обеспечивают, что формулы будут последовательно ссылаться на данные при перемещении строк.

4. Работа с пустыми значениями

Хотя вы указали, что в диапазоне нет пустых значений, наличие пространства, например, по краям таблицы или в колонках, где можно ожидать данные, может стать причиной «путаницы» при сортировке.

Решение: Убедитесь, что диапазон данных не содержит пустых строк или столбцов; очистите ненужные отступы.

5. Подход к сортировке

Если проблема заключается в том, что Вы сортируете лишь одну колонну, не включив остальных, это может привести к тому, что сортировка будет отображать данные неправильно. Excel будет пытаться обновить формулы, а не перемещать связанные данные, сохраняя их связи.

Решение: Убедитесь, что при сортировке выделен весь диапазон данных, а не только сортируемая колонка. Таким образом, Excel сможет переместить соответствующие данные вместе с основным значением.

Заключение

В результате, если система сортировки Excel не работает как ожидается, проверьте форматирование, ссылки на внешние данные, сложные формулы и составляющие диапазона. Исходя из вашего описания, самой оптимальной стратегией будет реформировать структуру данных в таблице так, чтобы все взаимосвязанные данные находились внутри одной таблицы. Это упростит процесс сортировки и обмена данными.

Обратите внимание на эти ключевые моменты, чтобы обеспечить правильную работу команды сортировки в Excel. Используйте структурированные ссылки, форматы данных и корректно выбирайте диапазоны для сортировки, чтобы избежать неполадок в будущем.

Оцените материал
Добавить комментарий

Капча загружается...