Как найти последовательность в excel

history 24 октября 2021 г.
    Группы статей

  • Последовательности Чисел

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

На картинке выше Искомая последовательность размещена в строке 7 и выделена зеленым (шесть чисел). Поиск производится в столбце В, начиная с ячейки В11. На картинке показана найденная последовательность, которая также выделена зеленым для наглядности.

Найти последовательность можно разными способами, в статье приведено их 2. 

Примечание: Приведенные в статье формулы будут работать во всех версиях MS EXCEL — EXCEL 365, Excel 2021/2019/2016/2013/2010/2007 и Excel 97–2003.

Способ 1

В 11-й строке (с этой строки начинается список) выведем первые 10 значений из списка. Это можно сделать формулой массиваТРАНСП() или простыми формулами. 

Совет: О транспонировании строк подробно написано в этом разделе https://excel2.ru/gruppy-statey/transponirovanie. В этих статьях показано как можно транспонировать диапазоны и без формул массива.

Чтобы ввести функцию ТРАНСП()

  • выделите диапазон ячеек С11:L11,
  • затем в Строке формул введите =ТРАНСП(B11:B20),
  • нажмите CTRL+SHIFT+ENTER. 

После копирования указанных ячеек вниз (также нужно сначала выделить диапазон С11:L11 и протянуть вниз с помощью Маркера заполнения. В итоге будет сформирован массив чисел как на рисунке выше. В строке 12 будут размещены значения из списка, начиная со второго, в строке 13, начиная с третьего и т.д.

Теперь займемся построчным сравнением. В способе 1 это реализовано замысловатой формулой =НЕ(СУММПРОИЗВ(—(СМЕЩ(C11;;;;$A$8)<>СМЕЩ($C$8;;;;$A$8)))) в столбце N.

Разберем подробнее. Так как длина исходной последовательности может быть произвольной, то нам нужно «вырезать» из диапазона С8:L8 только те ячейки, которые содержат значения последовательности, а не пустые ячейки. Это сделано формулой СМЕЩ($C$8;;;;$A$8), где в А8 содержится длина последовательности. О функции СМЕЩ() читайте здесь.

Аналогично формируется диапазон для сравнения СМЕЩ(C11;;;;$A$8). Обратите внимание на отсутствие знаков $ абсолютной адресации. Т.к. этот диапазон должен изменяться при копировании формулы вниз (в отличие от первого диапазона).

Идем дальше — посмотрим на выражение (СМЕЩ(C11;;;;$A$8)<>СМЕЩ($C$8;;;;$A$8)). Для первого сравнения (строка 11 и исходная последовательность) это выражение даст {ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА}, т.е. ни одно из значений не совпало (этот массив можно получить выделив в Строке формул это выражение и нажать F9). Оно и понятно, исходная последовательность 5; 6; 11; 6; 8; 1 ничего не имеет общего со значениями 11-й строки 1; 2; 34; 5; 6; 11 (если сравнивать поэлементно).

Совсем другое дело, если сравнивать со строкой 14. Выражение вернет {ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ}, что означает, что первый элемент исходной последовательности (5) равен значению из ячейки С14, второй (6) равно значению из ячейки D14, и т.д.

Затем подвергаем полученный массив преобразованию с помощью двойной смены знака (—), при этом ЛОЖЬ будет переведена в число 0, а ИСТИНА — в 1 (так устроен EXCEL: он хранит ИСТИНА как 1, а ЛОЖЬ как 0). Вместо двукратного умножения на -1, можно было прибавить 0 или возвести в степень 1. Любое математическое действие со значениями логического типа данных будет преобразовывать их в число 0 или 1.

Функция СУММПРОИЗВ() просто сложит все 0 или 1. В результате получим 0 только если все значения попарно равны между собой. Можно вместо СУММПРОИЗВ() использовать функцию СУММ(), но тогда нам пришлось бы вводить ее как формулу массива.

Наконец, функция НЕ() переводит числовые значения в логический тип данных, изменяя на противоположное значение: 0 — будет переведен в ИСТИНА, а любое другое число в ЛОЖЬ. Можно обойтись и без этой функции, тогда будет выведено число от 0 (все значения совпали) до 6 (ни одно не совпало). 

Формула в ячейке N8 =ПОИСКПОЗ(ИСТИНА;N11:N55;0) вернет номер позиции первой ячейки со значением ИСТИНА (их может быть несколько, об этом ниже). Начиная с этой позиции списка будет располагаться искомая последовательность. Ее можно выделить условным форматированием.

Чтобы настроить Условное форматирование нам потребуется написать простое правило =И($A11>=$N$8;$A11<$N$8+$A$8).

Вариантов написания формулы для поиска последовательности множество, например, формула =(СУММПРОИЗВ(—(СМЕЩ(C11;;;;$A$8)=СМЕЩ($C$8;;;;$A$8))))=$A$8, которая вернет ИСТИНА в тех же строках, что и предыдущая формула.

На листе «все найденные» приведен поиск сразу всех вхождений последовательности.

Для реализации этого решения добавлено несколько формул:

  • используйте формулу =СУММПРОИЗВ(—N11:N55) чтобы найти общее количество исходных последовательностей в списке (ячейка О6)
  • формулы в столбце О: =СЧЁТЕСЛИ($N$11:N11;ИСТИНА), будут показывать сколько последовательностей найдено в строках выше.
  • в ячейке О7 (серая ячейка) для удобства сформирован выпадающий список, это реализовано формулой =СМЕЩ($A$11;;;$O$6). Если, например, найдено 3 совпадения, то будет сформирован список 1; 2; 3. Выбирая нужный повтор в списке будут подсвечены соответствующие найденные последовательности.
  • если кому не удобно пользоваться выпадающим списком можно нажимать на элемент управления Счетчик.

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

Способ 2

На листе Вариант2 приведено другое решение этой задачи (подсвечивается только первая найденная последовательность).

В этом варианте нет формулы массива ТРАНСП(). Исходный список многократно повторяется начиная со строки 14 и ниже (при этом последовательно отбрасывается первое значение из предыдущей строки и производится смещение всего списка на 1 позицию влево). Такой подход позволяет сравнивать исходный список (столбец D с зелеными ячейками) со столбцами значений, вырезанными из исходного списка.

При увеличении длины исходного списка соответственно растет количество столбцов в этих строках. При большой длине списка это не удобно.

Количество совпавших значений выводится в строке 11. Если это число совпадений равно длине искомой последовательности, то это значение подсвечивается красным. Найденная позиция отображается в строке 13.

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

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще…Меньше

Функция ПОСЛЕДОВ позволяет создать список последовательных чисел в массиве, например 1, 2, 3, 4.

В приведенном ниже примере создан массив из 4 строк и 5 столбцов с помощью формулы =ПОСЛЕДОВ(4;5).

Пример использования функции SEQUENCE с массивом 4 x 5

=ПОСЛЕДОВ(строки;[столбцы];[начало];[шаг])

Аргумент

Описание

строки

Обязательный

Количество возвращаемых строк

[столбцы]

Необязательный

Количество возвращаемых столбцов

[начало]

Необязательный

Первое число в последовательности

[шаг]

Необязательный

Величина приращения каждого последующего значения в массиве

Примечания: 

  • Любому отсутствующему необязательному аргументу по умолчанию присваивается значение 1. Если опустить аргумент rows, необходимо указать хотя бы один другой аргумент.

  • Массив может рассматриваться как строка со значениями, столбец со значениями или комбинация строк и столбцов со значениями. В приведенном выше примере массивом для формулы ПОСЛЕДОВ является диапазон C1:G4.

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

  • Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.

Пример

Ниже приведен пример быстрого создания набора данных с использованием функции ПОСЛЕДОВ совместно с функциями ТЕКСТ, ДАТА, ГОД и СЕГОДНЯ, позволяющий получить динамический список месяцев для строки заголовка, в котором исходной датой всегда будет текущий год. Наша формула: =ТЕКСТ(ДАТА(ГОД(СЕГОДНЯ()),ПОСЛЕДОВ(1,6),1),»mmm»).

Использование функции ПОСЛЕДОВ с функциями ТЕКСТ, ДАТА, ГОД и СЕГОДНЯ для создания динамического списка месяцев для строки заголовка.

Ниже приведен пример использования в функции ПОСЛЕДОВ вложенных функций ЦЕЛОЕ и СЛЧИС для создания массива из 5 строк и 6 столбцов со случайным набором возрастающих целых чисел. Наша формула: =ПОСЛЕДОВ(5,6,ЦЕЛОЕ(СЛЧИС()*100),ЦЕЛОЕ(СЛЧИС()*100)).

Пример использования функции ПОСЛЕДОВ с вложенными функциями ЦЕЛОЕ и СЛЧИС для создания примера набора данных

Кроме того, можно использовать формулу =ПОСЛЕДОВ(5;1;1001;1000), чтобы создать последовательный список кодов Главной книги (GL) в примерах.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция ФИЛЬТР

Функция СЛУЧМАССИВ

Функция СОРТ

Функция СОРТПО

Функция УНИК

Ошибки #ПЕРЕНОС! в Excel

Динамические массивы и поведение массива с переносом

Оператор неявного пересечения: @

Нужна дополнительная помощь?

Содержание

  1. Поиск последовательности чисел в списке MS EXCEL
  2. Способ 1
  3. Способ 2
  4. Числовые последовательности в EXCEL (порядковые номера 1,2,3. и др.)
  5. Используем формулы
  6. Используем клавишу CTRL
  7. Используем правую клавишу мыши
  8. Используем начало последовательности
  9. Использование инструмента Прогрессия
  10. Обманчивая простота функции ПОСЛЕД (SEQUENCE)
  11. Необходимое предисловие
  12. Обманчивая простота
  13. Пример 1. Посимвольный разбор текста
  14. Пример 2. Сумма каждой N-ой ячейки
  15. Пример 3. Трансформация столбца в таблицу
  16. Пример 4. Многоуровневая нумерация
  17. Заключение и выводы

Поиск последовательности чисел в списке MS EXCEL

history 24 октября 2021 г.

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

На картинке выше Искомая последовательность размещена в строке 7 и выделена зеленым (шесть чисел). Поиск производится в столбце В, начиная с ячейки В11. На картинке показана найденная последовательность, которая также выделена зеленым для наглядности.

Найти последовательность можно разными способами, в статье приведено их 2.

Примечание : Приведенные в статье формулы будут работать во всех версиях MS EXCEL — EXCEL 365, Excel 2021/2019/2016/2013/2010/2007 и Excel 97–2003.

Способ 1

В 11-й строке (с этой строки начинается список) выведем первые 10 значений из списка. Это можно сделать формулой массива ТРАНСП() или простыми формулами.

Совет : О транспонировании строк подробно написано в этом разделе https://excel2.ru/gruppy-statey/transponirovanie. В этих статьях показано как можно транспонировать диапазоны и без формул массива.

Чтобы ввести функцию ТРАНСП()

  • выделите диапазон ячеек С11:L11,
  • затем в Строке формул введите =ТРАНСП(B11:B20),
  • нажмите CTRL+SHIFT+ENTER.

После копирования указанных ячеек вниз (также нужно сначала выделить диапазон С11:L11 и протянуть вниз с помощью Маркера заполнения. В итоге будет сформирован массив чисел как на рисунке выше. В строке 12 будут размещены значения из списка, начиная со второго, в строке 13, начиная с третьего и т.д.

Теперь займемся построчным сравнением. В способе 1 это реализовано замысловатой формулой = НЕ(СУММПРОИЗВ(—(СМЕЩ(C11;;;;$A$8)<>СМЕЩ($C$8;;;;$A$8)))) в столбце N.

Разберем подробнее. Так как длина исходной последовательности может быть произвольной, то нам нужно «вырезать» из диапазона С8:L8 только те ячейки, которые содержат значения последовательности, а не пустые ячейки. Это сделано формулой СМЕЩ($C$8;;;;$A$8) , где в А8 содержится длина последовательности. О функции СМЕЩ() читайте здесь.

Аналогично формируется диапазон для сравнения СМЕЩ(C11;;;;$A$8) . Обратите внимание на отсутствие знаков $ абсолютной адресации. Т.к. этот диапазон должен изменяться при копировании формулы вниз (в отличие от первого диапазона).

Идем дальше — посмотрим на выражение (СМЕЩ(C11;;;;$A$8)<>СМЕЩ($C$8;;;;$A$8)). Для первого сравнения (строка 11 и исходная последовательность) это выражение даст <ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА>, т.е. ни одно из значений не совпало (этот массив можно получить выделив в Строке формул это выражение и нажать F9). Оно и понятно, исходная последовательность 5; 6; 11; 6; 8; 1 ничего не имеет общего со значениями 11-й строки 1; 2; 34; 5; 6; 11 (если сравнивать поэлементно).

Совсем другое дело, если сравнивать со строкой 14. Выражение вернет <ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ>, что означает, что первый элемент исходной последовательности (5) равен значению из ячейки С14, второй (6) равно значению из ячейки D14, и т.д.

Затем подвергаем полученный массив преобразованию с помощью двойной смены знака (—), при этом ЛОЖЬ будет переведена в число 0, а ИСТИНА — в 1 (так устроен EXCEL: он хранит ИСТИНА как 1, а ЛОЖЬ как 0). Вместо двукратного умножения на -1, можно было прибавить 0 или возвести в степень 1. Любое математическое действие со значениями логического типа данных будет преобразовывать их в число 0 или 1.

Функция СУММПРОИЗВ() просто сложит все 0 или 1. В результате получим 0 только если все значения попарно равны между собой. Можно вместо СУММПРОИЗВ() использовать функцию СУММ(), но тогда нам пришлось бы вводить ее как формулу массива.

Наконец, функция НЕ() переводит числовые значения в логический тип данных, изменяя на противоположное значение: 0 — будет переведен в ИСТИНА, а любое другое число в ЛОЖЬ. Можно обойтись и без этой функции, тогда будет выведено число от 0 (все значения совпали) до 6 (ни одно не совпало).

Формула в ячейке N8 = ПОИСКПОЗ(ИСТИНА;N11:N55;0) вернет номер позиции первой ячейки со значением ИСТИНА (их может быть несколько, об этом ниже). Начиная с этой позиции списка будет располагаться искомая последовательность. Ее можно выделить условным форматированием.

Чтобы настроить Условное форматирование нам потребуется написать простое правило = И($A11>=$N$8;$A11 .

Вариантов написания формулы для поиска последовательности множество, например, формула = (СУММПРОИЗВ(—(СМЕЩ(C11;;;;$A$8)=СМЕЩ($C$8;;;;$A$8))))=$A$8 , которая вернет ИСТИНА в тех же строках, что и предыдущая формула.

На листе «все найденные» приведен поиск сразу всех вхождений последовательности.

Для реализации этого решения добавлено несколько формул:

  • используйте формулу =СУММПРОИЗВ(—N11:N55) чтобы найти общее количество исходных последовательностей в списке (ячейка О6)
  • формулы в столбце О: =СЧЁТЕСЛИ($N$11:N11;ИСТИНА), будут показывать сколько последовательностей найдено в строках выше.
  • в ячейке О7 (серая ячейка) для удобства сформирован выпадающий список, это реализовано формулой =СМЕЩ($A$11;;;$O$6). Если, например, найдено 3 совпадения, то будет сформирован список 1; 2; 3. Выбирая нужный повтор в списке будут подсвечены соответствующие найденные последовательности.
  • если кому не удобно пользоваться выпадающим списком можно нажимать на элемент управления Счетчик.

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

Способ 2

На листе Вариант2 приведено другое решение этой задачи (подсвечивается только первая найденная последовательность).

В этом варианте нет формулы массива ТРАНСП(). Исходный список многократно повторяется начиная со строки 14 и ниже (при этом последовательно отбрасывается первое значение из предыдущей строки и производится смещение всего списка на 1 позицию влево). Такой подход позволяет сравнивать исходный список (столбец D с зелеными ячейками) со столбцами значений, вырезанными из исходного списка.

При увеличении длины исходного списка соответственно растет количество столбцов в этих строках. При большой длине списка это не удобно.

Количество совпавших значений выводится в строке 11. Если это число совпадений равно длине искомой последовательности, то это значение подсвечивается красным. Найденная позиция отображается в строке 13.

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

Источник

Числовые последовательности в EXCEL (порядковые номера 1,2,3. и др.)

history 10 апреля 2013 г.

Создадим числовые последовательности различных видов: 1, 2, 3, . 1, 3, 5, 7, . I, II, III, IV, . 100, 200, 300. 00-01 , 00-02, . 1, 1, 1, 2, 2, 2. и пр.

Используем формулы

Сформируем последовательность 1, 2, 3, . Пусть в ячейке A2 введен первый элемент последовательности — значение 1 . В ячейку А3 , вводим формулу =А2+1 и копируем ее в ячейки ниже (см. файл примера ).

Так как в формуле мы сослались на ячейку выше с помощью относительной ссылки , то EXCEL при копировании вниз модифицирует вышеуказанную формулу в =А3+1 , затем в =А4+1 и т.д., тем самым формируя числовую последовательность 2, 3, 4, .

Если последовательность нужно сформировать в строке, то формулу нужно вводить в ячейку B2 и копировать ее нужно не вниз, а вправо.

Чтобы сформировать последовательность нечетных чисел вида 1, 3, 7, . необходимо изменить формулу в ячейке А3 на =А2+2 . Чтобы сформировать последовательность 100, 200, 300, . необходимо изменить формулу на =А2+100 , а в ячейку А2 ввести 100.

Другим вариантом создания последовательности 1, 2, 3, . является использование формулы =СТРОКА()-СТРОКА($A$1) (если первый элемент последовательности располагается в строке 2 ). Формула =СТРОКА(A2)-СТРОКА($A$1) позволяет создать вертикальную последовательность, в случае если ее первый элемент последовательности располагается в любой строке. Тот же результат дают формулы =ЧСТРОК($A$1:A1) , =СТРОКА(A1) и =СТРОКА(H1) . Формула =СТОЛБЕЦ(B1)-СТОЛБЕЦ($A$1) создает последовательность, размещенную горизонтально. Тот же результат дают формулы =ЧИСЛСТОЛБ($A$1:A1) , =СТОЛБЕЦ(A1) .

Чтобы сформировать последовательность I, II, III, IV , . начиная с ячейки А2 , введем в А2 формулу =РИМСКОЕ(СТРОКА()-СТРОКА($A$1))

Сформированная последовательность, строго говоря, не является числовой, т.к. функция РИМСКОЕ() возвращает текст. Таким образом, сложить, например, числа I+IV в прямую не получится.

Другим видом числовой последовательности в текстовом формате является, например, последовательность вида 00-01 , 00-02, . Чтобы начать нумерованный список с кода 00-01 , введите формулу =ТЕКСТ(СТРОКА(A1);»00-00″) в первую ячейку диапазона и перетащите маркер заполнения в конец диапазона.

Выше были приведены примеры арифметических последовательностей. Некоторые другие виды последовательностей можно также сформировать формулами. Например, последовательность n2+1 ((n в степени 2) +1) создадим формулой =(СТРОКА()-СТРОКА($A$1))^2+1 начиная с ячейки А2 .

Создадим последовательность с повторами вида 1, 1, 1, 2, 2, 2. Это можно сделать формулой =ЦЕЛОЕ((ЧСТРОК(A$2:A2)-1)/3+1) . С помощью формулы =ЦЕЛОЕ((ЧСТРОК(A$2:A2)-1)/4+1)*2 получим последовательность 2, 2, 2, 2, 4, 4, 4, 4. , т.е. последовательность из четных чисел. Формула =ЦЕЛОЕ((ЧСТРОК(A$2:A2)-1)/4+1)*2-1 даст последовательность 1, 1, 1, 1, 3, 3, 3, 3, .

Примечание . Для выделения повторов использовано Условное форматирование .

Формула =ОСТАТ(ЧСТРОК(A$2:A2)-1;4)+1 даст последовательность 1, 2, 3, 4, 1, 2, 3, 4, . Это пример последовательности с периодически повторяющимися элементами.

Используем клавишу CTRL

Пусть, как и в предыдущем примере, в ячейку A2 введено значение 1 . Выделим ячейку A2 . Удерживая клавишу CTRL , скопируем Маркером заполнения (при этом над курсором появится маленький плюсик), значение из A 2 в ячейки ниже. Получим последовательность чисел 1, 2, 3, 4 …

ВНИМАНИЕ! Если на листе часть строк скрыта с помощью фильтра , то этот подход и остальные, приведенные ниже, работать не будут. Чтобы разрешить нумерацию строк с использованием клавиши CTRL , выделите любую ячейку с заголовком фильтра и дважды нажмите CTRL + SHIFT + L (сбросьте фильтр).

Используем правую клавишу мыши

Пусть в ячейку A2 введено значение 1 . Выделим ячейку A2 . Удерживая правую клавишу мыши, скопируем Маркером заполнения , значение из A2 в ячейки ниже. После того, как отпустим правую клавишу мыши появится контекстное меню, в котором нужно выбрать пункт Заполнить . Получим последовательность чисел 1, 2, 3, 4 …

Используем начало последовательности

Если начало последовательности уже задано (т.е. задан первый элемент и шаг последовательности), то создать последовательность 1, 2, 3, . можно следующим образом:

  • пусть в ячейке А2 введено значение 1 , а в ячейке А3 значение 2 ;
  • выделяем ячейки A2 и A3 ;
  • беремся за правый нижний угол и Маркером заполнения протягиваем вниз.

Получаем результат как в предыдущем случае. Если в ячейке А3 введено значение 3 , т.е. задан шаг последовательности равный 2, то мы получим последовательность нечетных чисел.

Создадим последовательность вида 1, 2, 3, 1, 2, 3. для этого введем в первые три ячейки значения 1, 2, 3, затем маркером заполнения , удерживая клавишу CTRL , скопируем значения вниз.

Использование инструмента Прогрессия

Воспользуемся стандартным средством EXCEL для создания прогрессий, в то числе и арифметических.

  • вводим в ячейку А2 значение 1 ;
  • выделяем диапазон A2:А6 , в котором будут содержаться элементы последовательности;
  • вызываем инструмент Прогрессия ( Главная/ Редактирование/ Заполнить/ Прогрессия. ), в появившемся окне нажимаем ОК.

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

СОВЕТ: О текстовых последовательностях вида первый, второй, . 1), 2), 3), . можно прочитать в статье Текстовые последовательности . О последовательностях значений в формате дат (и времени) вида 01.01.09, 01.02.09, 01.03.09, . янв, апр, июл, . пн, вт, ср, . можно прочитать в статье Последовательности дат и времен . О массивах значений, содержащих последовательности конечной длины, используемых в формулах массива , читайте в статье Массив значений (или константа массива или массив констант) .

