Excel-Tabelle Umformatieren

  • Hallo,

    Ich hab da eine Excel-Tabelle mit ca. 3000 Zeilen und ca. 15 Spalten
    In der Spalte A sind von den Typen viele doppelte Einträge, aber mit verschiedene
    Modele. Seit Tagen versuch ich nun die Tabelle 1 auszulesen und in eine
    neue Mappe zu schreiben (Was ich auch hinbekomme), aber ich würde gerne
    die Modele vom gleichen Typ in einer Zeile bekommen.

    Kann mir da vieleicht jemand ein kleine Hilfe geben?
    Bin leider noch Anfänger in Autoit.

    [Blockierte Grafik: http://www.kdb1.de/Excel.jpg]

    Einmal editiert, zuletzt von Dietus (6. Juli 2010 um 19:43)

  • hmm
    ich kenn mich jetz mit den excel funktionen nich so gut aus
    aba ich würd vorschlagen
    1.) jede zeile einzeln auslesen
    2.) herrausfinden ob in 2 arrays die erste zelle gleich ist
    - wen ja dan erste zelle löschen und mit _ArrayConcatenate die arrays zusammenfügen
    3.) in excel schreiben

  • hab jetz hier mal herumprobiert
    das is rausgekommen

    Spoiler anzeigen
    [autoit]

    #include <Excel.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $oExcel = _ExcelBookOpen(@ScriptDir & "\test.xlsx")
    If @error =2 Then MsgBox(0, "", "")
    Global $aNewSheet[99][99], $aktZeile = 0, $aktSpalte = 0

    [/autoit] [autoit][/autoit] [autoit]

    $aOldSheet = _ExcelReadSheetToArray ($oExcel, 1, 1, 8, 4, 1)
    _ArrayDelete($aOldSheet, 0)
    For $i = 0 To UBound($aOldSheet,2)-2
    $aNewSheet[0][$i] = $aOldSheet[0][$i]
    $aktSpalte += 1
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to UBound($aOldSheet)-1
    If $aOldSheet[$i][0] == $aOldSheet[$i-1][0] Then
    For $n = 1 to UBound($aOldSheet,2)-2
    $aNewSheet[$aktZeile][$aktSpalte] = $aOldSheet[$i][$n]
    $aktSpalte += 1
    Next
    Else
    $aktZeile += 1
    $aktSpalte = 0
    For $n = 0 To UBound($aOldSheet,2)-2
    $aNewSheet[$aktZeile][$n] = $aOldSheet[$i][$n]
    $aktSpalte += 1
    Next
    EndIf
    Next
    $NewBook = _ExcelBookNew()
    _ExcelWriteSheetFromArray($NewBook, $aNewSheet, 1, 1, 0, 0)
    _ExcelBookClose($oExcel)

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    musst halt die array werte höher dimensionieren und bei _ExcelReadSheetToArray die endpunkte richtig einstellen
    ach und du musst vorher die excel datei sortieren