Листы ЕСЛИ Настройка функций и / или ошибки форматирования - PullRequest
0 голосов
/ 17 февраля 2020

Ячейка C5 на вкладке Форма назначения поездки - это раскрывающийся список пунктов назначения. Я пытаюсь сделать так, чтобы листы автоматически заполняли ячейку C6 соответствующим адресом (на вкладке «Школы»). Когда я добавляю приведенную ниже формулу, я получаю ошибку или ЛОЖЬ, но не могу понять, почему.

= if (C5 = Школы! A1, C6 = Школы! B1, «Другая ошибка»)

Мне нужно, чтобы формула работала для любого выбранного пункта назначения, чтобы соответствующий адрес был вставлен в ячейку. Могу ли я сделать это так, как я думаю, или лучше будет сценарий приложений, и если да, то как бы я go об этом?

«Форма назначения командировок» enter image description here

Таблица данных "Школы"

enter image description here

Ссылка на копию моего листа:

https://docs.google.com/spreadsheets/d/1Xkwxjtf6syEd-zGaPUVsyE2_6Kfczu8c-8W3RuRg9CY/edit?usp=sharing

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Это можно сделать с помощью Google Apps Script, но, вероятно, это не самый простой способ go

. Вы можете использовать триггер onEdit и такой код:

function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()=='Sheet12' && e.range.columnStart==1 && e.range.rowStart==1 & e.value!='') {
    var ss=SpreadsheetApp.getActive();
    var sh1=ss.getSheetByName('Sheet12');
    var v1=sh1.getRange(1,1).getValue();
    var sh2=ss.getSheetByName('Sheet13');
    var v2=sh2.getRange(1,1,sh2.getLastRow(),2).getValues();
    for(var i=0;i<v2.length;i++) {
      if(v2[i][0]==v1) {
        sh1.getRange(2,1).setValue(v2[i][1]);
      }
    }
  }
}

Анимация:

enter image description here

Ваша настройка:

function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()=='assignment sheet name' && e.range.columnStart==3 && e.range.rowStart==5 & e.value!='') {
    var ss=SpreadsheetApp.getActive();
    var sh1=ss.getSheetByName('assignment sheet name');//assignment sheet name
    var v1=sh1.getRange(e.range.rowStart,e.range.columnStart).getValue();
    var sh2=ss.getSheetByName('schools sheet name');//schools sheet name
    var v2=sh2.getRange(1,1,sh2.getLastRow(),2).getValues();
    for(var i=0;i<v2.length;i++) {
      if(v2[i][0]==v1) {
        sh1.getRange(6,3).setValue(v2[i][1]);
      }
    }
  }
}
0 голосов
/ 18 февраля 2020
=VLOOKUP(C5, Schools!A:B, 2, 0)
  • Поиск C5 в школах A: B и извлечение второго столбца
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...