Как подсчитать количество вхождений подряд для заданного значения

У меня есть Google Sheet с именем «Календарь», отформатированный следующим образом:

12.07.2024 11.07.2024 10.07.2024 09.07.2024 08.07.2024 05.07.2024 04.07.2024 03.07.2024 02.07.2024 01.07.2024 28.06.2024 27.06.2024 26.06.2024 Джордж Вашингтон Вышел из игры - Отменен - ​​Больен Здесь Здесь Вышел из игры - Отменен - ​​Проблемы с машиной Здесь Здесь Вышел – нет звонка/неявки Здесь Здесь Здесь Здесь Здесь Здесь Бен Франклин Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Томас Джеферсон Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Выходной – Запланированный Выходной – Отпуск Выходной – Запланированный Выходной – Отпуск Выходной – Запланированный Выходной – Отпуск Выходной – Запланированный Выходной – Отпуск Здесь Джон Адамс Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Патрик Генри Здесь Здесь Здесь Здесь Здесь Выходной – Запланированный Выходной – Запись к врачу Здесь Здесь Здесь Здесь Здесь Здесь Здесь Тедди Рузвельт Выходной - Выходной по расписанию - Новый ребенок Вышел - Отменен - ​​Новый ребенок Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь Здесь

Имена сотрудников есть в Календаре!A2:А вот так:

На отдельной вкладке «Посещаемость» в ячейке A2:A находятся все имена из календаря!A2:A. Я пытаюсь выяснить, как подсчитать, сколько раз значение «Out» появляется в строке, связанной с каждым сотрудником. Я перепробовал много разных формул, но не смог добиться никаких результатов.

Вот как это должно выглядеть на листе «Посещаемость», исходя из данных листа «Календарь»:

С помощью следующей формулы я могу получить фактические результаты, но не подсчет: =INDEX(Calendar!$B$2:$N$7, MATCH(A2,Calendar!$A$2:$A$7,0)). Кроме того, я бы предпочел добиться этого с помощью ARRAYFORMULA.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
54
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете попробовать добавить эту формулу в B2.

=MAP(tocol(A2:A,1),LAMBDA(k,reduce(0,FILTER(Calendar!A:N,Calendar!A:A=k),lambda(a,c,if (isnumber(search("Out",c)),a+1,a+0)))))

Спасибо. Это работает, если имена на вкладке «Посещаемость» расположены в том же порядке, что и имена на вкладке «Календарь».

Codedabbler 12.07.2024 16:34

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

Kreeszh 12.07.2024 17:02

= {Calendar!$A2,COUNT(ARRAYFORMULA(FIND("Off", Calendar!$B2:$N2)))}

Это сработает, если я изменю формулу на = {Calendar!$A2,COUNT(ARRAYFORMULA(FIND("Out", Calendar!$B2:$N2)))} и перетащу формулу вниз по столбцу A, но я не мог понять, как расширить ее до ARRAYFORMULA.

Codedabbler 12.07.2024 16:50

Какова цель ARRAYFORMULA?

Streeter 12.07.2024 16:55

Чтобы вывести всех сотрудников с выходными днями вниз по столбцу, не перетаскивая формулу вниз по мере роста числа сотрудников.

Codedabbler 12.07.2024 17:11
Ответ принят как подходящий

Вы можете попробовать:

=map(A2:index(A:A,match(,0/(A:A<>""))),lambda(Σ,countif (filter(Calendar!B:Z,Calendar!A:A=Σ),"*Out*")))

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

Codedabbler 12.07.2024 18:19

Я видел, как вы недавно использовали этот синтаксис несколько раз, но я не могу понять, почему A2:index(A:A,match(,0/(A:A<>""))) работает чтобы найти последнюю строку со значениями. Можете ли вы предоставить какие-либо отзывы, которые могли бы помочь объяснить это?

Kreeszh 12.07.2024 18:41

@Kreeszh определенные функции, такие как index, offset, xlookup, при использовании в сочетании с оператором диапазона: (двоеточие) будут обслуживать адрес ячейки вместо значения, присутствующего в этом адресе. Его можно использовать в формах index():index() или index(): или :index() i.sstatic.net/AJLWgOn8.png

rockinfreakshow 12.07.2024 19:16

Другие вопросы по теме