Создайте список недостающих для полноты с контактными данными в Google Sheets

Я пытаюсь создать лист отслеживания с деталями в зависимости от процента от таблицы, это таблица (Ссылка на полный лист в гугл-листах):

Institution name    Management  Radiology   Nuclear number  Pathology   Laboratorie
Hospital 1          Zero        Zero        Zero            Zero        Zero
Hospital 2          Not Valid   Zero        Zero            Zero        Zero

Таким образом, для каждого института есть человек, ответственный за задачу, и ноль означает, что они ничего не сделали, а действительный означает, что они не находятся в диапазоне от 80% завершенности до заявленного, что они закончили. Итак, у меня есть список контактов с людьми, назначенными на каждую область в институте, например:

Hospital 2  Person 3    person.3@ gmail.com Radiology   
Hospital 2  Person 4    person.4@ gmail.com Management  
Hospital 2  Person 5    person.5@ gmail.com All 
Hospital 2  Person 6    person.6@ gmail.com Surgery 

Итак, я хочу отобразить список людей, которые не выполнили свою задачу, чтобы отправить им электронное письмо, и у меня есть эта формула, которая близка к тому, что я хочу, но проблема в том, что эта формула предназначена только для одной области:

=ARRAYFORMULA(FILTER(IMPORTDETAILS!A2:D, IFNA(VLOOKUP(IMPORTDETAILS!A2:A&IMPORTDETAILS!D2:D, 
 SPLIT(FLATTEN(PercentageofCompletness!A4:A&PercentageofCompletness!C3&"×"&PercentageofCompletness!C4:C), "×"), 2, 0))<=0.8, 
 IFNA(VLOOKUP(IMPORTDETAILS!A2:A&IMPORTDETAILS!D2:D, 
 SPLIT(FLATTEN(PercentageofCompletness!A4:A&PercentageofCompletness!C3&"×"&PercentageofCompletness!C4:C), "×"), 2, 0))<>""))

Помогите с этим пожалуйста

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать с этой формулой:

=LAMBDA(filt,{filt,INDEX(SPLIT(BYROW(filt,LAMBDA(each,JOIN("|",FLATTEN(IFNA(FILTER('EMAIL DETAILS'!B:C,REGEXMATCH('EMAIL DETAILS'!A:A,INDEX(each,,1)),REGEXMATCH('EMAIL DETAILS'!D:D,INDEX(each,,2))), FILTER('EMAIL DETAILS'!B:C,REGEXMATCH('EMAIL DETAILS'!A:A,INDEX(each,,1)),REGEXMATCH('EMAIL DETAILS'!D:D,"All")))) ))),"|"))}) (LAMBDA(data,FILTER(data,REGEXMATCH(INDEX(data,,3),"Zero|Not valid"))) (INDEX(SPLIT(FLATTEN(MAP('Percentage of completness'!B2:K13,LAMBDA(a,JOIN("|",INDEX('Percentage of completness'!A1:A13,ROW(a)),INDEX('Percentage of completness'!A1:K1,COLUMN(a)),a)))),"|"))))

С помощью MAP я проверяю каждое значение и сопоставляю его с больницей и отделением, сглаживаю и разделяю, чтобы получить три столбца. Отфильтруйте по «Ноль» и «Недействительно» и, наконец, загляните в контактный лист. Когда есть совпадение с разделом, я хватаю эту почту, когда нет, я ищу вариант «Все» в этой больнице. Если вы хотите всегда иметь опцию «Все» с конкретной почтой раздела, попробуйте этот вариант:

=LAMBDA(filt,{filt,INDEX(SPLIT(BYROW(filt,LAMBDA(each,JOIN("|",FLATTEN(FILTER('EMAIL DETAILS'!B:C,REGEXMATCH('EMAIL DETAILS'!A:A,INDEX(each,,1)),REGEXMATCH('EMAIL DETAILS'!D:D,INDEX(each,,2)&"|All")),) ))),"|"))}) (LAMBDA(data,FILTER(data,REGEXMATCH(INDEX(data,,3),"Zero|Not valid"))) (INDEX(SPLIT(FLATTEN(MAP('Percentage of completness'!B2:K13,LAMBDA(a,JOIN("|",INDEX('Percentage of completness'!A1:A13,ROW(a)),INDEX('Percentage of completness'!A1:K1,COLUMN(a)),a)))),"|"))))

ОБНОВЛЯТЬ

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

=LAMBDA(filt,{filt,INDEX(SPLIT(BYROW(filt,LAMBDA(each,JOIN("|",FLATTEN(BYCOL(IFNA(FILTER(IMPORTDETAILS!B:C,IMPORTDETAILS!A:A=INDEX(each,,2),REGEXMATCH(IMPORTDETAILS!D:D,INDEX(each,,3))), FILTER(IMPORTDETAILS!B:C,IMPORTDETAILS!A:A=INDEX(each,,2),REGEXMATCH(IMPORTDETAILS!D:D,"All"))),LAMBDA(m,JOIN(CHAR(10),m)) ))))),"|"))}) (LAMBDA(data,FILTER(data,REGEXMATCH(INDEX(data,,4),"Zero|Not valid"))) (INDEX(SPLIT(FLATTEN(MAP(Track!C2:L13,LAMBDA(a,JOIN("|",INDEX(Track!A1:A13,ROW(a)),INDEX(Track!B1:B13,ROW(a)),INDEX(Track!A1:L1,COLUMN(a)),a)))),"|"))))

На самом деле это работает фантастически, но у меня есть некоторые ошибки, не могли бы вы еще раз проверить Excel? Я указал свои настоящие данные, извините, я забыл одну колонку

Eduardomaker 25.01.2023 16:55

Я просто жду, чтобы дать вам очки, потому что это не позволило мне

Eduardomaker 25.01.2023 17:21

Не волнуйтесь, если вы не можете решить награду, она будет решена сама собой, когда закончится период щедрости, так как вы уже отметили этот ответ. Удачи!

Martín 25.01.2023 17:28

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

Условное форматирование диапазона на основе другого диапазона в листе Google
Рассчитать на 3 дня назад, но с пропуском выходных
Как отфильтровать строковые данные с помощью списка поиска в листах Google/Excel?
Получить URL-адрес вставленного изображения ячейки из листа Google
Как подсчитать уникальные значения, которые присутствуют на двух разных листах, только если они существуют на обоих листах
Скрипт Google Apps — копирование и вставка значений на той же странице и в той же строке на основе критериев ячейки
Удалить строки после проверки текста в определенном столбце
Автоматизировать копирование значения из одной ячейки в другую в определенную дату
Добавление значений в определенную ячейку с помощью кода, продолжающегося до определенной ячейки с использованием цикла for
Как обрезать значения в пользовательском формате в Excel?