Přidání počet na konci duplicitní textový řetězec, aby se unikátní číslo dokumentu - Apps script

0

Otázka

Jsem nový skripty a dostal přilepená na nedávný projekt.

Problém:

Snažím se napsat skript, který bude generovat jedinečná čísla dokumentů na základě řady parametrů ve sloupcích google listu. Protože existuje více dokumentů, které sdílejí stejné místnosti a podlahy informace můj současný skript vytvoří duplikáty - co bych chtěl dosáhnout, je, že skript vyhledá duplicitní hodnoty a přidá číslo na konec, aby to bylo jedinečné.

Data:

To je ukázka toho, co ta tabulka vypadá jako

Takže v ideálním případě, co bych chtěl, je místo více řádků, které říkají: "PROJECT1-1-01-T-" Já bych jednotlivců čísla označeny jako: "PROJECT1-1-01-T-00" "PROJECT1-1-01-T-01" atd.

Současný Kód:

function onOpen () {
const ui = SpreadsheetApp.getUi();
const menu = ui.createMenu('Create Document Number');
menu.addItem('Create Base Document Number','createbaseDocumentNumber');
menu.addToUi();

}



function createbaseDocumentNumber() {

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet =   ss.getActiveSheet();
const rows = sheet.getDataRange().getDisplayValues();

rows.forEach(function(row,index){

if (index === 0) return;
if (!row[2]) return;


if(row[4] == "TECHNICAL"){
var docNum = `PROJECT1-${row[2]}-${row[3]}-`


sheet.getRange(index + 1,1).setValue(drawNum + "T"); } 

if(row[4] !== "TECHNICAL"){
var docNum = `PROJECT1-${row[2]}-${row[3]}-`


sheet.getRange(index + 1,1).setValue(docNum + "E"); } 

  
})


}

Pokud má někdo nějaké nápady, já bych opravdu ocenil pomoc!

1

Nejlepší odpověď

1

Pro non-scripted řešení si můžete vyzkoušet v A1 (po vymazání obsahu ve sloupci A)

={"Document number"; Arrayformula (
  if (len(E2:E), 
  "PROJECT1-"&C2:C&"-"&D2:D&"-"&LEFT(E2:E)&"-"
  &text(countifs(C2:C&D2:D&E2:E, C2:C&D2:D&E2:E, row(E2:E), " 
  <="&row(E2:E))-1, "00")
 ,))}

enter image description here

2021-11-23 09:52:08

V jiných jazycích

Tato stránka je v jiných jazycích

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