0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как вернуть первую / последнюю непустую ячейку в строке или столбце?

Поиск последней непустой ячейки в строке или столбце функцией ПРОСМОТР

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

Поиск последней непустой ячейки в строке или столбце Excel

Задача: Найдите значение продаж за последний месяц для каждого филиала, например, для Москвы это будет 78, для Санкт-Петербурга 41 и т.д.

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

Используйте функцию LOOKUP для универсального решения:

Поиск последней непустой ячейки функцией ПРОСМОТР

Логика этой функции очень умна:

  • Прокручивает непустые ячейки в диапазоне (B2:M2) по одной (слева направо) и сравнивает каждую из них с искомым значением (9999999).
  • Если значение следующей проверяемой ячейки совпадает с искомым значением, функция прекращает поиск и отображает содержимое ячейки.
  • Если нет точного совпадения и следующее значение меньше искомого, функция переходит к следующей ячейке в строке.

В общем, если вы введете достаточно большое число в качестве искомого значения, функция пройдет по всей строке и в итоге выведет содержимое последней проверенной ячейки. Лучше всего указывать желаемое число в экспоненциальном формате, например 1E+11 (1*10 11 или сто миллиардов).

Если в таблице вместо чисел есть текст, идея остается той же, но «очень большое число» следует заменить на «очень большой текст»:

Поиск последнего текстового значения в строке

Применительно к тексту «большой» означает код символа. Символы сортируются по возрастанию размера кода в любом шрифте:

  1. Латинские буквы верхнего регистра (A-Z)
  2. Латинские буквы нижнего регистра (a-z)
  3. Кириллические буквы верхнего регистра (A-Y)
  4. Кириллические буквы нижнего регистра (a-y).
Читайте так же:
Как быстро создать поле со списком в Excel?

Соответственно, строчная буква «I» имеет самый большой код, поэтому последовательность «Iaiaaiaa» условно будет «очень большим словом», безусловно, «больше», чем любое текстовое значение в таблице.

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

Полезные методы для строк

Мы рассмотрели основы работы со строками. Теперь давайте посмотрим, какие полезные операции мы можем выполнять со строками, например, находить длину текстовой строки, конкатенировать и разделять строки, заменять один символ из строки другим и многое другое.

Необходимые знания:Базовая компьютерная грамотность, базовое понимание HTML и CSS, понимание того, что такое JavaScript.
Задача:Понять, что строки являются объектами, и изучить, как использовать некоторые из основных методов, доступных для этих объектов для управления строками.

Строки как объекты

В JavaScript почти все является объектом. Примером создания строки является:

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

Только не волнуйтесь! Большинство из них вам не нужно знать сейчас, на ранней стадии обучения. Тем не менее, некоторые из них, возможно, вы будете использовать довольно часто. Мы рассмотрим их.

Представим несколько примеров в консоли разработчика.

Поиск длины строки

Это легко — просто используйте свойство длины. Попробуйте ввести следующие строки:

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

Читайте так же:
Как автоматически защитить определенный рабочий лист в Excel?

Получение определённого строкового символа

Вы можете вернуть любой символ в строке, используя скобочную нотацию. Это означает, что в конце имени переменной добавляются квадратные скобки ([ ]). В квадратных скобках указывается номер символа, который вы хотите вернуть. Например, чтобы получить первую букву, введите :

Компьютеры считают с 0, а не с 1. Чтобы получить последний символ любой строки, мы можем использовать следующую строку, комбинируя этот прием со свойством length :

Длина слова «mozilla» равна 7, но так как счет начинается с 0, позиция последнего символа равна 6, поэтому нам нужна длина-1 . Эта функция может быть использована для поиска первой буквы в серии строк и их сортировки в алфавитном порядке.

Поиск подстроки внутри строки и её извлечение

  1. Иногда вам может понадобиться проверить, находится ли меньшая строка внутри большей строки (обычно мы говорим, что внутри строки есть подстрока). Это можно сделать с помощью метода indexOf() , который имеет один параметр (en-US), который является подстрокой, которую вы хотите найти. Тип: это дает результат 2, потому что подстрока «zilla» начинается с позиции 2 («m» — 0, «o» — 1, «z» — 2) в «mozilla». Этот тип кода можно использовать для фильтрации строк. Например, если у вас есть список URL-адресов и вы хотите вывести только те, которые содержат «mozilla».

