Führen Sie die Werte in einer Spalte in einer Zeile mit dem Anführungszeichen "|" zusammen, basierend auf einem Vergleich mit den Werten einer anderen Spalte

Wie der Titel andeutet, versuche ich, einen Weg zu finden, um einige Daten in einer Tabelle mit Google App zu behandeln. Ich denke, der beste Weg ist, direkt ein Beispiel zu geben und sich im Voraus wie immer für Ihre Unterstützung zu bedanken.

einfach:

sheet1 (colA, colB)

sheet2 (colA', colB') 

sheet1        
  colA  colB     
1 xxx   40     
2 xxx   42     
3 yyy   42    
4 yyy   44 
. ...   etc. 


sheet2

colA'  colB'

1 xxx    40 | 42

2 yyy    42 | 44

3 ...    .. | ..  (etc.) 

Ich wäre dankbar für eine Andeutung von Code für das Google App-Skript. Vielen Dank

EDIT (in Bearbeitung)

Hallo,

Ich hoffe, dass durch das Teilen der Datei Ihre Fragen beantwortet werden.

das blatt existiert schon, der code ist teilweise geschrieben und ich würde hilfe dazu brauchen.

In Spalte B gibt es keine Duplikate für Artikel xxx oder yyy oder zzz usw.

in sheet "sheet_demo" gibt an, dass das Skript sein soll.

Tabellenkalkulations-Demo

function merge_col() {

  var sheet = SpreadsheetApp.openById("0AiuqXkUqDMgzdFM5aVNxeEhPbWFmbGhybl9TVkt4ZWc");
  var ss_sorg = sheet.getSheetByName('sheet1');
  var ss_dest = sheet.getSheetByName('sheet2');

  var sorg_data = ss_sorg.getRange("A2:C").getValues();
  var dest_data = ss_dest.getRange("A2:C").getValues();
  var dest_Cod = []; 
  var dest_Des = [];
  var temp_Cod, temp_Des;

  for (var i = 0; i < sorg_data.length; i++) {

    temp_Cod = null;
    temp_Des = null;

    for (var j = 1; j < sorg_data.length; j++) {

      if (sorg_data[i][0] == sorg_data[j][0].toString().match(sorg_data[i][0]) && sorg_data[i][0] != "") {

        temp_Cod = sorg_data[i][1];
        temp_Des = sorg_data[i][2];

        break;
      }
    }

    dest_Cod.push([temp_Cod]);
    dest_Cod.join('|');
    dest_Des.push([temp_Des]);
    dest_Des.join('|');
  }
  if (dest_Cod.length > 0 || dest_Des.lenght > 0) {
      ss_dest.getRange(2, 2, dest_Cod.length, 1).setValues(dest_Cod);  Logger.log(dest_Cod)
      ss_dest.getRange(2, 3, dest_Des.length, 1).setValues(dest_Des);  Logger.log(dest_Des)
  }
}

BEARBEITEN (ENDGÜLTIG) TKS Serge!

function merge_col() {
  var ss = SpreadsheetApp.getActive().getSheetByName('sheet1');
  var data = ss.getDataRange().getValues();
  var header = data.shift();
  var col1 = data[1][0];
  var col2 = '';
  var col3 = '';
  var dataSheet2 = [header];
  for(var i=0 ; i<data.length ; i++){
    Logger.log(data[i][0]+'  -  '+col1+'  -  '+data[i][2])
    if(col1==data[i][0]){
      col1 = data[i][0];
      col2+=data[i][1]+' | ';
      col3+=data[i][2]+' | ';
    }else{
      dataSheet2.push([col1,col2,col3]); 
      var col1 = data[i][0];
      col2 = data[i][1]+' | ';
      col3 = data[i][2]+' | ';
    }
  }
  dataSheet2.push([col1,col2,col3]); 
  Logger.log(dataSheet2);
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2');
  sheet2.clear();
  sheet2.getRange(1, 1, dataSheet2.length, dataSheet2[0].length).setValues(dataSheet2);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage