2017-07-07 3 views
0

Ich bin durch eine Reihe von Daten in einer Google-Tabelle in JavaScript durchlaufen.Javascript - Schleife durch Tabellenkalkulation verbundene Zellen

Das Problem, das ich habe, ist, habe ich einige verbundene Zellen, die den gleichen Wert haben, zum Beispiel C: 6 bis E: 6 haben alle den gleichen Wert wie diese 3 Zellen zusammengeführt werden.

Also in meiner Schleife wird es zeigen C:6 = 'Focus and targeting'D:6 = '' und E:6 = '' Was ich versuche zu tun ist in meiner Schleife zuweisen die 2. und 3. Werte der ersten Zelle Wert.

Hier ist, was ich habe:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Audit'); 
    var range = sheet.getDataRange(); 
    var numRows = range.getNumRows(); 
    var numCols = sheet.getMaxColumns(); 
    var values = range.getValues(); 

    var count = 0; 
    for (var i = 2; i <= numCols - 2; i++) { 

    var questionCategory = values[5][i]; 


    if(questionCategory == undefined) { 
     continue; 
    } 

    if(questionCategory == "") { 
     // need to assign 2nd and 3rd cells of merged list to have the value of 1st cell in merged list  
    } 

    count++; 

    } 

Hier ist, was die Daten wie folgt aussieht:

enter image description here

Irgendwelche Ideen, wie ich das erreichen kann?

+0

Sie überprüfen können, ob Zellen mit isPartOfMerge verschmolzen werden https://developers.google .com/apps-script/Referenz/Tabellenkalkulation/range # ispartofmerge –

Antwort

1

Hier benutzerdefinierte Funktion fusionierten Zelle Wert zu erhalten:

function getMergedCellValue(cellRange) 
{ 
    if (!cellRange.isPartOfMerge()) 
    { 
    return cellRange.getDisplayValue(); 
    } 

    return cellRange.getMergedRanges()[0].getDisplayValue(); 
} 

und aktualisierten Code mit dieser Funktion:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Audit'); 
    var range = sheet.getDataRange(); 
    var numRows = range.getNumRows(); 
    var numCols = range.getNumColumns(); 
    var values = range.getValues(); 

    var count = 0; 
    var questionRowNum = 6; 
    for (var i = 0; i < numCols; i++) 
    { 
    // assign 2nd and 3rd cells of merged list to have the value of 1st cell in merged list 
    var questionCategory = values[questionRowNum-1][i] || getMergedCellValue(sheet.getRange(questionRowNum, i+1)); 

    count++; 
    } 
Verwandte Themen