Источник

Обманчивая простота функции ПОСЛЕД (SEQUENCE)

Необходимое предисловие

Эта статья является логическим продолжением предыдущего материала про новые динамические массивы (ДМ), появившиеся в Excel в Office 365. Если вы ещё с не ознакомились (кому лень читать — там есть видео), то очень советую сделать это сейчас, чтобы понимать о чём, собственно, идёт речь и как заполучить все эти радости в вашем Excel.

Обновление Office 365, которое подарило Microsoft Excel новый вычислительный движок с поддержкой динамических массивов, также добавило к нашему арсеналу 7 новых функций, заточенных специально для работы с массивами. Про три самых важных функции: СОРТ (SORT) , ФИЛЬТР (FILTER) и УНИК (UNIQUE) я уже писал, а в этой статье хотел разобрать ещё одну весьма приятную обнову — функцию ПОСЛЕД (SEQUENCE) .

Обманчивая простота

Эта функция предназначена для совершенно, на первый взгляд, банальной задачи — генерации числовых последовательностей (рядов, арифметических прогрессий) с определённым шагом и от заданного стартового значения. Синтаксис функции предельно прост:

=ПОСЛЕД( строки ; [столбцы] ; [начало] ; [шаг] )

  • строки — число строк в диапазоне, который надо заполнить числовой последовательностью — это единственный обязательный аргумент;
  • с толбцы — число столбцов в диапазоне (если нужно сгенерить двумерный массив)
  • н ачало — стартовое значение (если не задано, то 1)
  • шаг — шаг изменения ряда (если не задан, то 1)

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

