Cykliczne Zadania Liderów

0

Pytanie

Próbuję przypisać potencjalnych klientów przywódcom kont, przeglądając listę AE i przesuwając "X" na AE, który musi być przypisana do następujących. Sposób, w jaki określam, czy komuś przypisać wiodącego, polega na tym, że obok nazwy firmy jest spacja.

W rzeczywistości, logika powinna iść w następujący sposób: znajdź klawisz spacji, aby znaleźć nazwę AE, która znajduje się obok X, używać tej nazwy do wypełnienia spacji, aby znaleźć następny klawisz spacji i tak dalej, aż nie pozostanie spacji. Napisałem pseudo, ale ja w ogóle nie znam ze skryptami aplikacji Google. Czy może ktoś pomóc mi zrozumieć, jaki kod będzie działać dla pseudo?

***
var STRINGX = 'X';
function main() {
  Logger.log(getNextPerson())
  var person = getNextPerson();
  var leadRow = findNextOpenLead();
  assignPersonToNextLead(person, leadRow);
  moveXDown();
}
function getNextPerson() {
  var sheet = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  var startRow = 2;
  var salesReps = sheet[1].splice(0, 1)
}
function moveXDown() {
  // find column with x and save it as a variable
  // delete x from that column
  // add 1 to  column we found 
  // put it in ^ that column
}
function assignPersonToNextLead(person, leadRow) {
  // find row next to lead 
  // put person in the b column and row of lead
}
function findNextOpenLead() {
  // go through column b until you find an open cell
  // use that row in column d to find the lead 
}
***

Litery A,B,C są na miejscu prawdziwych nazw AE

Lista nazwisk przywódców kont

Spacje obok z nazwami firm

1

Najlepsza odpowiedź

0

Wykonywanie cyklicznych spotkań w Listę potencjalnych klientów

function roundRobinLeads() {
  const ss = SpreadsheetApp.getActive();
  const lsh = ss.getSheetByName('Round Robin Leads');
  const lvs = lsh.getRange(2, 1, lsh.getLastRow() - 1, lsh.getLastColumn()).getDisplayValues();
  const rsh = ss.getSheetByName('Round Robin');
  const rvs = rsh.getRange(2, 1, rsh.getLastRow() - 1, 2).getValues();
  let rr = { pA: [], index: 0, incr: function () { return this.index++ % this.pA.length; }, getIndex: function () { return this.index % this.pA.length; } };
  rvs.forEach((r, i) => {
    rr[r[1]] = r[0];
    rr.pA.push(r[1]);//push name in property array
    if (r[0]) {
      rr.index = i;//assign initial selection
      rsh.getRange(rr.index + 2, 1).setValue('');//remove x from current next
    }

  });
  lvs.forEach((r, i) => {if (!r[1]) {lsh.getRange(i + 2, 2).setValue(rr.pA[rr.incr()]);}});//assign lead and increment index
  rsh.getRange(rr.getIndex() + 2, 1).setValue('x');//record next assignment from rr.getIndex();
}

resztę %

Próbowałem dodać dodatkową zawartość, ale przepełnienie stosu głupia sprawdzanie zawartości obchodziła tabeli jak prawidłowo sformatowany kod.

2021-11-24 00:45:05

Dziękuję bardzo! To działa świetnie!
Chad Riorden

mogło by to zadziałać, gdyby istniało 3 różne listy, z których cykliczny przesada została wybrana na podstawie kryteriów lidera?
Chad Riorden

Być może. Proszę podać ten pomysł w innym pytaniu
MiMi

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................