Як змінити порядок вибраних рядків?


33

Чи є простий спосіб змінити порядок вибраних рядків ? (А як щодо всіх рядків , якщо це простіше.)

Зокрема, у цьому випадку не існує стовпця, який міг би бути використаний для сортування для наведення їх у правильному порядку. Отже, зважаючи на купу рядків у довільному порядку, чи можна змінити цей порядок?

Як приклад...

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

... після розвороту цих 5 рядків "Waitrose 756" повинен прийти першим, а "Moot" - останнім.


"Немає стовпця, який міг би бути використаний для сортування". Чому б просто не додати стовпчик із зростаючими значеннями (1, 2, 3, ...), сортувати за спаданням у цьому стовпці, а потім видалити його?
Патрік

Це дуже поширений запит, тому що так багато людей починають електронну таблицю з рядком для кожного запису, додаючи нові рядки внизу, а потім після 100 рядків розуміють, що хочуть її перевернути, щоб додати рядки вгорі, тому що це потрібно WAY Занадто багато часу для пошуку найнижчого непорожнього рядка кожного разу, коли ви бажаєте додати новий фрагмент даних. На жаль, AFAIK НЕ МОЖЕТ зробити це, якщо ви не хочете, щоб ваші формули та форматування залишалися колишніми після інверсії.
Філ Гец

Відповіді:


24

Щоб змінити порядок обраного діапазону (на відміну від сортування за певним стовпцем), ви можете використовувати такий сценарій:

function reverseOrder()
{
  var range = SpreadsheetApp.getActiveRange();
  var values = range.getValues();
  range.setValues(values.reverse());
}

Якщо додати цей сценарій onOpen, ви створите пункт меню під назвою " Додатково" , який містить елемент, який називається " Зворотній" :

function onOpen ()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menu = [{name: "Reverse", functionName: "reverseOrder"}];
  ss.addMenu("Extra", menu);
}

3
Спасибі. Мені знадобилося кілька хвилин, щоб зрозуміти, як додати їх, щоб з'явився пункт меню (Інструменти -> Менеджер сценаріїв ...), але як тільки я це зробив, він спрацьовує!
Jonik

@AdamL, Як ми можемо це зробити без написання сценаріїв?
Pacerier

1
@AdamL: Чудово підходить для переміщення тексту, але він не може перемістити колір фону клітинки тощо. Як можна розширити сценарій, щоб це також виконати?
Грубер

1
@Pacerier: вибачте за надзвичайно пізню відповідь, але одне рішення - це стовпець-помічник із числами у порядку зростання та сортувати діапазон за цим стовпцем у зменшенні (і тоді ви можете вилучити значення помічників).
АдамЛ

@Gruber: першим варіантом було б сценарій копіювати / вставляти одну клітинку за один раз; другим варіантом буде отримати всі необхідні формати для діапазону, також змінити їх і встановити. Я б сказав, що перший варіант може бути нормальним для малих діапазонів, але страшний для великих діапазонів; другий варіант буде найкращим варіантом для покриття всіх випадків використання.
АдамЛ

21

Ось приклад того, як це зробити без використання скриптів - зауважте, що цей метод передбачає, що ваші дані є лише даними - це може зробити дивні речі, якщо у вас є формули, що посилаються на інші комірки в тому ж діапазоні:

  1. Вставте новий стовпець (заради прикладу, ми його назвемо стовпцем A).
  2. В A1 поставте значення [1]. (Ви можете почати з A10 або A50, якщо ви хочете лише сортувати діапазон)
  3. В A2 поставте формулу [= A1 + 1]. (Відрегулюйте, якщо ви не починали з A1 на кроці 2)
  4. Розкладіть формулу в А2 донизу даних, які ви хочете змінити.

    Тепер усе має бути пронумеровано від 1 до кількості рядків у діапазоні, який ви сортуєте.

  5. Виберіть усі рядки в налаштованому діапазоні.
  6. Клацніть на меню Дані та виберіть "Сортувати діапазон за стовпцем A, Z -> A".

Тепер ваші дані повинні бути відмінені. Через те, як ми встановили формулу нумерації, число буде скинуто, і все ще починається з 1 вгорі ... але фактичні дані в інших стовпцях повинні бути змінені.


2
Це настільки нецензурно легко, що мені довелося поцупити лоб, щоб не думати про це. Фантастична відповідь. +1.
GroggyOtter

2
Для кроків 2-4 формула вам навіть не потрібна. Просто введіть 1 в A1, 2 в A2, виберіть обидва і перетягніть його вниз, наскільки потрібно.
Патрік

4

Наслідуючи приклад Міра, ви можете розмістити функцію SORT в клітинку D3 для скасування, щоб змінити порядок даних у колонці C:

=sort(C3:C,A3:A,False)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.