Seite 1 von 1

Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Mo, 12.05.2014 03:07
von thomasp
Hallo,

mein Name ist Thomas und ich habe 2 Fragen und würde mich freuen, wenn jemand einen Tipp hätte.

1.) Duplikate:
Ich habe eine Tabelle, die wie folgt aufgebaut ist

Author-ID | Bild-ID | Index
1222 401 1
1222 402 2

Hier gilt jeweils das Bild mit der höchsten ID als aktuell. In der Tabelle gibt es über 1000 Autoren und ich möchte es
so sortieren, dass jeweils nur der höchste Index pro Autor markiert wird, damit ich den Rest löschen kann, im
Falle hier wäre richtig:

Author-ID | Bild-ID | Index
1222 402 2

2.) Zuordnung:
In einer anderen Tabelle habe ich folgendes
Autor-ID | Bild-ID
1000 | 100
1200
1220
1222 | 402

Nicht alle Autoren haben Bilder eingestellt. Ich möchte nun Autor-ID 1222 die Bild ID 402 zuweisen, wie geht das?
Die Lücken, also Autor 1200 und 1220 sollten keine Einträge in Spalte Bild-ID haben.

Ich würde mich sehr freuen, wenn jemand Rat wüsste.

Gruss
Thomas

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Mo, 12.05.2014 09:52
von clag
Hallo thomasp,

für dein erstes Anliegen würde ich eine Hilfsspalte D einrichten mit folgender Formel in allen Zeilen

=WENN(A2=A3;"X";"")

danach sortierst du den Datenbereich erst nach Bild dann nach Autor aufsteigend
dann sollten alle Zeilen die nicht erforderlich sind mit einem X in der Hilfsspalte versehen sein
mit einer Filter Aktion kannst du dann entweder das unerwünschte löschen
oder die gewünschten Daten in eine neue Tabelle ausgeben lassen das würde ich tun.

Denn mit dieser neuen Tabelle und SVERWEIS() kannst du dann gleich dein zweites Anliegen erledigen.

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Mo, 12.05.2014 10:48
von clag
Hallo thomasp,

habe dir mal eine Beispieldatei erstellt
etwas abgeändert mit einem persistenten Spezialfilter
Bilder-ID.ods
(9.67 KiB) 146-mal heruntergeladen
hilf dir das?

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Mo, 12.05.2014 12:35
von thomasp
Hallo Clag,

auf den ersten Blick gesehen ja und auch für weitere und eigene Projekte.

Ich denke es ist genau das was ich gesucht habe.

Wenn Du aus München bist oder wenn nicht, mal dort bist, schick mir eine PN,
ein Freibier im Biergarten ist Dir sicher!

1000 Dank und viele Grüße
Thomas

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 13:50
von thomasp
Hallo Funktioniert super! Aber ich habe noch eine kleine Frage:
Bzw. brauche Hilfe zur richtigen Formulierung des SVERWEIS. Danke.

Warum funktioniert das nicht =SVERWEIS(A1:B1;avataresort!$A$9:A128000;FALSCH)

12800 steht für die gesamtanzahl der Einträge, FALSCH für eine totale Übereinstimmung
A1:B1 für die Spalten in avataresort
$A$9 für die Zielspalte in der Haupttabelle

Hintergrund:
in Tabelle avataresort:
sind jetzt alle sortiert und nur die aktiven gelistet.

Sortiert-ProfilID (=Spalte A) | sortiert Bild-ID (=Spalte B)
2 | 2510922
3 | 31472967
5 | 51183

Jetzt möchte ich via SVERWEIS mit meiner Haupttabelle migrieren. D.H. in avataresort (Spalte B)
die Einträge zuweisen und zwar in der Haupttabelle, zur jeweiligen Profil-ID. Hintergrund ist, dass
nicht alle Profil-ID Avatare haben und in der Haupttabelle sollen nur die Werte aus Tabelle avataresort
der jeweiligen Profil-ID zugewiesen werden. Hat das Profil keinen Avatar, soll das Feld leer sein

