Excel Tabellen automatisch Inhalt umstrukturieren (mehrere Zeilen zu einer)?

Ich habe eine Tabelle mit Inhalt nach folgendem Schema

|| Object Name || Attribute Name || Attribute Hint ||
| Object 1 | Attribute 11 |                  |
|         | Attribute 12 | complex |
|         | Attribute 13 | dont use |
|         | Attribute 14 |                       |          
|         | Attribute 15 |                       |
| Object 2 | Attribute 21 | red  |
|         | Attribute 22 |             |
|         | Attribute 23 |             |
| Object 3 | Attribute 31 |                   |
|         | Attribute 32 |             |
|         | Attribute 33 |             |
|         | Attribute 34 |             |
| Object 4 | Attribute 41 |                   |
|         | Attribute 42 |                       |
|         | Attribute 43 | funny   |
|         | Attribute 44 |                       |
|         | Attribute 45 |                       |
|         | Attribute 46 | crazy   |

 Also: 

  • Erste Spalte: der Objekt Name (allerdings nur in der ersten Zeile des Objects)
  • Zweite Spalte: Attribut Name (das können pro Objekt beliebig viele sein; zwischen 1 und 20)
  • Dritte Spalte: Hinweise zum Attribut (diese Zelle kann leer sein oder etwas drinnen)

 Ich würde daraus gerne eine Umformung machen die wie folgt aussieht

