1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel Tabellen Transformation

Discussion in 'Office-Programme' started by taik84, Oct 17, 2006.

Thread Status:
Not open for further replies.
  1. taik84

    taik84 Byte

    Hallo!

    Ich würde mich freuen, wenn mir jemand helfen könnte, folgendes Problem zu lösen.

    In einer Tabelle liegen Daten:
    A B C D E
    1 fl.Nr. Nachname Vorname ind.Nr. Gewinn
    2 1 Mustermann Hans 123456 12
    3 2 Asterfrau Eva 987654 0
    4 3 Mustermann Georg 567378
    . . . . .
    . . . . .
    . . . . .
    Aus dieser Tabelle sollte folgende werden:
    A B C D E
    1 fl.Nr. Name ind.Nr. Gewinn
    2 1 A... ...7654 0
    3 2 M... ...3456 12
    Bem.: Die neue Tabelle sollte Nach Nachnamen sortiert sein, wobei vom Nachnamen nur die erste Buchstabe erscheint. Von der individuellen Nummer nur die letzten 4 Zeichen. Es sollen nur die Einträge erscheinen, die unter Gewinn keine Leereinträge haben, wohl aber wenn es Null ist.
    Der Gewinn liegt zwischen MAX und MIN
    Tabelle MAXMIN:
    A B
    1 MAX 0
    2 MIN 12

    MfG

    T.
     
  2. Hascheff

    Hascheff Moderator

    Ist das eine einmalige Aktion oder willst du häufig solche Teilabbildungen des Datenbestandes durchführen?

    In jedem Fall geht es so los:
    Spalte F lässt du frei.
    Den Kopf kopierst du.
    In Spalte G erscheint die lfd.Nr.
    In Zelle H2 kommt eine Formel:
    =WENN(ISTZAHL(E2);LINKS(B2;1)&"...";"")
    Entsprechend in I2:
    =WENN(ISTZAHL(E2);"..."&RECHTS(D2;4);"")
    J2 ist klar:
    =E2

    Wie es weitergeht, hängt von deiner Antwort ab.
    Ich hoffe, dass kein Fehler in den Formeln ist, hab nicht getestet.
     
  3. taik84

    taik84 Byte

    So weit war ich schon. Ich habe nur leider leere Zeilen und die sollte es nicht geben.
     
  4. Hascheff

    Hascheff Moderator

    Und? was ist nun?
    Davon hängt der weitere Weg ab.
     
  5. taik84

    taik84 Byte

    Ich habe nicht ganz Deine Frage verstanden.

    Die Daten werden öffters eingegeben, jedoch muss die gewünschte Tabelle einmal erstellt werden. Falls sich irgendwas in der Datentabelle irgendwas ändern sollte, soll es auch auswirkungen auf die gewünschte Tabelle auch haben.
     
  6. Hascheff

    Hascheff Moderator

    Genau das wollte ich wissen, das macht die Sache komplizierter als ein einmaliges Abbild.
    Ich werde morgen Früh mal darüber nachdenken.
     
  7. Hascheff

    Hascheff Moderator

    Hier bin ich wieder.
    Meine erste Idee hat nicht funktioniert.
    Da muss man wohl ein Makro programmieren.

    Bevor ich meinen (komplizierten) Weg darlege, möchte ich erst noch fragen, was du davon hältst, lieber auf Access umzusteigen. Dort ist alles bedeutend einfacher (jedenfalls wenn man das Programm kennt). Ich würde dir auch dabei helfen.
    Nicht nur deine Excel-Tabelle, sondern auch noch andere aktuelle Threads stellen eigentlich Datenbanken dar und Excel ist nun mal kein Datenbank-Programm, auch wenn es ein paar Datenbank-Funktionen hat.

    Besonder würde ich zu diesem Schritt raten, wenn die Anzahl der Datensätze veränderlich ist. Dann ist ein Excel-Makro nicht einfach durch "Aufzeichnen" zu erstellen, sondern muss auch noch programmiert werden.
     
  8. taik84

    taik84 Byte

    Problematisch an Access ist, dass ich es nicht habe und ich weiss nicht, ob die Daten aus der Tabelle in Access so einfach reinzubekommen sind und ob man (was wichtiger ist) wieder in Excel umwandeln kann.
     
  9. Hascheff

    Hascheff Moderator

    Umwandeln ist in beide Richtungen möglich. Ich meinte aber, dass du vollständig auf Access umsteigst, sonst ist es genau so umständlich wie in Excel allein.
    Aber wenn du es nicht hast...
    Da hast du wohl Office 2003 Home?
    Deswegen bin ich noch nicht umgestiegen. In Office 2000 ist Access eben noch drin.

    Na dann bleiben wir eben in Excel.
    Ich schlage vor, dass du erst mal so vorgehst, wie ich im folgenden beschreibe.
    Wenn alles geklappt hat, kannst du es beim nächsten mal als Makro aufzeichnen.
    Dann kann man fragen, ob das Makro so bleiben kann, oder ob das Makro noch an die wechselnden Situationen angepasst werden kann.

    Die Formeln hast du ja schon. Wenn du jetzt im rechten Teil auf Daten sortieren gehen würdest, würde auch die Ursprungstabelle links mit sortiert. Außerdem macht sich das nicht mit Formeln.
    Also markierst du den ganzen rechten Bereich und kopierst ihn.
    Dann gehst du auf ein anderes Tabellenblatt und wählst im Menü Bearbeiten - Inhalte einfügen - Werte.
    Nun kannst du hier sortieren nach Name und filtern Gewinn - nicht leer.
    Reicht das?
     
  10. taik84

    taik84 Byte

    Ich habe leider nur Office 2007. Access ist da nicht enthalten. ;)

    Lässt es sich nicht etwas idioten-sicherer Gestalten? :confused: Beim nächsten mal, wenn ich diese Tabelle baruchen werde, habe ich schon vergessen, wie ich es machen muss.
     
  11. Hascheff

    Hascheff Moderator

    Ja, klar, aber das musst du selbst machen, weil du an der Tabelle sitzt.
    Danach läuft im Idealfall das Ganze mit einem Tastendruck.
    Der Mensch wächst mit seinen Aufgaben. Gerade Bearbeiten - Inhalte Einfügen braucht man bei vielen Gelegenheiten. Die meisten wissen bloß gar nicht, dass es so was gibt.
    Ich habe noch eine Frage zur Struktur der Tabelle: Ist die Zeilenzahl fest oder wächst die Tabelle ständig oder kommt nur selten mal eine Zeile hinzu? Ich muss wissen, wie flexibel das Makro sein muss.
    Gib diesem Bereich einen Namen: Markieren und Namen oben ganz links in die Eingabezeile schreiben.
    Hast du schon probiert? Kann es weitergehen?
     
  12. taik84

    taik84 Byte

    Ich habe schon filtrieren probiert. Jedoch obwohl ich die fl.Nr. nicht filtrieren wollte, wurde sie auch filtriert. Beim filtrieren blendet Excel ja nur die leeren Zeilen aus. Die fl.Nr. wird somit auch nicht mehr fortlaufend sein.

    Also eine Lösung mit Knopfdruck gefällt mir sehr. :)
     
  13. Hascheff

    Hascheff Moderator

    Autsch, das hatte ich vergessen.
    Das bedeutet, die brauchst du auch gar nicht kopieren, die muss man hinterher neu erstellen.
    Ich hoffe, dass wir das schaffen.
     
  14. taik84

    taik84 Byte

    Wovon hängt es ab? Und was wird gebraucht?

    Ich könnte eine Beispieldatei mit Beispieldatensatz zusenden. Ich bräuchte nur die Email-Adresse.
     
  15. Hascheff

    Hascheff Moderator

    Das hast du schon ausreichend in #1 gemacht.
    Es sei denn, du schickst die Überschrift mit und ich lese da so einen Begriff wie "Club". Dann wäre meine Frage aus #11 beantwortet:
    Zu deiner Frage
    Deine Mitarbeit. Ich bin nicht dafür, dass ich dir eine fertige Lösung baue. Das wäre zweifellos mit weniger Zeitaufwand für dich und mich verbunden. Aber der Sinn eines Forums besteht doch darin, das andere mit einem ähnlichen Problem auch Hilfe erhalten. Und dein Vorteil ist, dass du eine Menge dazulernst.

    Also, du machst Schritt für Schritt, was ich dir erkläre (Ideal wäre, wenn du dabei verstehst, was abgeht.) und meldest, ob es funktioniert.
    Bau ich dir eine fertige Lösung, kommt meist hinterher ein
     
  16. taik84

    taik84 Byte

    Also zu der Struktur: Im Excel-File sind 3 Tabellen, die sich jeweils auf eigenen Blättern befinden (= 3 Blätter).
    1. Blatt: fl.Nr. | Nachname | Vorname | ind.Nr.
    2. Blatt: =Blatt1!A | =Blatt1!B | =Blatt1!C | =Blatt1!D | Gewinn
    3. Blatt: Muss das gewünschte Ergebnis darstellen.

    1. Blatt wird nach Bedarf ausgetauscht. So kommen die neuen Datensätze rein. Die Anzahl ist unbestimmt. Sie kann also 100 sein aber auch 200 oder mehr sein. Erfahrung sagt, dass es nie mehr als 300 Einträge gibt.

    Im 2. Blatt werden nur die Gewinne manuell eingetragen.

    3. Blatt sollte das Endergebnis darstellen.

    Deswegen Anhang.
     

    Attached Files:

  17. Hallo,

    hab Dir mal als Anreiz ein kleines Makro in Deine Tabelle eingebaut, welches die Sortierfunktion wahrnimmt. Kannst Du beliebig erweitern oder ändern.
    Ich kann Dir leider im Moment nicht weiterhelfen, denn :wegmuss:

    Aber ich denke, damit kommst Du schon weiter.

    Greetz FE :bet:

    View attachment $neu.zip
     
  18. taik84

    taik84 Byte

    Danke für die schnelle Antwort. Problem besteht jedoch darin, dass es nicht funktioniert, wenn es mehrere leere Zeilen gibt... Wie könnte man das auch beheben?
     
  19. Hascheff

    Hascheff Moderator

    Ich kann deinen Fehler nicht bestätigen, bei mir funktioniert es.
    Der Fehler würde zum Beispiel entstehen, wenn man Zeile 18 und 19 vertauscht. Hast du im Makro rumgefummelt oder beim Übertragen in deine Datei einen Fehler gemacht?

    Jetzt musst du noch Spalte A ausfüllen.
    Zwischen
    Selection.Delete Shift:=xlUp
    und
    End If
    fügst du ein:
    Else
    Cells(i, 1).Value = i - 2


    (ungetestet)
     
  20. taik84

    taik84 Byte

    Ich habe nichts verändert. Ich habe es in eine andere Datei übertragen. Aber auch vollständig. Trotzdem bei 160 Einträgen sind 8 leere Einträge. Diese tauchen insbesondere da auf, wo mehr als eine leeren Zeilen in der Datentabelle auftauchen.
     
Thread Status:
Not open for further replies.

Share This Page