Вопрос относительно сортировки чисел по строке / работа с ограничителями?

#sorting #google-sheets #google-sheets-formula

#сортировка #google-таблицы #google-sheets-формула

Вопрос:

В настоящее время я переучиваюсь в Google sheets, и мне было интересно, есть ли способ отсортировать набор чисел по строке для работы с тай-брейками (т. Е. Записью выигрыша / проигрыша / ничьей)

Используя функцию СОРТИРОВКИ, я смог правильно отсортировать данные на основе выигрышей, но я хочу иметь возможность корректировать ее еще больше. В настоящее время у меня есть что-то вроде этого…

  • 3-0-0
  • 1-4-0
  • 1-3-0
  • 1-2-0
  • 1-1-0

когда я хочу иметь что-то вроде этого, где значения с наименьшей записью потерь вместо этого идут сверху…

  • 3-0-0
  • 1-1-0
  • 1-2-0
  • 1-3-0
  • 1-4-0

Есть ли другая функция или обходной путь для достижения чего-то подобного?

Ответ №1:

 =SORT(A1:A5,INDEX(SPLIT(A1:A5,"-"),,1),0,INDEX(SPLIT(A1:A5,"-"),,2),1)
  
  • SPLIT(A1:A5,"-") Автор: -
  • INDEX(SPLIT(A1:A5,"-"),,1) получаем первый столбец разделенного массива
  • INDEX(SPLIT(A1:A5,"-"),,2) получить второй столбец
  • =SORT(A1:A5,col1,0,col2,1) Сортировка A1: A5 в порядке убывания на основе столбца 1 и в порядке возрастания на основе столбца 2

Комментарии:

1. Использовал его, и это прекрасно сработало. Я уже экспериментировал с формулой РАЗДЕЛЕНИЯ, но у меня было ощущение, что для работы должна была быть другая формула. Спасибо!

2. Любопытно спросить, как я мог бы получить наибольшее значение с помощью этой формулы? Могу ли я использовать другое РАЗДЕЛЕНИЕ или ПРАВО в формуле СОРТИРОВКИ?

3. @MrWV INDEX(SPLIT(A1:A5,"-"),,3)

Ответ №2:

Хотя на «человеческом языке» что-то вроде 3-0-0 можно было бы назвать «набором чисел», на «языке электронных таблиц» это текстовое значение.

Чтобы иметь возможность использовать встроенные функции сортировки в Google Sheets, вы должны разделить значения на столбцы, и угадайте, что для этого есть встроенная функция:

  1. Выберите столбец
  2. Нажмите на Данные> Разделить текст на столбцы
  3. Выберите пользовательский разделитель и установите -

Есть и другие варианты, например, использование формул и сценариев.

Пример формулы

 =ArrayFormula(QUERY(
{A1:A5,REGEXEXTRACT(A1:A5,"-(d{1,})-")},
"select Col1 order by Col2",0)
)
  

В приведенной выше формуле используется регулярное выражение для извлечения чисел между - , затем используйте запрос для сортировки значений в A1:A5 порядке возрастания, используя эти значения.

Комментарии:

1. В этом случае я пошел и использовал некоторые формулы, такие как SORT и SORTN, чтобы найти обходной путь, но обычно это приводит к наибольшему значению потерь сверху (1-4-0, 1-3-0, 1-2-0 и т.д.). Есть ли какие-либо другие формулы, которые нужно искать и следить за получением желаемого результата?