Вывод числа y в одном столбце, которые соответствуют условию в другом столбце - PullRequest
1 голос
/ 09 февраля 2020

Я изо всех сил пытаюсь вывести число "y", которые соответствуют последним 5 "a" в наборе данных из двух столбцов, например, первый столбец содержит ячейки, занятые либо "a", либо " б». Второй столбец содержит ячейки, которые содержат «y» или «n». Есть ли способ вывести число y в столбце 2, соответствующее последним 5 a столбца 1? (А и В не в определенном порядке).

Ответы [ 3 ]

1 голос
/ 09 февраля 2020

Если у вас есть версия Excel, которая поддерживает новую функцию массива Dynami c, вы можете использовать это:

Столбец A содержит данные 'a' / 'b' и Столбец B имеет данные 'y' / 'n'

=SUM((FILTER(B:B,A:A="a")="y")*(SEQUENCE(COUNTIFS(A:A,"a"),1,COUNTIFS(A:A,"a"),-1)<=5))

Как это работает:

FILTER(B:B,A:A="a")

A Диапазон разлива (1), Фильтр 'y Данные '/' n ', где' a '/' b 'data =' a '

.

(FILTER(B:B,A:A="a")="y")

A Диапазон разлива (2): «ИСТИНА» / «ЛОЖЬ»: «ИСТИНА», где «Диапазон разлива» (1) = «у»

.

COUNTIFS(A:A,"a")

Количество 'a' в столбце A (= количество строк в диапазоне разлива (1))

.

SEQUENCE(COUNTIFS(A:A,"a"),1,COUNTIFS(A:A,"a"),-1)

A Диапазон разлива (3) чисел с обратным отсчетом от числа 'a' до 1

.

(SEQUENCE(COUNTIFS(A:A,"a"),1,COUNTIFS(A:A,"a"),-1)<=5)

A Диапазон разлива (4) из «ИСТИНА» / «ЛОЖЬ»: «ИСТИНА», где диапазон пролива (3) <= 5 (ie последние 5 «а») s) </p>

.

SUM(( ... )*( ...))

Сумма диапазона разлива (2) * Диапазон разлива (4)
ie Сумма ((столбец A = ' a 'и столбец B =' y ') * (a является одним из последних 5' a 's))

0 голосов
/ 09 февраля 2020

Вот ответ для более старых версий Excel. Используйте Aggregate, чтобы получить массив из 5 верхних номеров строк, содержащих «a», а затем индекс с помощью конструкции n (if {1}, чтобы получить массив соответствующих значений («y» или «n») из столбца B. Проверьте каждый значений в этом втором массиве, чтобы увидеть, равны ли они "y", используйте - для преобразования их в единицы и нули и Sumproduct для их добавления и заставить формулу работать как формула массива.

=SUMPRODUCT(--(INDEX(B:B,N(IF({1},(AGGREGATE(14,6,ROW(A2:A20)/(A2:A20="a"),{1,2,3,4,5})))))="y"))

enter image description here

0 голосов
/ 09 февраля 2020

Количество y в столбце B, соответствующее последним 5 a столбца A

Предположим, данные хранятся в A1:B20

В D4 введите формулу:

=SUMPRODUCT(0+(INDEX(B1:B20,AGGREGATE(14,6,ROW(A1:A20)/(A1:A20="a"),5)):B20="y"))

или

=COUNTIF(INDEX(B1:B20,AGGREGATE(14,6,ROW(A1:A20)/(A1:A20="a"),5)):B20,"y")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...