Да, я знаю — выглядит это все как-то скучновато, но не доверяйте первому обманчивому впечатлению. У этой функции есть масса практических вариантов применения — давайте рассмотрим несколько случаев, чтобы вы ухватили идею.

Пример 1. Посимвольный разбор текста

Уверен, вы не раз встречались при заполнении бланков и всевозможных анкет с необходимостью «распатронить» текст на отдельные символы по отдельным ячейкам. С нашей функцией ПОСЛЕД эта задача решается в два счёта:

В английской версии это будет

Логика тут простая:

  • Сначала функция ПОСЛЕД формирует простой числовой ряд 1, 2, 3 . N, где N — длина исходного текста, определяемая функцией ДЛСТР (LEN) .
  • Затем функция ПСТР (MID) выдёргивает из исходного текста символы по очереди, используя сгенерированную последовательность как порядковый номер извлекаемого символа.

Для аналогичного разбора даты по ячейкам, придется добавить ещё функцию ТЕКСТ (TEXT) для преобразования даты в текст — иначе на выходе мы получим код даты, а не её саму в привычном виде. Ну, а длину в этом случае мы знаем заранее — 10 символов:

Пример 2. Сумма каждой N-ой ячейки

Классическая задача про суммирование ячеек с заданным шагом, несколько способов решения которой я уже описывал. С помощью нашей новой функции ПОСЛЕД решается просто и изящно:

