habe zwei Fragen/Probleme. Da ich öfter einen sverweis machen muss, habe ich versucht das etwas zu vereinfachen für mich, habe aber zwei Probleme. Zum einen zähle ich mit Summeprodukt in der Splate H4 alle Zellen die einen Inhalt haben in Spalte C (der Inhalt dort kommt von einem sverweis) und vergleiche das dann per bedingte Formatierung mit dem Wert der in der Spalte F4 steht. Das Problem ist, sobald mir der Sverweis in Spalte C ein #NV zurück gibt, steht in der Spalte H4 dann das #NV eigentlich will ich aber das dort in dem Fall unten 897 steht, also das #NV nicht mitgezählt. Wie könnte ich das anders lösen?
Zweites Problem, ich hätte gerne, das mir Excel alle Spalten die ein #NV oder Falsch enthalten rechts rüber kopiert, so wie ich es hier per Hand gemacht habe mit den Einträgen C2121 und C2103, geht das irgendwie? habe hier übehraupt keine Ahnung wie ich da ansetzen soll.
Danke und Gruß Frankie
[url= Dateiupload bitte im Forum! So geht es: Klick mich! ]
20.06.2015, 21:27 (Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2015, 21:28 von WillWissen.)
Hi Frankie,
Zitat:Das Problem ist, sobald mir der Sverweis in Spalte C ein #NV zurück gibt, steht in der Spalte H4 dann das #NV eigentlich will ich aber das dort in dem Fall unten 897 steht, also das #NV nicht mitgezählt.
schreibe in H4: =ANZAHL(C:C)
Wieso hast du deine Formel in F4 als Matrixformel ( {} ) ausgelegt? Das ist doch unnötig.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
danke für die Vorschläge, habe mal soweit alles umgesetzt und komme langsam dahin wo hin sein will :). Die Matrixformeln haben keinen besonderen Grund, einfach Standartmäßig.
Jetzt ist bei mir aber noch eine Frage aufgekommen. Kann man Formeln automatisch in die nächste Zeile ziehen lassen. Also wenn eine Formel in Spalte K1 ein Ergebniss ausgibt (z.b ein sverweis) möchte ich, dass Excel die Formel automatisch in die Spalte K2 zieht, solange bis eben die Formel kein Ergebniss mehr ausgibt. Und ich will das nicht mit VBA machen, habe jetzt etwas mit "Wenn" dann "Index" rumgespielt, aber das funktioniert alles nicht. Und bevor ich weitere 2 Stunden im Nichts versenke, frage ich lieber mal :). Hintergendanke ist, dass ich nicht vorher die Formel per Hand nach unten ziehen will, da ich nicht weiß wieviele Spalten benötigt werden und das ganze dann zu aufgebläht ist.
so ganz verstehe ich dein jetziges Anliegen nicht.
Zitat:Hintergendanke ist, dass ich nicht vorher die Formel per Hand nach unten ziehen will, da ich nicht weiß wieviele Spalten benötigt werden und das ganze dann zu aufgebläht ist.
Die Formeln zum Übertragen der fehlerhaften Daten kannst du doch einfach mal ein paar hundert oder tausend Zeilen runterziehen. Da das keine Matrixformeln sind, dürfte sich das in der Performance nicht sehr bemerkbar machen.
Bau einfach noch eine Fehlerabrage herum, dann bekommst du kein #ZAHL!
(21.06.2015, 12:40)WillWissen schrieb: Hi Frankie,
so ganz verstehe ich dein jetziges Anliegen nicht.
Zitat:Hintergendanke ist, dass ich nicht vorher die Formel per Hand nach unten ziehen will, da ich nicht weiß wieviele Spalten benötigt werden und das ganze dann zu aufgebläht ist.
Die Formeln zum Übertragen der fehlerhaften Daten kannst du doch einfach mal ein paar hundert oder tausend Zeilen runterziehen. Da das keine Matrixformeln sind, dürfte sich das in der Performance nicht sehr bemerkbar machen.
Bau einfach noch eine Fehlerabrage herum, dann bekommst du kein #ZAHL!
ich habe den Header mit den Formeln also drei Zeilen als Kopie immer in einer Ablage, ich mach also eine Stückliste auf, kopiere mir den Header dann per Tastenkombi rein und mache den Abgleich und es ist einfach nicht schön, wenn ich dann da eine Kopie mit 5000 Zeilen drin liegen habe, wovon ich in 80% der Fälle nur 3 brauche.
(21.06.2015, 12:59)Frankie schrieb: ich habe den Header mit den Formeln also drei Zeilen als Kopie immer in einer Ablage, ich mach also eine Stückliste auf, kopiere mir den Header dann per Tastenkombi rein und mache den Abgleich und es ist einfach nicht schön, wenn ich dann da eine Kopie mit 5000 Zeilen drin liegen habe, wovon ich in 80% der Fälle nur 3 brauche.
Zeige uns doch einmal, wie dein Original aussieht. Anonymisiere sensible Daten. Es reichen pro Tabellenblatt einige wenige Zeilen. Du musst also keine Mega-Datei einstellen.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
21.06.2015, 17:43 (Dieser Beitrag wurde zuletzt bearbeitet: 21.06.2015, 17:44 von schauan.)
Hallo Frankie,
Du könntest, um bei der Variante ohne VBA zu bleiben, die benötigten Zeilen mit einer geeigneten Formel zählen und danach dann Deine Tabelle aufziehen. Wenn Du z.B. den Vorschlag von Peter nutzt, gibst Du dann einfach die Zeilennummer beim Erstellen ein.
Ich habe hier mal in Spalte E auf verschiedene Weise die Anzahl der Zeilen berechnet.
sorry für die lange Antwortzeit, war die Woche nicht da, danke für eure Antworten. Habe mich heute von der Thematik mit den Formeln runter ziehen auch verabschiedet. Da ich mir die Stückliste jetzt mit vba direkt in das active sheet importiere, die rumkopiererei mit dem header war doch irgendwie nicht das gelbe vom Ei. Daher hab ich jetzt den Gedanken von WillWissen umgesetzt und lass die Formeln einfach nen gutes Stück runter ziehen.
Bin heute aber auf ein weiteres Problem gestossen, habe den sverweis ebenfalls automatisiert und wollte am Ende mit Selection.AutoFill arbeiten, wenn ich nur die Zellen als Destination angebe geht es auch, aber sobald ich die variable lz einbaue kommt der debugger, sieht da einer den Syntaxfehler?
Sub DateiOeffnen()
Dim Filename As String Dim Pfad As String
ChDrive ("C:\") ChDir ("C:\DVD\")
Filename = Application.GetOpenFilename If Filename <> "Falsch" Then Filename = Dir(Filename) Pfad = CurDir