Команда сортировки Excel совершенно не работает, как ожидалось.

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

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

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

    "отсортированная" колонка

  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” на Sheet1 не нужно в формуле, но Excel иногда добавляет его автоматически.

ПРИМЕЧАНИЕ: Я не сортировал по колонке, в которой содержится вышеуказанная формула, эта формула имела последующие влияния.
ПРИМЕЧАНИЕ2: Использую Excel 365 – десктопное приложение. (Я никогда не видел этой проблемы в более ранних версиях.)

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

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

1. Неправильный порядок сортировки

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

  • Цифры содержат пробелы или специальные символы.
  • Данные были импортированы из других источников, что могло привести к неправильной типизации данных.

Решение:

  • Проверьте, что все значения в столбце, по которому вы сортируете, являются числовыми. Чтобы это сделать, вы можете воспользоваться функцией =ISNUMBER(), которая укажет, какие ячейки содержат текстовые значения.
  • Убедитесь, что данные не содержат лишних пробелов. Используйте функцию TRIM() для очистки данных.

2. Перепутанные данные в других столбцах

Ситуация, когда данные из других столбцов «путаются» либо объединяются, обычно возникает из-за того, что Excel не может должным образом обрабатывать формулы, применяемые к ячейкам, которые вы не включили в сортировку. Когда вы сортируете только одну колонку, Excel автоматически изменяет ссылки на другие ячейки, что может привести к неправильному отображению результатов.

Решение:

  • Убедитесь, что вы сортируете всю таблицу, а не только один столбец. Для этого выделите весь диапазон данных и выберите соответствующий параметр сортировки через вкладку «Данные».
  • Все формулы должны использовать структурированные ссылки в таблице, если она была создана на основе таблицы Excel. Например, используйте [@[ColumnHeader]] вместо прямых ссылок, чтобы избежать проблем при сортировке.

3. Проблемы с формулами

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

Решение:

  • Переместите все необходимые данные в таблицу. Убедитесь, что все связанные данные находятся внутри диапазона таблицы, что избежать проблем с сортировкой.
  • Вместо относительных ссылок при необходимости используйте абсолютные ссылки или структурированные ссылки.

4. Специфичные ситуации

Если в ваших формулах присутствует самоссылка на активный лист или на другие листы, это тоже может стать источником вашей проблемы. Например, если формула выглядит как INDEX('sheet3'!$C$12:$AL$12, MATCH('sheet1'!B7, 'sheet3'!$C$3:$AL$3, 0)), это может влиять на сортировку, даже если вы не сортируете столбец с данной формулой.

Решение:

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

Выводы

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

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

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