Функция ПОСЛЕД (SEQUENCE) здесь генерит числовую последовательность номеров строк, откуда нам нужно взять данные: 5, 9, 13, 17, 21.

Затем функция ИНДЕКС (INDEX) вытаскивает значения по этим номерам из столбца А, и затем мы их суммируем с помощью СУММ (SUM) .

Пример 3. Трансформация столбца в таблицу

Самый красивый пример — преобразование столбца с данными в двумерную таблицу одной короткой формулой:

Здесь функция ПОСЛЕД сначала формирует двумерную последовательность, где каждое число — это, по сути, номер строки из нашей таблицы данных, откуда нужно взять значение для данной ячейки:

Чтобы не привязываться к жёстко прописанному количеству блоков (людей) в таблице — мы используем функцию СЧЁТЗ (COUNTA) , чтобы вычислить их количество.

А затем мы извлекаем данные из левой таблицы по номеру строки с помощью функции ИНДЕКС (INDEX) . (Если вы с ней ещё, не дай бог, не знакомы, то обязательно посмотрите эту статью).

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

Пример 4. Многоуровневая нумерация

Это пример на перезапускающиеся числовые последовательности. В реальной жизни такое часто встречается, например, во вложенной нумерации пунктов 1.1 — 1.2 — 1.3 и т.д.

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

