ФИЛЬТР и ЗАПРОС в таблице Google

#google-sheets #filter

Вопрос:

введите описание изображения здесь

Всем привет,

Моя цель-рассчитать количество студентов, которые выбрали Действие 3 в качестве одного из своих ответов, но предыдущий ответ не является Действием 2.

Итак, основываясь на примере на скриншоте выше, Mary , Lary и yuki выберите Действие 3 в качестве одного из своих ответов, но только Lary с действием 2 в качестве своего предыдущего ответа. Таким образом , ожидаемый результат в ячейке B2 таков 2 , поскольку предыдущий ответ Mary перед Действием 3-это Действие 5 вместо Действия 2, а для yuki предыдущего ответа перед Действием 3-Действие 1 вместо Действия 2.

Могу я узнать, как автоматизировать эту формулу? Я понятия не имею, с чего начать строить эту формулу.

Это мой лист Google: https://docs.google.com/spreadsheets/d/1Zk7lr_2lEKEyY6qI0kNVXBHRF7mcsBJGDyR0BQjKyk0/edit#gid=0

Любая помощь будет очень признательна!

Комментарии:

1. Как это связано с jQuery

2. Мне непонятно, что вы пытаетесь посчитать. Под «учащимися, которые выбирают Действие 3 в качестве одного из своих ответов, но предыдущий ответ не является Действием 2», вы имеете в виду: А) действие-это действие 3, а предыдущее действие не является Действием 2, независимо от того, кем является предыдущий учащийся; или Б.) действие-это действие 3, а предыдущее действие ТОГО же УЧАЩЕГОСЯ не является Действием 2?

3. извините за путаницу, это должно быть действие-Действие 3, а предыдущее действие того же УЧЕНИКА не является Действием 2.

Ответ №1:

Основываясь на ваших ответах на мои вопросы в разделе комментариев под исходным сообщением, я добавил новый лист («Справка Эрика») в вашу электронную таблицу со следующей формулой в B2 (в настоящее время выделена ярко-зеленым цветом).:

=ArrayFormula(SUM((C5:C="Action 3")*(IFERROR(VLOOKUP(ROW(A5:A)-1,{ROW(A5:A),C5:C},2,FALSE)<>"Action 2",0))*(IFERROR(VLOOKUP(ROW(A5:A)-1,{ROW(A5:A),B5:B},2,FALSE)=B5:B,0))))

ДОБАВЛЕНИЕ (после прочтения дополнительных комментариев):

Я добавил новый лист («Справка Эрика 2») со следующей формулой:

=COUNTA(UNIQUE(FILTER(B5:B,C5:C="Action 3",VLOOKUP(ROW(A5:A)-1,{ROW(A5:A),B5:Bamp;C5:C},2,FALSE)<>B5:Bamp;"Action 2")))

Комментарии:

1. Привет, Эрик, спасибо за твое решение! Я попробовал, и это хорошо работает. Однако в случае наличия 2 Action 3 у одного и того же ученика , а предыдущего действия для обоих Action 3 нет Action 2 , тогда формула фактически посчитала его дважды. Поскольку это один и тот же студент, по праву формула должна учитываться только один раз, а не дважды, если событие происходит дважды. Я добавил еще две строки данных (строки 25 и 26) в разделе Erik Help для имитации состояния, надеюсь, что есть способ решить эту проблему, спасибо!

2. Смотрите раздел ДОБАВЛЕНИЯ в моем посте.

Ответ №2:

Попробуй:

=query({{offset(A4:C,1,0);"","",""},C4:C},"select count(Col1) where Col3 matches 'Action 3' and not Col4 matches 'Action 2' label count(Col1) '' ",1)

введите описание изображения здесь

Для того же студента, попробуйте:

=query({{query({A4:C},"where Col1 is not null order by Col2,Col1 offset 1",1);"","",""},query({A4:C},"where Col1 is not null order by Col2,Col1",1)},"select count(Col1) where Col2=Col5 and Col3 matches 'Action 3' and not Col6 matches 'Action 2' label count(Col1) '' ",1)

Чтобы увидеть результаты, а не подсчитывать их:

=query({{query({A4:C},"where Col1 is not null order by Col2,Col1 offset 1",1);"","",""},query({A4:C},"where Col1 is not null order by Col2,Col1 label Col3 'Prev answer'",1)},"select * where Col2=Col5 and Col3 matches 'Action 3' and not Col6 matches 'Action 2' label count(Col1) '' ",1)

Комментарии:

1. Аресвик, я думаю, что в настоящее время существует проблема с вашей формулой. Ваше СМЕЩЕНИЕ идет в неправильном направлении (т. Е. Мне кажется, что формула сравнивает текущую строку Col C со СЛЕДУЮЩЕЙ строкой в Col C, а не с ПРЕДЫДУЩЕЙ строкой). Кроме того, из поста неясно, где счетчик должен учитывать последовательность действий одного и того же студента или независимо от студента. Первый вопрос вы можете скорректировать; второй требует дополнительной информации с плаката, которую я запросил через комментарий к исходному сообщению.

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

3. Формула добавлена к ответу.