|| Object Name || Simple Attributes || Other Attributes ||
| Object 1 | Attribute 11, Attribute 14, Attribute 15                                      | Attribute 12 (complex), Attribute 13 (don't use)     |
| Object 2 | Attribute 22, Attribute 23                                                                                  | Attribute 21 (red)                                                                                       |
| Object 3 | Attribute 31, Attribute 32, Attribute 33, Attribute 34 |                                                                                                                                                 |
| Object 4 | Attribute 41, Attribute 42, Attribute 44, Attribute 45 | Attribute 43 (funny), Attribute 46 (crazy)                    |

 

Also nur eine Zeile pro Object

  • Erste Spalte: der Objekt Name
  • Zweite Spalte: Attribut Namen bei denen es keinen "Hint gab" mit einem Beistrich getrennt
  • Dritte Spalte: Attribut Namen bei denen es einen "Hint gab" mit einem Beistrich getrennt (und wenn geht den Hint dazu in klammer, aber das ist kein muss)

Jetzt Frage ich mich ob es da Formeln/Funktionen gibt mit denen das halbwegs einfach geht, ohne das ich gleich Macros programmieren muss?

Computer, Microsoft Excel, Schule, Formel, Tabelle
Leere Excel Zelle nicht als Null werten?

Hey Leute, ich habe folgendes Problem:

Ich wollte in einer Exceltabelle alle Werte innerhalb einer Spalte, die 2 oder mehr von einander abweichen gelb markieren. Also in der Reihe "2,3,3,4,2" würden die beiden 2er und die 4, nicht aber die 3er markiert.

Dies habe ich über bedingte Formatierung mit der Formel =ODER(ABS(B1-B2)>=2;ABS(B3-B2)>=2;...) hinbekommen.

Klappt alles soweit wie am Schnürchen. Nur leider werter Excel leere Zellen als Null, was dazu führt, dass wenn eine einzige Zelle leer bleibt, meistens alle anderen Zellen gelb eingefärbt werden. Ich würde das gerne vermeiden und leere Zellen einfach ignorieren (bzw. in einer anderen Farbe, z.B. rot, markieren, aber das ist erstmal zweitrangig).

Die meistens Lösungen die ich online gefunden haben, beziehen sich darauf die Null auszublenden, was mir natürlich in meinem Fall wenig bringt. Auch habe ich häufiger gelesen, dass man die Null durch (unsichtbare) Standhaltervariablen ersetzten kann, das funktioniert aber leider bei mir auch nicht, da neben der Markierung auch ein Durchschnitt berechnet werden soll, wobei die Standhalter dann stören würden.

Natürlich könnte ich jetzt alle einzelnen Formeln noch einmal bearbeiten um für den Fall "Null" eine eigene Entscheidung einzufügen, aber das würde ich gerne vermeiden wenn es eine einfachere Lösung gibt.

Ich hoffe hier kann mir jemand helfen :D

MfG
Manuel

Computer, Arbeit, Office, Microsoft Excel, Technik, IT, Microsoft Office, Büro, Formel
PHP XLSX Writer überspringt erste Zeile - was tun?

Hey!

Ich habe gestern die Erweiterung PHP XLSX Writer gefunden und meinem System hinzugefügt. Ziel: Datenbank mit PHP (und mysqli) in ein Excel Dokument umwandeln. Irgendwie überspringt er die erste Zeile und spuckt mir im Dokument erst alles ab id=2 aus... Wisst ihr woran das liegt?

Danke schonmal für eure Antworten!

Hier noch der Quellcode von meiner export.php:

<?php
include "config.php";
include_once("../includes/excel/xlsxwriter.class.php");
//ini_set('display_errors', 0);
//ini_set('log_errors', 1);
//error_reporting(E_ALL & ~E_NOTICE);


    date_default_timezone_set('Europe/Berlin');
    $filename = "PZUS_" . date('Y-m-d') . ".xlsx";


    header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
    header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');   
    $sql="SELECT * FROM tbl_contact";
    $result = $link->query($sql); 
    $row = $result->fetch_assoc(); 
    $header = array(
      'ID'=>'string',
      'Nachname'=>'string',
      'Vorname'=>'string',
      'Klasse'=>'string',
      'Bemerkung'=>'string',
      'Datum'=>'string',
      'Email'=>'string',
      'Adresse'=>'string',
      'Tel'=>'string',
    );
    $writer = new XLSXWriter();
    $writer->writeSheetHeader('PZUS-1', $header);
    $array = array();
    while ($row=$result->fetch_assoc())
    {
        $array[1] = $row['id'];
        $array[2] = $row['fldSurname'];
        $array[3] = $row['fldFirstname'];
        $array[4] = $row['fldClass'];
        //$array[4] = $row['fldCourse'];
        $array[5] = $row['fldDmg'];
        $array[6] = $row['fldDate'];
        $array[7] = $row['fldEmail'];
        $array[8] = $row['fldAdress'];
        $array[9] = $row['fldTel'];
        $writer->writeSheetRow('PZUS-1', $array);
    };


    //$writer->writeSheet($array,'Sheet1', $header);//or write the whole sheet in 1 call    


    $writer->writeToStdOut();
    //$writer->writeToFile('example.xlsx');
    //echo $writer->writeToString();
    exit(0);
Computer, Microsoft Excel, HTML, programmieren, Export, MySQL, PHP
Kann ich RGB Farben statt Indexfarben nutzen?

Ich habe eine Exceltabelle in der ich durch Zahleneingabe, bestimmte Zellen in den Indexfarben einfärben kann. Ich gebe eine Zahl ein und die Zelle und alle damit verbunden Zellen oder Zellen, welche die gleiche Funktion vorweisen müssen färben sich.

Nun gibt es nur 56 Indexfarben, welche zudem auch noch ziemlich grelle Farben sind. Ich hätte gerne ein größeres Spektrum an Farben, welches ich durch die RGB Farben bekommen kann. Nur weis ich nicht wie ich dies jetzt in meine Funktion einsetzen soll.

Ich habe nur ein Feld um eine Zahl reinzuschreiben und nicht 3, also ein Feld für R, eins für G und eins für B ist nicht umsetzbar.

Anbei meine VBA Programmierung:

Sub Farbe_Topic()
' Farbe_Topic Makro: Hier wird jetzt das "Status-Feld" in der gleichen Farbe formatiert, wie die, die auch in den ARbeitsblättern gewünscht ist
' Tastenkombination: Strg+w
  Range("B2:C2").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(2, 3) ' In dieser Zelle steht zum Beispiel eine 3 --> somit Farbe rot
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(2, 11)
  End With
  Range("B3:C3").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(3, 3)
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(3, 11)
  End With
 
  Range("B4:C4").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(4, 3)
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(4, 11)
  End With
  Range("B5:C5").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(5, 3)
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(5, 11)
  End With
  Range("B6:C6").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(6, 3)
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(6, 11)
  End With
  Range("B7:C7").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(7, 3)
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(7, 11)
  End With
  Range("B8:C8").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = Tabelle11.Cells(8, 3)
    .TintAndShade = 0
    .PatternTintAndShade = 0
  Selection.Font.ColorIndex = Tabelle11.Cells(8, 11)
  End With

Vielleicht hilft dieses Bild noch dabei:

Bild zum Beitrag
Microsoft Excel, VBA

Meistgelesene Fragen zum Thema Microsoft Excel