Для столбца с номером смены нам нужна последовательность с повторениями каждого числа ряда (номер смены) заданное количество раз (число сотрудников в смене). Это можно легко реализовать формулой:

В английской версии это, соответственно :

  1. Функция ПОСЛЕД сначала генерирует числовую последовательность 1, 2, 3 .. 15 (общее число строк, равное произведению количества смен на количество людей в каждой смене)
  2. Мы делим эти числа на число людей в каждой смене и получаем последовательность дробных чисел: 0.2, 0.4, 0.6, 0.8, 1, 1.2 и т.д.
  3. Затем мы округляем эти дробные числа до ближайшего целого функцией ОКРУГЛВВЕРХ (ROUNDUP) .

Для столбца с номерами сотрудников внутри смены нам нужна формула чуть сложнее — с перезапускающейся каждые 5 ячеек заново последовательностью:

Здесь мы сначала вычисляем остаток от деления нашей последовательности 1,2,3. 15 на 5 с помощью функции ОСТАТ (MOD) :

А затем заменяем нули на 5 — значение из ячейки B4 с помощью функции ЕСЛИ (IF) .

Дополнительно, можно подтянуть к нашему графику еще и имена сотрудников из списка с помощью уже знакомой нам функции ИНДЕКС (INDEX) :

Заключение и выводы

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

