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

Kombinationen ausrechnen

Discussion in 'Office-Programme' started by Amidala1975, Nov 14, 2007.

Thread Status:
Not open for further replies.
  1. Zwecks Verpaarungsplaanung (Zucht) habe ich eine Exceltabelle erstellt
    bei der alle Möglichen Variationen eines Gencodes dargestellt werden.

    Nun kann es aber sein dass zb. bei 64 Kombinationen die gleichen mehrmals vorkommen.

    Kann ich aus einem Zellenblock die Kombinationen rausfiltern die verschieden sind?

    Es sieht in etwa so aus (die einzelnen Buchstabenpaare sind jeweils in eine einzelne Zelle übernommen worden)

    aa bb Dd Pp
    aa bb Dd Pp
    Aa bb Dd Pp
    Aa Bb Dd Pp

    In diesem Beispiel wäre aa bb Dd Pp doppelt. Ich möchte also erreichen dass ich nacher folgende Liste habe:

    aa bb Dd Pp
    Aa bb Dd Pp
    Aa Bb Dd Pp

    Noch eine weitere frage:

    ist es möglich Werte von mehreren Zellen mit einer Formel in eine Zelle zu kriegen?
    Anhand des Beispieles habe ich ja die Buchstabenpaare in 4 Zellen
    also aa bb Dd Pp, was nicht anders ging wegen der erstellung der verschiedenen möglichen Kombinationen.
     
  2. Hascheff

    Hascheff Moderator

    Hallo Amidala1975,
    mal ein anderes Thema hier im Forum, es wäre reizvoll, nach der optimalen Lösung zu suchen.

    Allerdings habe ich meine Zweifel, ob die Tabellenstruktur eines Kalkulationsprogramms der richtige Rahmen ist. Es würde wahrscheinlich etwas Aufwand erfordern, die Struktur anzupassen. Ich halte es für sinnvoll, erst mal nach Spezialprogrammen zu suchen. Einerseits ist das Thema nicht so exotisch, dass es nicht schon jemand bearbeitet hätte, andererseits nicht so aufwendig, dass es nicht auch Freeware geben könnte.
     
  3. Ich bin halt ein Excelfreak :-)
    Die Tabelle hatte ich eigentlich schnell. Habe sie für bis zu 64 Kombinationen erstellt.

    Ein Zuchtprogramm hab ich auch schon, dort kann man auch Verpaarungen planen, nur ist das dort nicht wirklich aussagekräftig weil es nicht alle Farben ausgibt die bei einem Wurf fallen können.

    Kennt hier denn jemand zufällig eine Freeware die mögliche Buchstabenkombinationen auswirft?
     
  4. Beverly

    Beverly Halbes Megabyte

    Hi Amidala,

    versuche es mit diesem Code

    Code:
    Sub doppelte_eliminieren()
        Dim raZelle As Range
        Dim strStartadresse As String
        Dim loLetzte As Long
        Dim loZeile As Long
        With ActiveSheet
            loLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
            For loZeile = loLetzte To 5 Step -1
            '   von Peter Haserodt
                Set raZelle = .Columns(1).Find(.Cells(loZeile, 1), .Cells(loLetzte, 1), , xlWhole, , xlNext, True)
            '   *****
                strStartadresse = raZelle.Address
                Do
                    Set raZelle = .Columns(1).FindNext(raZelle)
                    If raZelle.Address = strStartadresse Then Exit Do
                    If .Cells(raZelle.Row, 2).Value = .Cells(loZeile, 2).Value And .Cells(raZelle.Row, 3).Value = .Cells(loZeile, 3).Value And .Cells(raZelle.Row, 4).Value = .Cells(loZeile, 4).Value And raZelle.Row <> loZeile Then
                        .Range(.Cells(raZelle.Row, 1), .Cells(raZelle.Row, 4)).ClearContents
                    End If
                    If raZelle.Row = loLetzte Then Exit Do
                Loop While Not raZelle Is Nothing
            Next loZeile
        End With
        Set raZelle = Nothing
    End Sub
    
    Werte stehen in Spalte A bis D von Zeile 5 an.

    Um Werte aus mehreren Zellen zu kombinieren kannst du folgende prinzipielle Formel verwenden

    =A5&B5&C5&D5
     
  5. Danke für den Code. ich weiss nur nicht wo ich den hinpacken muss.
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi Amidala,

    kopiere ihn in ein allgemeines Modul. Dann kannst du ihn über Extras -> Makro -> Makros starten.
     
  7. Auf die Gefahr mich hier total zu blamieren aber:

    Was ist ein allgemeines Modul?
     
  8. Beverly

    Beverly Halbes Megabyte

    Hi Amidala,

    mache einen Rechtsklick auf einen Tabellenreite -> Code anzeigen und du gelangst in die VBA-Umgebung. In der Symbolleiste gehst du auf Einfügen -> Modul (nicht Klassenmodul!). In das Codefenster rechts (das obere, falls da 2 sind) kopierst du den Code. Jettz steht er in einem allgemeinen Modul.

    Noch was: keine Angst, du blamierst dich ganz gewiss nicht, denn "dumme" Fragen gibt es nicht. ;)
     
  9. Vielen Dank!

    ich habs geschafft es reinzukopieren, aber irgendwie funktioniert das nicht.
    Es kommt die Meldung Syntaxfehler.

    Da auf der Tabelle noch andere Dinge sind ausser der Kombinationsliste von der ich die doppelten raushaben will, sollte ich doch auch irgendwie angeben wo er da die doppelten rausnehmen soll, oder?

    Irgendwie raff ich das nicht, seufz
     
  10. Hascheff

    Hascheff Moderator

    Hallo Amidala,
    Du hast noch nicht geschrieben, welche Excelversion du hast.
    Dazu hat Beverly erläutert:
    Das Ende der Liste nach unten sucht sich der Code selbst. Wenn bei dir der Anfang oben nicht Zeile 5 ist, kannst du Zeile 8 im Code ändern.
    Code:
            For loZeile = loLetzte To [COLOR="Red"]5[/COLOR] Step -1
    Wenn es nicht Spalten A bis D sind, musst du hier ran:
    Code:
                    If .Cells(raZelle.Row, 2).Value = .Cells(loZeile, 2).Value And .Cells(raZelle.Row, 3).Value = .Cells(loZeile, 3).Value And .Cells(raZelle.Row, 4).Value = .Cells(loZeile, 4).Value And raZelle.Row <> loZeile Then
                        .Range(.Cells(raZelle.Row, 1), .Cells(raZelle.Row, 4)).ClearContents
    
    @ Beverly: Ich seh hier nur den Vergleich der Spalten B bis D.
     
  11. Beverly

    Beverly Halbes Megabyte

    Hi Hascheff,

    es muss auch nur B bis D verglichen werden, da mittels Find-Next bereits nach Dopplungen in Spalte A gesucht wird. Erst dann, wenn in Spalte A eine Dopplung gefunden wird, wird geprüft, ob auch B bis D übereinstimmen.
     
Thread Status:
Not open for further replies.

Share This Page