Выровняйте столбцы данных в LibreOffice Calc по номерам в другом столбце

508
Stockfisch

У меня есть три столбца:

  • Столбец A содержит счет от 1 до 100, представляющий различные станции отбора проб. Числа в последовательности.
  • Столбец B не зависит от столбца A. Он содержит выбранные числа из столбца A (значения от 1 до 100), но не все из них, потому что я получаю список с данными только с некоторых станций каждый раз. Столбец B упорядочен в порядке возрастания, но короче столбца A, поскольку в нем отсутствуют некоторые станции, и нет пустых ячеек, в которых записи столбца B должны быть выровнены с записями столбца A.
  • Столбец C содержит данные, связанные со столбцом B, например, показания температуры на станции отбора проб или любую другую информацию.

Теперь я хотел бы избежать копирования всей информации вручную из столбца C туда, где она должна быть выровнена по столбцу A. Я хочу выровнять значения столбцов B и C со списком станций в столбце A, вставляя пустые пробелы в столбцы B и C по мере необходимости, Впоследствии столбец B может быть исключен.

В качестве примера:

ColA ColB ColC 1 1 a 2 2 d 3 4 r 4 6 e 5 7 x 6 9 r 7 10 e 8 11 f 9 13 e 10 15 e  ...,...,... 

Должен ли потом выглядеть так ...

