Как мне найти имя в диапазоне на листах?

#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])
}
 

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

Ответ №3:

Попробуйте приведенную ниже формулу

 =ArrayFormula(INDEX(Advisories!$A$1:$C$1,,MAX((Advisories!$A$2:$C$4=A2)*(COLUMN(Advisories!$A$2:$C$4)))))
 

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