Если же вы пока ещё не получили обновление, которое добавляет в ваш Excel динамические массивы и эти новые функции, то когда придет время — вы будете готовы 🙂

Источник

Как найти сумму числового и функционального ряда

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

Сумму числового ряда можно легко вычислить в Excel с помощью функции РЯД.СУММ. Рассмотрим на примере, как работает данная функция, а после построим график функций. Научимся применять числовой ряд на практике при подсчете роста капитала. Но для начала немного теории.

Сумма числового ряда

Числовой ряд можно рассматривать как систему приближений к числам. Для его обозначения применяют формулу:

Формула суммирования.

Здесь показана начальная последовательность чисел ряда и правило суммирования:

  • ∑ — математический знак суммы;
  • ai — общий аргумент;
  • i — переменная, правило для изменения каждого последующего аргумента;
  • ∞ — знак бесконечности, «предел», до которого проводится суммирование.

Запись Суммирование последовательности чисел. обозначает: суммируются натуральные числа от 1 до «плюс бесконечности». Так как i = 1, то подсчет суммы начинается с единицы. Если бы здесь стояло другое число (например, 2, 3), то суммировать мы начинали бы с него (с 2, 3).

В соответствии с переменной i ряд можно записать развернуто:

Формула суммирования.= а1 + а2 + а3 + а4 + а5 + … (до «плюс бесконечности).

Определение суммы числового ряда дается через «частичные суммы». В математике они обозначаются Sn. Распишем наш числовой ряд в виде частичных сумм:

S1 = а1

S2 = а1 + а2

S3 = а1 + а2 + а3

S4 = а1 + а2 + а3 + а4