ColA ColB ColC 1 1 a 2 2 d 3 4 4 r 5 6 6 e 7 7 x 8 9 9 r 10 10 e 11 11 f 12 13 13 e 14 15 15 e  ...,...,... 
3
Нужно ли сортировать существующие данные, или вы не возражаете, если в отсортированных данных используется формула для ссылки на несортированные данные, а несортированные данные остаются на листе? ([как это] (https://i.stack.imgur.com/trKOB.png)) 3D1T0R 6 лет назад 0
Stockfisch, я сделал небольшую уборку, и я надеюсь, что разъяснения. Я думаю, что ваше описание и выбор слов, возможно, сбили с толку, что привело к ответу Раддевуса. Ваш пример показывает, что все данные упорядочены в порядке возрастания, и из описанного вами процесса звучит, как будто вы получаете данные, упорядоченные в порядке станции, а не полный набор. Я думаю, что вы использовали термин «сортировка» для обозначения «выровнять» (никакой реальной сортировки не требуется, просто добавьте пробелы, чтобы станции выстроились в линию). Пожалуйста, просмотрите и убедитесь, что редактирование все правильно. fixer1234 6 лет назад 0

2 ответа на вопрос

1
3D1T0R

TL; версия DR: поместите исходные данные в A3: B102, заполните D3: D102 числами 1-100, вставьте =IFNA(VLOOKUP($D3,$A$3:$B$102,2, FALSE), "")в E3, затем скопируйте E3 в E4: E102.


Исходя из вашего описания того, что вы хотите, я бы рекомендовал отделить сортировку от исходных данных и вместо этого иметь список станций отбора проб и использовать a VLOOKUPдля поиска данных для каждой из них.

Вам нужны три вещи.

  1. Место для вставки вашего несортированного и / или неполного списка чтений данных.
    • Здесь должно быть достаточно места для полного набора данных.
    • В этом случае, поскольку у вас есть 100 станций отбора проб и 1 показание на станцию, вам понадобится 100 строк и два столбца.
    • Для моего примера это будет диапазон A3: B102 .
  2. Список станций отбора проб и место для размещения соответствующих показаний рядом с ними.
    • Этот список должен включать все станции отбора проб в том порядке, в котором вы хотите их видеть.
    • Опять же, мы смотрим на 100 станций отбора проб, пронумерованных от 1 до 100, и хотим, чтобы они были в числовом порядке. Это означает, что нам нужно заполнить один столбец с 1, 2, 3 и т. Д. До 100, и столбец рядом с ним будет содержать формулу.
    • Для моего примера список станций отбора будет идти в D3: D102, а формула будет скопирована во все ячейки в E3: E102 .
  3. Формула, которая входит в столбец «Чтение» отсортированных данных, который ищет соответствующие данные в несортированных данных.
    • Вы должны понимать как абсолютные, так и относительные ссылки, так как эта формула использует оба:
      • Большинство людей знакомы с относительными ссылками, такими как D3 . Эти ссылки изменяются, когда они копируются из одной ячейки в другую.
        (например, если вы поставите =D3в Е3, а затем скопировать Е3 в Е4, новая копия в E4 будет читать =D4.)
      • Абсолютные ссылки содержат $столбец и / или строку, чтобы предотвратить их изменение при копировании.
        (Например, столбец никогда не изменится при копировании =$D3, но строка изменится; аналогично =D$3, столбец изменится, но строка не изменится; и, наконец =$D$3, всегда будет ссылаться на эту ячейку, никогда не меняясь при копировании.)
    • Формула помещается в верхний ряд показаний отсортированных данных и затем должна быть скопирована до следующих 99 ячеек под ней.
    • Формула для поиска правильных данных, которые идут в E3, есть =VLOOKUP($D3,$A$3:$B$102,2, FALSE), но это помещает #N/Aв ячейки, которые ссылаются на несуществующие данные. Если вы хотите пустые места вместо того #N/A, чтобы поставить VLOOKUPвнутри IFNA.

Завершенная формула для этого примера, =IFNA(VLOOKUP($D3,$A$3:$B$102,2, FALSE), "")и вот как выглядят результаты:
Исходные данные, (пустой столбец), отсортированные данные

@ fixer1234: метод, который я использовал, прекрасно обрабатывает все записи, как в последовательности, так и вне ее. Я решил включить несколько записей «вне последовательности», чтобы показать, что это не помешает его правильной работе. В отношении станции 3, я сгенерировал набор данных, изображенный сам, я не понимаю, почему вы сравниваете его с данными в вопросе, поскольку он, очевидно, сильно отличается. Re: «начальная копия / вставка», нет, вы не можете пропустить вставку исходных данных, так как именно так данные попадают в лист для начала. 3D1T0R 6 лет назад 0
@ fixer1234: Кроме того, реорганизация, как вы предлагаете, чтобы затем удалить исходные данные, не имеет смысла и не будет работать, поскольку отсортированные данные являются только справочными, то есть, как только вы удалите исходные данные, они будут удалены отсортированные данные тоже. 3D1T0R 6 лет назад 0
Мозг из кофе. Да, результаты исчезли бы без копирования (D'oh!), Но B: C можно было бы скрыть :-). При обработке значений вне последовательности это не было обязательным требованием, и казалось, что решение кажется более сложным и трудным для понимания, но в этом нет ничего плохого. Я заметил твой ответ, который был подходящим, но не получил ответа. Это казалось длинным и сложным, что могло отпугнуть ОП. Просто VLOOKUP в полковнике D казалось намного проще объяснить. (Продолжение) fixer1234 6 лет назад 0
0
raddevus
  1. Определите диапазон данных, который вы хотите отсортировать (Меню / Данные / Определить диапазоны)
  2. Настройте параметры сортировки в Меню / Данные / Сортировка,
  3. выберите столбцы в нужном вам порядке (вкладка «Критерии сортировки»)
  4. отметьте правильно, если Range содержит метки столбцов.
  5. пометьте «Копировать сортировку» в поле ввода целевого диапазона (все столбцы копируются)
Я не могу заставить его работать. Я выбрал ColumnA и определил его как диапазон данных, по которому я хочу отсортировать данные. Затем я выбираю columnB и columnC и выбираю Sort, выбираю опции на вкладке Sort Criteria и отмечаю «Range содержит метки столбца», а после пометки «Copy sort to» выбираю ColumnA из списка (второе поле заполняется автоматически диапазоном данных столбца A) и выберите Ok. Единственное, что происходит, это то, что ColumnB и ColumnC заменяют ColumnA. Stockfisch 6 лет назад 0
Я думаю, что это не делает то, что я хочу. Он просто копирует отсортированный список в другое место таблицы, но не рассматривает сортировку столбца в соответствии с данными в другом столбце. Stockfisch 6 лет назад 0
Это решение потребовало бы, чтобы вы игнорировали столбец A и сортировали столбцы B & C по столбцу B, но не помещали нужные вам пространства там, где у вас нет данных. 3D1T0R 6 лет назад 0

Похожие вопросы