marabunta
Goto Top

Excel Tabellen Formatierung

Hallo,

ich habe eine Tabelle die ich theoretisch auf 1/27 kürzen könnte, wenn ich wüsste wie ich es umformatiere...

1
2
3
4
5
6
7
8
9
A           B         C
Computer1 Datei1 Version1.0
Computer2 Datei1 Version1.0
Computer3 Datei1 Version1.0
Computer1 Datei2 Version1.1
Computer2 Datei2 Version1.1
Computer3 Datei2 Version1.1
Computer1 Datei3 Version1.0
...

oder von der QuellCSV die sieht so aus:
1
2
3
4
5
6
Computer1,"Datei1","1.0"  
Computer1,"Datei2","1.0"  
Computer2,"Datei1","1.0"  
Computer2,"Datei2","1.0"  
Computer3,"Datei1","1.0"  
Computer3,"Datei2","1.0"  

wie verändere ich es in diese Form:

1
2
3
4
5
6
A     B                  C         D        E
           Soll          Computer1    Computer2     Computer3
Datei1 Version1.0        Version1.0 Version1.0 Version1.0
Datei2 Version1.1         Version1.1 Version1.1 Version1.1
Datei3 Version1.0        Version1.0  Version1.0 Version1.0
...

Danke

Content-ID: 278537

Url: https://administrator.de/forum/excel-tabellen-formatierung-278537.html

Ausgedruckt am: 06.04.2025 um 20:04 Uhr

122990
122990 28.07.2015 um 09:30:02 Uhr
Goto Top
Moin,
mit einer Umwandlung in eine Pivottabelle kannst du das z.B. machen.

Gruß grexit
Marabunta
Marabunta 28.07.2015 aktualisiert um 09:51:43 Uhr
Goto Top
Danke für das erste mal Pivot sieht es ganz ok aus. Ein problem habe ich noch:

Ich bekomme die Versionen nicht unter Computer angezeigt, entweder als Anzahl oder unter SollVersion bei den dateinamen links...
Ich kann die Anzahl auch nicht auf Maximum oä. so ändern das es funktioniert...
Zieh ich es in die Spaltenbeschriftung dann stehen die unter den Computernamen aber Spalte für Spalte eine Version

1
2
3
4
5
6
Spaltenbeschriftungen:
Computer

Zeilenbeschriftungen
Dateiname
SollVersion


1
2
3
4
5
Zeilenbeschriftungen Spaltenbeschriftungen
Datei1                Computer1    Computer2    Gesamtergebnis
    1.0
Datei2
    1.0


Der sagt mir die Anzahl der Zahlen wäre 0, ich habe die Versionen aber als Zahlen formatiert in der Quelle?
114757
114757 28.07.2015 aktualisiert um 11:48:14 Uhr
Goto Top
Moin,
wandele die CSV doch einfach mit Powershell vorher um ... du hast es einfach im Vornherein falsch ausgegeben face-wink
Beispiel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$arr = @()
@'  
"Computer","Datei","Version"  
"Computer1","Datei1","1.0"  
"Computer1","Datei2","1.0"  
"Computer2","Datei1","1.0"  
"Computer2","Datei2","1.0"  
"Computer3","Datei1","1.0"  
"Computer3","Datei2","1.0"  
'@ | convertfrom-csv | group Datei | %{  
    $obj = New-Object PSObject -Property @{"Datei"=$_.Name}  
    $_.Group | %{
        $obj | Add-Member -Type NoteProperty -Name $_.Computer -Value $_.Version
    }
    $arr += $obj
}
$arr
Gruß jodel32
Marabunta
Marabunta 30.07.2015 aktualisiert um 13:41:45 Uhr
Goto Top
Danke. Logisch adaptieren und umzusetzen ist nicht ganz leicht

Die Dateien werden jetzt einzeln aufgelistet, die Sollversion wird angezeigt, aber nur ein Computer, er durchläuft alles 2 Mal für 2 Computer und bringt in der Liste nur 1 Computer. Nur wieso?
1
2
3
4
5
6
Datei                  SollVersion   Computer1          
-----                 -----------                -----------                                    
D.manifest                                                                                                                       
C.manifest                                                                                                                       
B.dll                2.0                                                                 
A.dll                1.0.0.1                1.0.0.1                                        

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$sharepath="C:\Test"  
$Liste=@()

Function Get-IniContent { 
http://gallery.technet.microsoft.com/scriptcenter/ea40c1ef-c856-434b-b8fb-ebd7a76e8d91
  }

$Global:QuellVersionsListe=Get-IniContent $sharepath\Testumgebung\VersionDateiListe.ini
$Global:QuellPfadListe=Get-IniContent $sharepath\Testumgebung\VersionDateiListekurz.ini

$Ziele=gc "$sharepath\Testumgebung\pcnamen2.txt" # Computer1, Computer2  

$i=0
    while($QuellPfadListe.DateiPfade.Values.Count -ne $i) {
    $Pfadteil=$QuellPfadListe.DateiPfade.Values.GetEnumerator() |select -Index $i
    $Ziele |Foreach {
    $AktuellesZiel=$_
    $Pfad="\\" + $AktuellesZiel + $Pfadteil        
     
        $QuellPfadListe.DateiPfade.GetEnumerator() |select -Index $i |group Name | %{
        $groupname=$_
        $obj = New-Object PSObject -Property @{"Datei"=$groupname.Name}  
        $groupname.Group | %{
            $obj | Add-Member -MemberType NoteProperty -Name SollVersion -Value ($QuellVersionsListe["Versionen"][$_.Name])  
            $ZielInhalt=gci $Pfad |select -ExpandProperty versioninfo
            
            $obj | Add-Member -MemberType NoteProperty -Name $AktuellesZiel -Value $ZielInhalt.ProductVersion
            }   
            $liste+=$obj
            $i++
        }
    }
}
$liste

Mit freundlichen Grüßen
Marabunta