Как найти последнее отрицательное число в строке

I have two rows of data like this:

      A     B     C     D     E
R1    0     -10   -10   -10   80
R2    0     -10   -20   -30   50

I want a formula to find the last -ive number in R1 and I want to return the value in R2.

I know how to return the first +ive value like so:

=INDEX($A$1:$E$1,MATCH(TRUE, $A$1:$A$1>0,0))

How do I find the last -ive and return the R2 value?

Thanks!

asked Nov 27, 2017 at 22:50

TheRealPapa's user avatar

TheRealPapaTheRealPapa

4,3238 gold badges69 silver badges150 bronze badges

You can use LOOKUP for this, e.g.

=LOOKUP(2,1/(A1:E1<0),A2:E2)

Finds the last negative value in A1:E1 and returns corresponding value from A2:E2

answered Nov 27, 2017 at 23:03

barry houdini's user avatar

barry houdinibarry houdini

45.5k8 gold badges63 silver badges80 bronze badges

1

Как найти первое / последнее положительное / отрицательное число в Excel?

На листе есть список чисел, которые имеют как положительные, так и отрицательные числа, если вы хотите найти первое или последнее положительное или отрицательное число в этом столбце, как вы могли бы это сделать?

Найдите первое положительное / отрицательное число с помощью формулы массива

Найдите последнее положительное / отрицательное число с помощью формулы массива


стрелка синий правый пузырь Найдите первое положительное / отрицательное число с помощью формулы массива

Чтобы получить первое положительное или отрицательное число в списке данных, вам может помочь следующая формула, сделайте следующее:

1. В пустой ячейке, помимо ваших данных, введите следующую формулу массива: =INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0))(A2: A18 это список данных, который вы хотите использовать), см. снимок экрана:

док-найти-первое-положительное-число-1

2, Затем нажмите Shift + Ctrl + Enter вместе, чтобы вернуть первое положительное число в списке, см. снимок экрана:

док-найти-первое-положительное-число-2

Внимание: Чтобы получить первое отрицательное число в списке, вам просто понадобится эта формула: =INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0)), и не забудьте нажать Shift + Ctrl + Enter ключи одновременно.


стрелка синий правый пузырьНайдите последнее положительное / отрицательное число с помощью формулы массива

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

1. Введите следующую формулу в пустую ячейку рядом с вашими данными, = ПРОСМОТР (9.99999999999999E + 307; ЕСЛИ ($ A $ 2: $ A $ 18> 0, $ A $ 2: $ A $ 18))( A2: A18 это список данных, который вы хотите использовать), см. снимок экрана:

док-найти-первое-положительное-число-3

2, Затем нажмите Shift + Ctrl + Enter ключи одновременно, чтобы вернуть последнее положительное число в списке, см. снимок экрана:

док-найти-первое-положительное-число-4

Внимание: Чтобы получить последнее отрицательное число в списке, вам просто нужна эта формула: = ПРОСМОТР (9.99999999999999E + 307; ЕСЛИ ($ A $ 2: $ A $ 18 <0, $ A $ 2: $ A $ 18)), и не забудьте нажать Shift + Ctrl + Enter ключи вместе.


Статьи по теме:

Как найти первое / последнее значение больше X в Excel?

Как найти максимальное значение в строке и заголовке столбца возврата в Excel?

Как найти максимальное значение и вернуть значение соседней ячейки в Excel?

Как найти максимальное или минимальное значение на основе критериев в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (1)


Оценок пока нет. Оцените первым!

На чтение 2 мин. Просмотров 311 Опубликовано 21.05.2021

На листе есть список чисел, которые имеют как положительные, так и отрицательные числа. Если вы хотите найти первое или последнее положительное или отрицательное число в этом столбце, как вы могли бы это сделать? ?

Найти первое положительное/отрицательное число с помощью формулы массива

Найти последнее положительное/отрицательное число с формулой массива


Найдите первый положительное/отрицательное число с формулой массива

Чтобы получить первое положительное или отрицательное число в списке данных, вам может помочь следующая формула. Сделайте следующее:

1 . В пустой ячейке, помимо ваших данных, введите следующую формулу массива: = INDEX (A2: A18, MATCH (TRUE, A2: A18> 0,0)) , ( A2: A18 – это список данных, который вы хотите использовать), см. снимок экрана:

2 . Затем нажмите одновременно клавиши Ctrl + Shift + Enter , чтобы вернуть первое положительное число в списке, см. Снимок экрана:

: чтобы получить первое отрицательное число в списке, вам просто понадобится следующая формула: = INDEX (A2: A18, MATCH (TRUE, A2: A18 и не забудьте одновременно нажать клавиши Ctrl + Shift + Enter .


Найдите последнее положительное/отрицательное число с помощью формулы массива

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

1 . Введите следующую формулу в пустую ячейку рядом с вашими данными: = LOOKUP (9.99999999999999E + 307, IF ($ A $ 2: $ A $ 18> 0, $ A $ 2: $ A $ 18)) ( – это список данных, который вы хотите использовать), см. снимок экрана:

2 . Затем нажмите одновременно клавиши Ctrl + Shift + Enter , чтобы вернуть последнее положительное число в списке, см. Снимок экрана:

: чтобы получить последнее отрицательное число в списке, вам просто понадобится следующая формула: = ПРОСМОТР (9.99999999999999E + 307, IF ($ A $ 2: $ A $ 18 и не забудьте нажать Ctrl + Shift + Enter вместе.


Как найти первое/последнее значение больше X в Excel?

Как найти наивысшее значение в строке и заголовок возвращаемого столбца в Excel?

Как найти максимальное значение и вернуть значение соседней ячейки в Excel?

Как найти максимальное или минимальное значение на основе критериев в Excel?


Цитата
Сообщение от EzCoding
Посмотреть сообщение

Ну если убрать N- будет норм.

да и при N будет нормально, ошибки не будет, просто на экран выведется мусор, переменная то не инициализирована

Цитата
Сообщение от EzCoding
Посмотреть сообщение

Не понимаю зачем вы делаете проверку i>-1 если можно проверять i>=0;

этот код выполнит одно и тоже но при записи i>=0 возможен вариант что будут две проверки на больше и на равно
неизвестно как компилятор откомпилирует, оптимизирует или нет, на каком камне это будет исполнятся
а так я просто показал еще один путь решения
не люблю мыслить шаблонно

Цитата
Сообщение от EzCoding
Посмотреть сообщение

А если выводить вне цикла – лучше иметь счетчик отдельно и отдельно переменную вывода, счетчик может понадобится еще для каких то подзадач.

так если он не нужен снаружи объявляй его в цикле
да и счетчик это не приговор
можешь в одном цикле объявить i а в другом ii
почитай Криса Касперски “Техника отладки программ без исходных кодов” “Основы хакерства” и другие книги
и поймешь что получается в исполняемом коде, хороший оптимизатор может так перелопатить твою программу, что её никто не узнает

Цитата
Сообщение от Andrey027
Посмотреть сообщение

Помогите найти ошибку.

одну

Цитата
Сообщение от Andrey027
Посмотреть сообщение

Microsoft visual C++ 6.0

Цитата
Сообщение от Andrey027
Посмотреть сообщение

double a[5],

Цитата
Сообщение от Andrey027
Посмотреть сообщение

cout<<“Vvedite razmer massiva”;

зачем? он итак известен 5
а что будет, если я введу100

Цитата
Сообщение от Andrey027
Посмотреть сообщение

cout<<“nVvedite massiv:n”;
cin>>a[n];

выход за пределы массива

и где ввод всех элементов массива?

Цитата
Сообщение от Andrey027
Посмотреть сообщение

for(i=0;i<n;i++)
{
cout<<“nMassiva:n”<<a[i];
p*=a[i];
k++;
}

и где проверка на отрицательный элемент?
k будет равно n

Проблемы возникшие с решением:

  1. Как остановить данный цикл, при вводе последнего числа последовательности?
  2. Выводится первый отрицательный элемент, а нужен последний.

Подскажите, пожалуйста, как исправить код.

#include <iostream>
int main() {
    int n = 1, x = 0;
    std::cout << "Enter the sequence: ";
    while (std::cin >> x) {
        std::cin >> x;
        if (x >= 0)
            n++;
    }
    std::cout << n;
}

задан 1 дек 2021 в 18:08

klyon's user avatar

2

#include <iostream>
using namespace std;
int main() {
    int no = 0, nno = 0, x;
    while (cin >> x) {
        no++;
        if (x < 0) nno = no;
        }
    cout << nno;
    }

Просто считаете все числа, и если отрицательное – перезаписываете его номер.

Прекратить цикл можно или введя Ctrl-Z (в Windows), или введя не число.

ответ дан 2 дек 2021 в 7:07

Mikhailo's user avatar

MikhailoMikhailo

12.3k2 золотых знака17 серебряных знаков41 бронзовый знак

Добавить комментарий