Обратите внимание, что второй параметр slice() является необязательным: если он не включен, обрезка будет заканчиваться в конце исходной строки. Существуют и другие варианты; изучите страницу slice (), чтобы узнать, что еще можно узнать.

Изменение регистра

Строковые методы toLowerCase () и toUpperCase () преобразуют все символы в строке в нижний или верхний регистр, соответственно. Вы можете использовать этот метод, если хотите нормализовать все введенные пользователем данные перед сохранением их в базе данных.

Читайте так же:
Как быстро закрыть все книги, кроме активной?

Я хочу посмотреть, что будет, если я введу следующие строки:

Обновление частей строки

Вы можете заменить одну подстроку внутри строки другой подстрокой с помощью метода replace (). Этот метод работает очень просто на базовом уровне, но он обладает некоторыми расширенными свойствами, но мы пока не будем вдаваться в подробности.

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

Обратите внимание, что для того, чтобы обновленное значение отразилось в переменной browserType в реальной программе, вам нужно будет установить значение переменной в результате операции; она не просто автоматически обновит значение подстроки. Для этого нужно написать: browserType = browserType.replace(‘moz’,’van’);

Активные примеры обучения

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

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

Фильтрация приветственных сообщений

В первом упражнении мы начнем с простой задачи: у нас есть много сообщений на поздравительных открытках, но мы хотим отсортировать их так, чтобы отображались только рождественские сообщения. Мы хотим, чтобы вы заполнили условный тест внутри структуры if( . ) для проверки каждой строки и отображения ее в списке, только если это рождественское сообщение.

  1. Сначала подумайте, как можно проверить, является ли сообщение в каждом случае рождественским. Какая строка присутствует во всех этих сообщениях и каким методом ее можно проверить?
  2. Далее необходимо написать условный тест по операнду операнд1 операнд2. Совпадает ли результат слева с результатом справа? Или, в данном случае, вызов метода слева возвращает результат справа?
  3. Совет. В этом случае, вероятно, полезнее проверить, не равна ли какая-либо часть строки (!==) определенному результату.
Читайте так же:
Как в Excel объединить имя и фамилию в одну ячейку?

Исправление регистра (размера букв в тексте—прим. пер.)

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

  1. Преобразуйте всю строку, содержащуюся во входной переменной, в нижний регистр и сохраните ее в новой переменной.
  2. Возьмите первую букву строки из этой новой переменной и сохраните ее в другой переменной.
  3. Используя эту последнюю переменную в качестве подстроки, замените первую букву строки на первую букву строки, измененную на верхний регистр. Сохраните результат этой процедуры подстановки в другой новой переменной.
  4. Измените значение переменной результата так, чтобы оно было равно конечному результату (без ввода).

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

Создание новых строк из старых частей

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

Мы хотим извлечь код и имя станции и поместить их в строку со следующей структурой:

Мы рекомендуем реализовать его следующим образом:

  1. Извлеките трехбуквенный код станции и сохраните его в новой переменной.
  2. Найдите номер символа индекса точки с запятой.
  3. Извлеките человекочитаемое имя, используя индексный номер с запятой в качестве контрольной точки, и сохраните его в новой переменной.
  4. Объедините две новые переменные и строковую литературу в конечную строку.
  5. Измените значение результирующей переменной так, чтобы оно было равно конечной строке (не входной).

Заключение

Как программисты, мы должны уметь работать со словами и предложениями очень хорошо, особенно когда речь идет о JavaScript, поскольку веб-сайты — это сайты о людях. К этому моменту вы изучили основы работы со строками. Это поможет вам при изучении более сложных тем в будущем. В качестве последней точки фокуса в этом коротком семестре нам нужно рассмотреть массивы.

голоса
Рейтинг статьи
Читайте так же:
Как быстро извлечь имя файла из полного пути в Excel?
Ссылка на основную публикацию
Adblock
detector