Round Robin Entraîner Des Affectations

0

La question

Je suis en train d'affecter conduit à tenir Compte des cadres en parcourant la liste des AE et le déplacement d'un "X" à l'AE qui devrait être affecté à la prochaine. La façon dont je déterminer si la sonde doit être attribué à quelqu'un c'est si il y a un vide à côté du nom de la société.

Essentiellement de la logique devrait aller, trouver vide, trouver des AE nom qui est à côté du X, utiliser ce nom pour remplir le vide, trouver vide suivante, et ainsi de suite jusqu'à ce qu'il n'y a pas plus de blancs. J'ai écrit pseudo mais je ne suis pas familier avec Google App Scripts. Quelqu'un peut-il aider mon comprendre ce code fonctionne pour le 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 
}
***

A,B,C sont dans la place de la vraie AE noms

Liste des responsables de noms

Les blancs de côté les noms de Société

1

La meilleure réponse

0

Prise de Round-Robin des Affectations à Conduit la Liste

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();
}

reste %

J'ai essayé d'ajouter du contenu supplémentaire, mais les Débordements de Pile stupide contenu checker a été de repérage tables de mal formaté code.

2021-11-24 00:45:05

Merci beaucoup! Cela fonctionne parfaitement!
Chad Riorden

serait-ce être en mesure de travailler si il y avait 3 liste différente que le round robin tiré de base sur les critères de la tête?
Chad Riorden

Probablement. Veuillez poser l'idée d'une autre question
MiMi

Dans d'autres langues

Cette page est dans d'autres langues

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