Я пытаюсь создать лист отслеживания с деталями в зависимости от процента от таблицы, это таблица (Ссылка на полный лист в гугл-листах):
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))<>""))
Помогите с этим пожалуйста
Вы можете попробовать с этой формулой:
=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? Я указал свои настоящие данные, извините, я забыл одну колонку