Haupttabelle soll dan so aussehen
Profil-ID (=Spalte A) | Avatar (=Spalte I)
1 | KEIN-WERT
2 | 2510922 (von Spalte B aus avataresort
3 | 31472967
4 | KEIN-WERT
5 | 51183

Ich habs jetzt bewusst so formuliert, weil der Background für mich zählt und ich das Ganze auch verstehen will
und keine vorgefertigte lösung will.

Gruss
Thomas

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 15:02
von paljass
hI;
Warum funktioniert das nicht =SVERWEIS(A1:B1;avataresort!$A$9:A128000;FALSCH)
Weil A1:B1 kein eindeutige Suchbegriff ist und die Tabelle avataresort! vielleicht nur avataresort heißt.
Alles in allem Spekulation, zumal auch nicht klar ist, was du mit A1:B1 willst.
Also doch ne Beispieltabelle - auch wenn dich
und ich das Ganze auch verstehen will
und keine vorgefertigte lösung will.
ehrt.

Gruß
paljass

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 19:33
von clag
Hallo thomasp,

die Formel die deinen Wunsch erfüllt ist die folgende
=WENN(ISTNV(SVERWEIS(A2;Tabelle1.$A$1:$B$6;2;0));"";SVERWEIS(A2;Tabelle1.$A$1:$B$6;2;0))

mit WENN(ISTNV()) wird auf nicht Existenz des Suchparameters geprüft und bei WAHR ein "" ausgegeben
sonst die normale SVERWEIS() Funktion die "0" als letzter Parameter ist wichtig damit nur exakte Übereinstimmungen gelten
2_63974_ BeispielLösung_2.ods
(8.46 KiB) 105-mal heruntergeladen
hier als Beispieldatei

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 20:11
von thomasp
Danke, das hatte ich vergessen,
A1 und B1 deshalb, weil in Spalte A und Spalte B ja Werte darinstehen.

Was bedeutet ISTNV genau.
Kann es auch sein, dass "FALSCH" eine 0 hätte sein sollen.

Gruss
Thomas

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 20:28
von clag
"NV#" ist eine Fehlermeldung die zB auftaucht wenn SVERWEIS() den Suchparameter nicht findet
mit ISTNV() wird geprüft ob NV# der Fall ist, wenn "wahr" also Fehler dann "" also nichts
wenn ISTNV() "falsch" liefert dann ist SVERWEIS() ok und es wird das Ergebnis geliefert

letzte 0 ist letzter Parameter von SVERWEIS() = exakte Übereinstimmung erforderlich

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 21:05
von thomasp
Was bedeutet $B$6 genau?

Ich vermute mal, dass Spalte B in Tabelle1 bis zum 6ten Eintrag abgesucht werden soll,
aber was mache ich, wenn ich insgesamt 8370 Einträge habe.

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 21:30
von clag
in Gegensatz zu "B6" einer relativen Zelladressierung
ist $B$6 eine absolute Zelladressierung

das bedeutet bei einer Kopier- oder Verschiebeaktion einer absoluten Adresse bleibt diese so erhalten
eine relative Adresse ändert sich mit jeder verschobenen Zeile/Spalt

steht in B2 =A1 und du verschiebst diese Formel nach E3 wird aus =A1 =D2
steht in B2 =$A$1 und du verschiebst diese Formel nach E3 steht in E3 immer noch =$A$1

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Di, 13.05.2014 23:22
von thomasp
Erstmal danke für Eure Hilfe, schön langsam verstehe ich, nur ist mir folgendes unklar.

Formel: =WENN(ZÄHLENWENN($A$28:$B$100000;A28)=$A$28;F28)
Nimmt den jeweiligen Wert von Spalte A (z.B: 49), in diesem Falle aus Zeile 28 und vergleicht alle
100.000 Einträge mit Spalte B, findet er diesen in Spalte B (49) und ist dieser gleich (Vergleichsoperator =)
also ($A$28) liest er den Wert von Spalte F28 aus,

wenn nicht, lässt er das Feld leer.

Leider, funktioniert die Formel nicht,
und warum heisst es nur =, anstatt wie in php ==

Danke und Gruss
Thomas

Re: Doppelte Einträge markieren, die neuesten dann zuweisen.

Verfasst: Mi, 14.05.2014 00:58
von Karolus
Hallo
( wie kommst du auf diese abenteuerliche Formelerklärung ?? )
Nein!
ZÄHLENWENN zählt wie oft der Wert aus A28 im Bereich A28:B100000 vorkommt - (aus naheliegenden Gründen mindestens 1 mal)

Der WENN -vergleich dieses Resultats mit dem Wert aus A28 ist wohl wenig zielführend.

Karolus
und warum heisst es nur =, anstatt wie in php ==
Eine Zuweisung respective die Einleitung der Formel geschieht mit dem =Gleichheitszeichen am Anfang -- innerhalb einer Calcformel gibts keine Zuweisung mehr deshalb ist das einfache Gleichheitszeichen dort als Vergleichsoperator verwendbar.