Сумма числового ряда – это предел частичных сумм Sn. Если предел конечен, говорят о «сходящемся» ряде. Бесконечен – о «расходящемся».

Сначала найдем сумму числового ряда:

Формула суммы числового ряда.

М = 10.

Теперь построим в Excel таблицу значений членов ряда:

Общий первый аргумент берем из формулы: i=3.

Все следующие значения i находим по формуле: =B4+$B$1. Ставим курсор в нижний правый угол ячейки В5 и размножаем формулу.

Значения с учетом шага.

Найдем значения. Делаем активной ячейку С4 и вводим формулу: =СУММ(2*B4+1). Копируем ячейку С4 на заданный диапазон.

Вычисления значений аргументов.
Сумма значений аргументов.

Значение суммы аргументов получаем с помощью функции: =СУММ(C4:C11). Комбинация горячих клавиш ALT+«+» (плюс на клавиатуре).



Функция РЯД.СУММ в Excel

Для нахождения суммы числового ряда в Excel применяется математическая функция РЯД.СУММ. Программой используется следующая формула:

Формула функции РЯД.СУММ.

Аргументы функции:

  • х – значение переменной;
  • n – степень для первого аргумента;
  • m – шаг, на который увеличивается степень для каждого последующего члена;
  • а – коэффициенты при соответствующих степенях х.

Важные условия для работоспособности функции:

  • все аргументы обязательные (то есть все должны быть заполнены);
  • все аргументы – ЧИСЛОвые значения;
  • вектор коэффициентов имеет фиксированную длину (предел в «бесконечность» не подойдет);
  • количество «коэффициентов» = числу аргументов.

Вычисление суммы ряда в Excel

Та же функция РЯД.СУММ работает со степенными рядами (одним из вариантов функциональных рядов). В отличие от числовых, их аргументы являются функциями.

Функциональные ряды часто используются в финансово-экономической сфере. Можно сказать, это их прикладная область.

Например, положили в банк определенную сумму денег (а) на определенный период (n). Имеем ежегодную выплату х процентов. Для расчета наращенной суммы на конец первого периода используется формула:

S1 = a (1 + x).

На конец второго и последующих периодов – вид выражений следующий:

S2 = a (1 + x)2;
S3 = a (1 + x)2 и т.д.

Чтобы найти общую сумму:

Sn = a (1 + x) + a (1 + x)2 + a (1 + x)3 + … + a (1 + x)n

Частичные суммы в Excel можно найти с помощью функции БС().

Исходные параметры для учебной задачи:

Исходные данные.

Используя стандартную математическую функцию, найдем накопленную сумму в конце срока сумму. Для этого в ячейке D2 используем формулу: =B2*СТЕПЕНЬ(1+B3;4)

Функция СТЕПЕНЬ.

Теперь в ячейке D3 решим эту же задачу с помощью встроенной функции Excel: =БС(B3;B1;;-B2)

Функция БС.

Результаты одинаковые, как и должно быть.

Как заполнить аргументы функции БС():

Аргументы функции БС.

  1. «Ставка» — процентная ставка, под которую оформлен вклад. Так как в ячейке В3 установлен процентный формат, мы в поле аргумента просто указали ссылку на эту ячейку. Если было бы указано число, то прописывали бы его сотую долю (20/100).
  2. «Кпер» — число периодов для выплат процентов. В нашем примере – 4 года.
  3. «Плт» — периодические выплаты. В нашем случае их нет. Поэтому поле аргумента не заполняем.
  4. «Пс» — «приведенная стоимость», сумма вклада. Так как мы на время расстаемся с этими деньгами, параметр указываем со знаком «-».

Таким образом, функция БС помогла найти нам сумму функционального ряда.

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

Построение графика функций суммы числового ряда

Построим график функций, отражающий рост капитала. Для этого нам нужно построить график функции являющейся суммой построенного ряда. За пример, возьмем те же данные по вкладу:

Исходные данные.

Дальше нам нужна функция для начисления сложных процентов — БС(). Мы узнаем будущею стоимость инвестиций при условии равных платежей и постоянной процентной ставке. Используя функцию БС(), заполним таблицу:

Данные для графика.

В первой строке показана накопленная сумма через год. Во второй – через два. И так далее.

Сделаем еще один столбец, в котором отразим прибыль:

Прибыль от инвестиций.

Как мы считали – в строке формул.

На основании полученных данных построим график функций.

Выделим 2 диапазона: A5:A9 и C5:C9. Переходим на вкладку «Вставка» — инструмент «Диаграммы». Выбираем первый график:

Вставка графика.
График рост капитала.

Сделаем задачу еще более «прикладной». В примере мы использовали сложные проценты. Они начисляются на наращенную в предыдущем периоде сумму.

Возьмем для сравнения простые проценты. Формула простых процентов в Excel: =$B$2*(1+A6*B6)

Формула простых процентов.

Добавим полученные значения в график «Рост капитала».

График сложных и простых процентов.

Какие именно выводы сделает инвестор – очевидно.

Математическая формула частичной суммы функционального ряда (с простыми процентами): Sn = a (1 + x*n), где а – первоначальная сумма вклада, х – проценты, n – период.

