#google-sheets #google-sheets-formula
Вопрос:
Я создаю таблицу Google, которая помогает организовывать студентов и рассылает электронные письма соответствующим лицам. Частью этого является поиск консультанта для студента.
В настоящее время у меня есть две вкладки: одна со списком студентов и их консультантом, а другая со списком всех студентов. Я пытаюсь создать функцию в списке студентов, которая будет выполнять поиск в консультативном листе и возвращать имя их консультанта. Все имена одинаково написаны между двумя вкладками, поэтому «Джейн Доу» на одной не будет написано «Доу, Джейн» на другой. Что касается строк, «Джейн Доу» == «Джейн Доу» между вкладками.
Вот ссылка на уменьшенную, поддельную версию реальной электронной таблицы
ТИА
Ответ №1:
использовать:
=INDEX(IFNA(VLOOKUP(A2:A,
SPLIT(FLATTEN(Advisories!A2:Damp;"♦"amp;Advisories!A1:D1), "♦"), 2, 0)))
Ответ №2:
Я предлагаю вам создать пользовательскую функцию ниже. Использование стандартных функций было бы слишком сложным. После вставки этого кода в редактор сценариев и сохранения поместите формулу ={"Advisor";mylookup(A2:A,Advisories!$A$1:$C)}
в ячейку B1
function myLookup(students, advisorsStudents) {
const advisors = advisorsStudents[0]
const studentsData = advisorsStudents.slice(1)
const assignedAdvisors = students.map(student=>{
if(student==""){
return ""
}
const rowFound = studentsData.find(row=>row.find(x=>x==student))
if(rowFound){
const index = rowFound.findIndex(x=>x==student)
return advisors[index]
} else{
return "advisor not found"
}
})
return assignedAdvisors.map(a=>[a])
}