Предположим, у вас есть длинный список порядковых номеров для маркировки элементов, таких как номера чеков в выписках по счету, обычно мы прокручиваем и находим недостающие порядковые номера вручную. Иногда это довольно сложно и требует много времени. Вы можете придумать хитрые способы справиться с этим. Да, есть несколько простых способов быстро и удобно определить и найти последовательность отсутствующих чисел в Excel 2007, Excel 2010 и Excel 2013.

Определите последовательность отсутствующих чисел с помощью формулы ЕСЛИ

Определить последовательность отсутствующих чисел с помощью формулы массива

Определить последовательность отсутствующих чисел с помощью Kutools for Быстро Excel

Найдите и выделите отсутствующие числа в последовательности:

Kutools for Excel Функция «Найти отсутствующий порядковый номер может помочь вам быстро и легко найти недостающую последовательность и вставить недостающие числа или пустые строки в существующую последовательность данных или заполнить цвет фона при обнаружении отсутствующей последовательности.

Kutools for Excel : с более чем 200 удобными надстройками Excel, можно бесплатно попробовать без ограничений в течение 60 дней. Скачать и бесплатную пробную версию прямо сейчас!

->


Содержание

  1. Определите последовательность пропущенных чисел с помощью формулы ЕСЛИ
  2. С помощью формула массива
  3. Быстрое определение последовательности отсутствующих чисел с помощью Kutools for Excel
  4. Быстрое определение последовательности отсутствующих чисел с помощью Kutools for Excel

Определите последовательность пропущенных чисел с помощью формулы ЕСЛИ

Как мы все знаем, большинство порядковых номеров имеют фиксированное приращение из 1, например 1, 2, 3,…, N. Следовательно, если вы можете определить, что число не меньше 1, чем следующее за ним число, это означает отсутствие числа.

Мы покажем вам представлены учебные пособия с примером, показанным на следующем снимке экрана:

1. В пустой ячейке введите формулу = IF (A3-A2 = 1, “”, “Отсутствует”) и нажмите клавишу Enter . В этом случае мы вводим формулу в ячейку B2.

Если нет пропущенных чисел, эта формула ничего не вернет; если пропущенные числа существуют, он вернет текст «Отсутствует» в активной ячейке.

2. Выделите ячейку B2 и перетащите маркер заполнения над диапазоном ячеек, который вы хотите содержать эту формулу. Теперь он идентифицирует отсутствующие числа с текстом «Отсутствует» в соответствующих ячейках столбца B. См. Следующий снимок экрана:


С помощью формула массива

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

1. в соседней ячейке введите формулу = SMALL (IF (ISNA (MATCH (ROW (A $ 1: A $ 30), A $ 1: A $ 30,0)), ROW (A $ 1: A $ 30) ), СТРОКА (A1))

A1: A30 = диапазон чисел, последовательность для проверки против – от 1 до 30

2. Одновременно нажмите клавиши Ctrl + Shift + Enter , чтобы завершить формулу. Скопируйте формулу, пока не получите # ЧИСЛО! ошибки, означающие, что были перечислены все отсутствующие числа. См. Снимок экрана:


Быстрое определение последовательности отсутствующих чисел с помощью Kutools for Excel

Только указанные выше методы могут Определите отсутствующую чистую числовую последовательность, если у вас есть такая последовательность, как AA-1001-BB, AA-1002-BB, они могут не работать успешно. Но не волнуйтесь, мощная функция Kutools for Excel Найти отсутствующий порядковый номер может помочь вам быстро определить недостающую последовательность.

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

После установки Kutools for Excel сделайте следующее:

1. Выберите последовательность данных, в которой вы хотите найти недостающую последовательность.

2. Нажмите Kutools > Вставить > Найти отсутствующий порядковый номер , см. Снимок экрана:

3. В диалоговом окне Найти отсутствующий порядковый номер :

(1.) Если вы выбрали Вставить новый столбец со следующим отсутствующим маркером вариант, все отсутствующие порядковые номера были отмечены текстом Missing в новом столбце рядом с вашими данными. См. Снимок экрана:

(2.) Если вы выберете Вставка отсутствующего порядкового номера , все недостающие номера были вставлены в список последовательностей. См. Снимок экрана:

(3.) Если вы выберете Вставка пустых строк при включении отсутствующих порядковых номеров , все пустые строки вставляются, если отсутствуют номера. См. Снимок экрана:

(4.) Если вы выберете Заполнить цвет фона , расположение недостающих чисел будет выделено сразу. См. Снимок экрана:


Быстрое определение последовательности отсутствующих чисел с помощью Kutools for Excel

Kutools for Excel : с более чем 300 удобными надстройками Excel, попробуйте бесплатно без ограничений в течение 30 дней. Загрузите и бесплатную пробную версию прямо сейчас!


Понравилась статья? Поделить с друзьями:
  • Как найти последнюю строку таблицы excel vba
  • Как найти последнюю заполненную ячейку в excel в диапазоне
  • Как найти последнюю непустую ячейку в строке excel
  • Как найти последнюю дату в excel
  • Как найти последнюю заполненную ячейку в excel формула