Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1300to1304
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WENN/INDEX/VBA?!

WENN/INDEX/VBA?!
05.03.2013 15:39:04
Judith
Hallo Ihr Lieben,
ich stehe momentan vor einem großen Rätsel.
Ich möchte das Excel Zeilen und Spalten vergleicht und dementsprechend wiedergibt.
Heißt:
Die Spalten E-Z definieren eine Wohnung.
Die Spalten V und X haben jeweils ein "Ja" oder ein "Nein". In J steht eine m² Angabe und in N die €/m2.
Jetzt möchte ich, dass Vergleichsobjekte gesucht werden.
Wenn also die Wohnung in E-Z 15 bei V ein "Ja" hat und bei X ein "NEIN" sollen nur Vergleichsobjekte rausgesucht werden, die ebenfalls bei V ein "JA" und bei X ein "Nein" stehen haben.
Jetzt sollen aber nur all die Wohnungen zum Vergleich genommen werden, deren J "=" bzw. +/- 10 beträgt. Dann habe ich quasi alle Wohnungen im Vergleich die in V und X übereinstimmen und J +/- 10 sind.
Jetzt sollen aus den "gesuchten" Wohnungen die drei mit dem höchsten N Wert genommen werden und die dazugehörigen Werte von E15 bis Q15 in AG15 übertragen werden. Allerdings darf in AG 15 nicht E-Z15 selber wiedergegeben werden.
Kann ich hier mit einer verschachtelten Index/Vergleich/Wenn Funktion arbeiten oder benötige ich hierfür ein VBA?!
Für die Hilfe bedanke ich mich im Vorraus.
Liebe Grüße
Judith

49
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispielmappe hochladen! owT
05.03.2013 15:52:18
Rudi

Was hast du denn bisher?
05.03.2013 15:52:29
Klaus
Hallo Judith,
aus dem Ärmel schütteln kann sich das wohl keiner. Was hast du denn bisher? Lad bitte deine Datei-so-weit mal hoch.
Grüße,
Klaus M.vdT.

AW: Was hast du denn bisher?
06.03.2013 09:01:24
Klaus
Hallo Ihr Lieben,
Hallo Judith
ich stehe momentan vor einem großen Rätsel.
Ich auch - deine Fragestellung erzeug bei mir ein großes Fragezeichen. Mehr weiter unten.
Die Spalten E-Z definieren eine Wohnung.
Die Spalten V und X haben jeweils ein "Ja" oder ein "Nein". In J steht eine m² Angabe und in N die €/m2.
Jetzt möchte ich, dass Vergleichsobjekte gesucht werden.

So weit so klar.
Wenn also die Wohnung in E-Z 15 bei V ein "Ja" hat und bei X ein "NEIN" sollen nur Vergleichsobjekte rausgesucht werden, die ebenfalls bei V ein "JA" und bei X ein "Nein" stehen haben.
Was ist DIE Wohnung? Wo wählst du DIE Wohnung?
Hier vergleichst du Badmodernisierung und Balkon auf vorhanden ja/nein. Der Vergleich auf Spalte X geht nicht, da dort #NV Fehler stehen. Diese korrigieren kann man nicht, da du dich in Spalte Z auf eben dies #NV beziehst. Allerdings steht in Spalte Z dann Balkon ja/nein. Warum fragst du nicht direkt nach einem Vergleich auf Spalte Z (das habe ich jetzt nämlich so gemacht). Unnötige Verwirrung.
Jetzt sollen aber nur all die Wohnungen zum Vergleich genommen werden, deren J "=" bzw. +/- 10 beträgt. Dann habe ich quasi alle Wohnungen im Vergleich die in V und X übereinstimmen und J +/- 10 sind.
In J vergleichst du die m². Du hast bei +-10 leider keine Einheit angegeben. Ich gehe jetzt davon aus, du meinst damit m² und nicht Prozent.
Jetzt sollen aus den "gesuchten" Wohnungen die drei mit dem höchsten N Wert genommen werden und die dazugehörigen Werte von E15 bis Q15 in AG15 übertragen werden.
HAEH?
Also, ich finde drei Wohnungen. DIe haben je Werte in E bis Q, das sind 13 Werte. Mal drei Wohnungen, das sind 39 Werte und die sollen jetzt ALLE nach AG15 geschrieben werden? in EINE Zelle?
Allerdings darf in AG 15 nicht E-Z15 selber wiedergegeben werden.
*BAHNHOF*
Kann ich hier mit einer verschachtelten Index/Vergleich/Wenn Funktion arbeiten oder benötige ich hierfür ein VBA?!
Ich habe es jetzt so interpretiert:
Wähle eine Wohnung aus (ohne VBA - gebe die Zeilenzahl der Wohnung in einer Hilfszelle an)
Suche Wohnungen raus, die bei Modernisierung, Balkon und m² (+-10m²) identisch sind.
Nimm von diesen Wohnungen die Top 3 nach Kaltmiete / m²
Erstelle ab AG15 eine NEUE TABELLE nach dem Vorbild der alten Tabelle, in dieser sollen die Top3 Wohnungen stehen.
Das ganze möglichst ohne VBA.
Hier meine Realisierung:
https://www.herber.de/bbs/user/84213.xlsx
ich habe überall, wo Platz war, Hilfszellen und Hilfsspalten eingefügt.
Tip1:
den Download Link NICHT in die Code-Tags packen, das macht es unnötig kompliziert. Ich musste den Link abtippen.
Tip2:
Ausser dir weiss niemand, was du erreichen willst. Wenn du eine Musterdatei erstellst, schreibe dein Wunschergebniss einmal von Hand herein, damit die Helfer überprüfen können ob sie verstanden haben was du brauchst.
Tip3:
Excel kann mehrere Tabellenblätter verwalten, nutze das. Währ das meine Datei, hatte ich die Top-3 Wohnungen nicht nach AG15 ausgelagert sondern in ein neues Blatt. Und die Wohnungs-Auswahl per VBA realisiert.
Grüße,
Klaus M.vdT.

Anzeige
AW: Was hast du denn bisher?
06.03.2013 10:19:44
Judith
Guten Morgen,
danke ersteinmal für die schnelle Antwort.
Wenn also die Wohnung in E-Z 15 bei V ein "Ja" hat und bei X ein "NEIN" sollen nur Vergleichsobjekte rausgesucht werden, die ebenfalls bei V ein "JA" und bei X ein "Nein" stehen haben.
Hier vergleichst du Badmodernisierung und Balkon auf vorhanden ja/nein. Der Vergleich auf Spalte X geht nicht, da dort #NV Fehler stehen. Diese korrigieren kann man nicht, da du dich in Spalte Z auf eben dies #NV beziehst. Allerdings steht in Spalte Z dann Balkon ja/nein. Warum fragst du nicht direkt nach einem Vergleich auf Spalte Z (das habe ich jetzt nämlich so gemacht). Unnötige Verwirrung.
Das war nicht meine Absicht ich meinte natürlich die Spalte Z.
Jetzt sollen aber nur all die Wohnungen zum Vergleich genommen werden, deren J "=" bzw. +/- 10 beträgt. Dann habe ich quasi alle Wohnungen im Vergleich die in V und X übereinstimmen und J +/- 10 sind.
In J vergleichst du die m². Du hast bei +-10 leider keine Einheit angegeben. Ich gehe jetzt davon aus, du meinst damit m² und nicht Prozent.
Ja +- 10 m² sind gemeint.
Jetzt sollen aus den "gesuchten" Wohnungen die drei mit dem höchsten N Wert genommen werden und die dazugehörigen Werte von E15 bis Q15 in AG15 übertragen werden.
HAEH?
Also, ich finde drei Wohnungen. DIe haben je Werte in E bis Q, das sind 13 Werte. Mal drei Wohnungen, das sind 39 Werte und die sollen jetzt ALLE nach AG15 geschrieben werden? in EINE Zelle?
Ab AG15 bis BX15. Die Idee mit den anderen Tabellenblättern ist gut, aber mein Vorgesetzter braucht das alles in einer Liste :/ Ich hab anhand deiner Vorlage die Wohnungen 2 und 3 mal hinter die erste gesetzt.
Allerdings darf in AG 15 nicht E-Z15 selber wiedergegeben werden.
*BAHNHOF*
Heißt wenn ich Wohnung XY betrachte, darf er mir diese Wohnung nicht als Vergleichswohnung anbieten. Wenn ich also einen Apfel habe, möchte ich als Vergleich Birne, Banane und Ananas und nicht Apfel. Ich hoffe das macht die Sache verständlicher?! :)
Die Vorlage ist echt prima und sie macht im Großen und Ganzen auch das was sie soll. Allerdings muss ich jetzt (wenn ich die Tabelle richtig verstanden habe) in F5 jede Wohnung einzeln eingeben?! Bei über 3000 wird das dann glaube ich ganz schon kompliziert...
Schön wäre eine Formel die ich runterkopieren kann.
Was ist DIE Wohnung? Wo wählst du DIE Wohnung?
DIE Wohnung steht in E16 bis Z16. Das sind alles Werte die eine Wohnung definierren. Und für eben genau diese Wohnung möcte ich, dass er mir 3 Vergleichsobjekte gibt die er in die selbe Zeile (in diesem Fall 16) schreibt. Wenn ich die Formel runterkopiere soll Excel die Wohnung E17 bis Z17 nehmen und die Vergleichsobjekte in Zeile (AG bis ....) ziehen.

Die Datei https://www.herber.de/bbs/user/84214.xlsx wurde aus Datenschutzgründen gelöscht


Danke für die Mühe :)
Liebe Grüße
Judith

Anzeige
AW: Was hast du denn bisher?
06.03.2013 11:23:18
Klaus
Hi,
ich hatte dich so verstanden, dass jeweils nur EINE Wohnung verglichen werden soll. Nach deiner Erklärung erst verstehe ich, dass JEDE Wohnung verglichen wird.
Naja. Du müsstest jede Wohnung einzeln auswählen, die Bezugsformel für jede einzelne Wohnung auskommentieren und dann die (über die Index-Rang-Kombo) gefundenen Wohnungen dazu kopieren.
Ich habe mal ein Makro geschreiben, welches das für dich übernimmt!
https://www.herber.de/bbs/user/84218.xlsm
Nebenbei habe ich die meisten Hilfsspalten eingedampft, jetzt sinds nur noch 2. Die FOrmeln in AA und AB musst du bis zum Ende runter kopieren, das Makro macht dann den Rest.
In der Musterdatei ergibt das relativ viele #NUM Fehler, wenn keine oder weniger als 3 Vergleichwohnungen gefunden wurden. Sag deinem Chef, #NUM heisst keine Wohnung gefunden und ist Absicht ;-) Aber wenn du ein paar 1000 Vergleichswohnungen hast, wird das bei dir warscheinlich nicht vorkommen.
Die 10m² habe ich fix in die Formel von AA17 eingebaut.
Grüße,
Klaus M.vdT.

Anzeige
AW: Was hast du denn bisher?
06.03.2013 14:15:03
Judith
Makros so aus dem Ärmel schütteln würde ich auch gerne können ;)
Habe das Muster jetzt auf meine Datei übertragen. Aus AA und AB sind jetzt AG und AH geworden. Formeln angepasst und runterkopiert. Makro angepasst und durchlaufen lassen. Allerdings habe ich jetzt statt der Vergleichswohnungen überall #ZAHL?!
Bestimmt hab ich was falsch gemacht aber ich find den Fehler einfach nicht...

Die Datei https://www.herber.de/bbs/user/84221.xlsm wurde aus Datenschutzgründen gelöscht


Ich hoffe der zeigt jetzt auch das Makro an...?!
Liebe Grüße
Judith

Anzeige
AW: Was hast du denn bisher?
06.03.2013 14:49:35
Klaus
Huhu,
gut, dann check ich mal eben die Datei durch!
Das steht in AI15:
=INDEX(E:E;SMALL(#REF!;1))
Du hast die Spalten/Zeilenanzahl geändert und dabei den Bezug zerschossen.
Das steht in AX14:
=INDEX(E:E;SMALL(#REF!;1))
Du hast die Formel kopiert, aber den Bezug 1 nicht auf 2 geändert. Bei 3 passt es lustigerweise.
des steht in AH16:
=IF(AG16="";"";IF(RANK(AG16;AG:AG)+COUNTIF($A$16:AG16;AG16)-1<4;ROW();""))
COUNTIF($A$16:AG16 muss natürlich COUNTIF($AG$16:AG16 sein!
in AB:AF stehen Artefakte. Ich nehme an vom letzten unerfolgreichen Markodurchlauf.
Allerdings habe ich jetzt statt der Vergleichswohnungen überall #ZAHL?!
Bestimmt hab ich was falsch gemacht aber ich find den Fehler einfach nicht...

Nö, du hast alles richtig gemacht. Nur: Es ist komplett richtig innerhalb deiner Logik, dass keine Wohnung zum Vergleichen angeboten wird!
Ich Nummeriere die Wohnungen mal von 16 bis 20 nach ihrer Zeile.
Wohnung 16 hat kein modernisiertes Bad. Es gibt keine Vergleichbare Wohnung, also auch keine Top3.
Wohnung 17 hat einen Balkon. Es gibt keine vergleichbare Wohnung mit Balkon.
Wohnung 18 hat zwei Kandidaten die von den m² passen könnten (16 und 17), aber 16 hat kein modernes Bad und 17 keinen Balkon.
Wohnung 19 liegt nicht im +-10m² Bereich irgendeiner anderen Wohnung (die #20 ist 0,56m² zu groß um in den Verleich zu passen)
Wohnung 19 liegt nicht im +-10m² Bereich irgendeiner anderen Wohnung (die #19 ist 0,56m² zu klein um in den Verleich zu passen)
Tja. Du willst die TOP-3 Vergleiche innerhalb deiner Kriterien finden, aber es gibt keine. Das ist nicht unbedingt die beste Basis um das Makro zu testen ;-)
Ich hab die Liste mal mit Zufallseinträgen erweitert, sie funktioniert wie gewollt.
Ich hab mal alles repariert, ein paar Zufallswohnungen unten dran gehängt (andersfarbig zum besseren sehen) die tatsächlich innerhalb der Suchkriterien liegen. Läuft 1A durch. Wenns nur 2 Treffer gibt, wird bei Vergleich 3 natürlich #ZAHL stehen ... gibts 0 Treffer, steht überall #ZAHL. Aber das ist so gewollt.
Anbei der Upload:
https://www.herber.de/bbs/user/84222.xlsm
Makros so aus dem Ärmel schütteln würde ich auch gerne können ;)
Der Makrorekorder ist dein Freund! Zeichne dir kleinste Vorgänge auf und leg sie auf Buttons, frag zwischendurch im herber.de Forum nach was noch besser ginge. Schon nach ein paar Jahren schüttelst du die Makros nur so vor dir her ;-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Was hast du denn bisher?
06.03.2013 14:53:49
Klaus
Achso, die =SPALTE() Formel in AI13 und BY13 wird für das Makro nicht gebraucht, die kannst du wieder löschen. Die hab ich nur benutzt um eben zu sehen, welche Zahl ich im Makro eintragen muss. Das hast du ja gefunden und geändert:
iColF = 1 'Wohnungen fangen an in Spalte A (=1)
iColL = 26 'Wohnungen hören auf in Spalte Z (=26)
iColFV = 35 'Vergleich fängt an in SPalte AI (=35)
iColLV = 77 'Vergleich hört auf in Spalte BY (=77)

Größes Lob dass du auch die Kommentare mitgeändert hast :-)
Grüße,
Klaus M.vdT.

AW: Was hast du denn bisher?
06.03.2013 15:12:21
Judith
Die Fehler in meiner Upload Datei sind bestimmt entstanden weil ihc die Zeilen und Spalten in eine neue Arbeitsmappe kopiert habe *seufz*
Das Makro zeigt mir auch bei über 3000 Wohnungen nur #ZAHL an?!
Ich lade mal einen Teil der Originaldatei hoch. Da sind die Bezüge nicht zerschossen und in AH 16 stimmt auch alles soweit ich das sehe. Funktionieren tut es trotzdem nicht :(

Die Datei https://www.herber.de/bbs/user/84224.xlsm wurde aus Datenschutzgründen gelöscht


Anzeige
Verdammt!
06.03.2013 15:16:03
Klaus
Hi,
ich habe deine Datei komplett überarbeitet, aber nicht gespeichert und dann die alte Version hochgeladen!
Bin in weniger als 10 minuten wieder da, jetzt weiss ich ja was zu tuen ist.
Bis gleich,
Klaus M.vdT.

So! Jetzt Aber!
06.03.2013 15:25:36
Klaus

Die Datei https://www.herber.de/bbs/user/84225.xlsm wurde aus Datenschutzgründen gelöscht


Ich hab 3 mal geprüft, diesmal habe ich wirklich gespeichert!
Zur Info:
du hattest in AI15
=INDEX(E:E;SMALL($AB:$AB;1)
stehen.
Der Bezug ist aber AH! Er sucht ja nach dem kleinsten RANK, und die RANK Formel steht in AH.
Fix den Bezug geändert und bei der Gelegenheit die Fehler versteckt:
=IFERROR(INDEX(E:E;SMALL($AH:$AH;1));"")
(natürlich mit 2,3 bei den weiteren).
Nicht wundern, mein EXcel ist englisch. Wenn du die Datei lädst, siehst du die Formeln auf deutsch (müsste dann, INDEX; KKLEINSTE und WENNFEHLER sein).
Grüße,
Klaus M.vdT.

Anzeige
AW: So! Jetzt Aber!
06.03.2013 15:33:36
Judith
Den AB/AH Fehler hatte ich auch gerade gefunden :)
Makro läuft durch, hoffentlich klappts. Ich erstatte gleich Bericht.
Aber schon mal vielen, vielen Dank :D
Liebe Grüße
Judith

Wird schon laufen! Was anderes noch:
06.03.2013 15:38:04
Klaus
Hi,
ich bin zuversichtlich dass es läuft! Für heute mache ich Feierabend, ich freue mich aber morgen darauf deine Rückmeldung zu lesen (vielleicht schaue ich heute abend auch mit dem Netbook nochmal rein).
In deiner Masterdatei sind meines erachtens die Bezüge für die Berechnungen überhalb von Zeile 14 nicht ganz richtig. Eine Zeile habe ich mir ja für VBA reserviert (die grüne), aber die diversen SUBTOTAL (ich glaub TEILERGEBNISS auf deutsch) fangen meines erachtens eine Zeile zu tief an zu rechnen. Check das doch auch nochmal!
Bis morgen oder so,
Klaus M.vdT.

Anzeige
AW: Wird schon laufen! Was anderes noch:
07.03.2013 08:09:04
Judith
Oh ja stimmt,
kommt weil ich die Grüne Zeile eingefügt habe ;)
Danke :)

AW: Wird schon laufen! Was anderes noch:
07.03.2013 08:09:37
Judith
Leider funktioniert das Makro immernoch nicht :(
Vielleicht bin ich auch einfach zu doof :D

schade ... was kann ich noch tuen?
07.03.2013 09:47:45
Klaus
Hallo Judith,
bei mir funktioniert das Makro! Was kann ich noch für dich tuen?
Meine Musterdatei hast du sicherlich runtergeladen. Funktioniert das Makro bei dir in der unveränderten Musterdatei?
Was genau machst du in der Masterdatei? Fügst du dort das Makro ein? Versuch mal, den Inhalt der Masterdatei in die funktionale Musterdatei zu kopieren und dort das Makro laufen zu lassen.
Hast du vielleicht die Berechnungen auf "Manuell" gestellt? Hast du vielleicht deine Excelversion falsch angegeben (WENNFEHLER-Formel funktioniert nicht unter Xl2003 und früher)? Gibt es vielleicht OnChange Ergeignissmakros in deiner Masterdatei?
Brichst du vielleicht während des Makros ab, änderst händisch Zahlen und lässt das Makro dann weiter laufen?
Vielleicht bin ich auch einfach zu doof :D
Das kann und möchte ich nicht beurteilen. Fakt ist aber, dass mir diese Aussage nicht hilft um einen Fehler zu finden und zu eliminieren.
Grüße,
Klaus M.vdT.

Anzeige
AW: schade ... was kann ich noch tuen?
07.03.2013 10:39:24
Judith
Meine Excel Version ist richtig angegeben. Aber langsam bekomme ich das Gefühl das ich das Makro nicht richtig starte. In der Musterdatei funktionioert es bei mir nämlich auch nicht?!

AW: schade ... was kann ich noch tuen?
07.03.2013 10:53:48
Judith
Ich muss mich korrigieren
Hab erst nur 10 Zeilen dazukopiert. Makro geht.
1000 Zeilen dazu. Makro geht nicht.
Woran kann das liegen?!

AW: schade ... was kann ich noch tuen?
07.03.2013 11:11:55
Klaus
So,
hier mal eine Musterdatei mit 500 Einträgen. Getestet habe ich mit 1000 und das lief bei mir durch, aber das kann ich wegen des Herber 300kb-Limit nicht hochladen.
https://www.herber.de/bbs/user/84233.xlsm
Ich hab noch optimiert:
Die Formeln werden automatisch fortgeführt, egal wie lang die Liste ist (vielleicht hattest du das vergessen?)
In der Statusleiste ist jetzt ein Zähler, an dem du siehst das Excel noch läuft.
Anmerkung: die m² Zahlen in der Musterdatei habe ich durch Zufallszahlen ersetzt.
Wie gesagt: bei mir läufts wie Butter!
Noch ne Idee: hast du vielleicht irgendwo #DIV0! oder sonstige Fehlerwerte in den relevanten Zellen stehen? Wenn auch nur eine Wohnung #DIV0! oder #NV! als m² Angabe hat, klappt die gesamte Formellogik zusammen.
Grüße,
Klaus M.vdT.

AW: schade ... was kann ich noch tuen?
07.03.2013 11:17:50
Judith
Ich hab in der Spalte V ein paar #NV Fehler. Vielleicht liegt es ja daran...

#NV getestet: Daran kanns liegen!
07.03.2013 11:26:55
Klaus
Hi Judith,
daran kann es liegen! Ich teste grad bei mir, ein einzelnes #NV in der V-Spalte zerschießt die Formel in AG16:
=IF((V16=V$15)*(Z16=Z$15)*(J16>$J$15-10)*(J16 V16=V$15 löst sich auf zu #NV! statt zu WAHR oder FALSCH. Die gesamte Formel löst sich dann auf zu:
=IF((#NV!*WAHR*WAHR*WAHR;N16;"")
und das ergibt nicht gas gesuchte N16, sondern #NV!
Bekommst du die #NV! aus deiner Quelle ausgelöst oder brauchst du eine "harte" Formellösung? Wenn das zweite: Soll die Badmodernisierung = #NV! als JA oder als NEIN interpretiert werden?
Grüße,
Klaus M.vdT.

AW: #NV getestet: Daran kanns liegen!
07.03.2013 11:55:37
Judith
Die #NV Fehler hab ich erstmal durch "-" ersetzt. Und Tadaaaa es klappt! :D
Hab jetzt gerad mal bisschen durchgescrollt und mir ist noch etwas aufgefallen.
Gibt es eine Möglichkeit die Vergleichswohnungen nur im gleichen Stadtteil zu suchen? Muss ich dann nur die Formeln oder auch das Makro ändern?
Und wie wäre die Formel (und das Makro?) zu ändern, wenn ich nur Vergleichswohnungen suche für Wohnungen die derzeit unter 7 €/m² kosten?
Sry dass das jetzt erst so spät kommt aber mein ABteilungsleiter hätte das wohl gerne so meinte er :)
Ganz liebe Grüße
Judith

Stadteil und unter X€-m²
07.03.2013 12:16:10
Klaus
Hi,
Und Tadaaaa es klappt! :D
Das freut mich total!
Sry dass das jetzt erst so spät kommt aber mein ABteilungsleiter
Du hättest nur "Abteilungsleiter" schreiben müssen, das sagt alles. Ich fühle mit dir.
Zu "Bremen" und "7€" ... das ist easy!
Die Vergleichformel ist ja grad diese:
=IF((V16=V$15)*(Z16=Z$15)*(J16>$J$15-10)*(J16<$J$15+10);N16;"")
Zerlegte WENN-Bedingung:
(V16=V$15) ist Badmodernisierung
(Z16=Z$15) ist KZ-Balkon
(J16>$J$15-10) ist m² mehr als X-10m²
(J16<$J$15+10) ist ² weniger als X+10m²
Ergeben alle diese Ergebnisse WAHR, wird N16 eingefügt (und darauf dann der RANG-1-3 bezogen)
Willst du jetzt den Stadteil, multipliziere einfach mit der Stadtteil-Bedingung. Das müsste dann die sein:
(I16="Bremen")
ebenso die Bedingung "kostet unter 7€ / m²
(N16<7)
in die Ursprungsformel eingebaut sähe dass dan so aus:
=IF((V16=V$15)*(Z16=Z$15)*(J16>$J$15-10)*(J16<$J$15+10<b>)*(I16="Bremen")*(N16<7)< /b>;N16;"")
Den Stadtteil sowie den Preis musst du nicht fix in der Formel haben, sondern kannst es natürlich auslagern:
=IF((V16=V$15)*(Z16=Z$15)*(J16>$J$15-10)*(J16<$J$15+10<b>)*(I16=<b>$Z$1</b>) *(N16<<b>$Z$2</b>)</b>;N16;"")
Z1="Bremen"
Z2=7
Die Formellogik ist einfach: "Multipliziere Bedingungen". Ganz kurz: WAHR*WAHR=1, WAHR*FALSCH=0, FALSCH*FALSCH=0 (willst du das im Detail begreifen, google mal nach "boolean logik"). Einfach immer Bedingungen mit *(Bedingung) dranhängen.
<b>ACHTUNG!</b>
in meinem letzten Upload schreibe ich die Formeln IM MAKRO an dieser Stelle:
<b>~f~ 'Formeln bis zur letzten Zeile eintragen
.Range("AG16:AG" & lRowL).FormulaR1C1 = _
"=IF((RC[-11]=R15C[-11])*(RC[-7]=R15C[-7])*(RC[-23]>R15C10-10)*(RC[-23]<R15C10+10),RC[-19],"""")"
.Range("AH16:AH" & lRowL).FormulaR1C1 = _
"=IF(RC[-1]="""","""",IF(RANK(RC[-1],C[-1])+COUNTIF(R16C33:RC[-1],RC[-1])-1<4,ROW(),""""))"
wenn du die Formeln im Blatt änderst, musst du diesen Makroteil natürlich auskommentieren oder aktualisieren. Sonst überschreibt das Makro die Änderungen einfach.
Total sinnvoll währe glaube ich inzwischen eine Userform in der Art:
Stadteil? Bremen, Hannover, Alle [...]
m² Abweichung? 10 [...]
Bad vergleichen? Ja/Nein
Balkon verlgeichen? Ja/Nein
die dann die Formel dynamisch baut ... aber das will ich deinen "Basiskentnissen" nicht zumuten. Nachher will dein Chef eine Kleinigkeit geändert haben und du stehst dann da.
Grüße,
Klaus M.vdT.
EDIT:
ich click jetzt schon das 10te Mal auf Vorschau, und die Herber-Maskierung der GrößerKleiner zerschießt mir immer noch die Formatierung. Ist mir jetzt egal, ich schick den Beitrag so ab wie er ist.

AW: Stadteil und unter X€-m²
07.03.2013 12:26:06
Judith
Mit Stadtteil meinte ich die Spalte A. Sry mein Fehler ;)
Da habe ich F, W, S, H, N, usw drin. Kann ich alle Bedingungen in die Formel mit reinbringen? Das der mir für jede F Wohnung auch nur F Wohnungen als Vergleich gibt und für jede W Wohnung nur W Vergleiche usw.?!

AW: Stadteil und unter X€-m²
07.03.2013 12:33:04
Klaus
Hey,
da kommst du aber selbst drauf!
In Spalte V wird die Badmodernisierung verglichen, das macht folgender Formelteil:
(V17=V$15)
Zusätzlich willst du jetzt die Stadtteile vergleichen. Die stehen nicht in Spalte V, sondern in Spalte A. Na, wie kann die Bedingung dazu lauten?
.
.
.
.
.
.
.
.
.
.
.
=IF((A17=A$17)*(V17=V$15)*(Z17=Z$15)*(J17>$J$15-10)*(J17<$J$15+10);N17;"")
Die unter 7€/m² baust du jetzt aber selber ein!
Grüße,
Klaus M.vdT.

AW: Stadteil und unter X€-m²
07.03.2013 13:19:51
Judith
Ja da hätte ich wohl auch selber drauf kommen können :(
die 7€/m² sind eingebaut :D
Allerdings verstehe ich jetzt immernoch nicht genau wie ich den Teil des Makros ändere, bzw was...

AW: Stadteil und unter X€-m²
07.03.2013 13:35:33
Klaus
Hi,
Zum Makro. Einfachste Lösung: du löscht diesen Block:

'Formeln bis zur letzten Zeile eintragen
.Range("AG16:AG" & lRowL).FormulaR1C1 = _
"=IF((RC[-11]=R15C[-11])*(RC[-7]=R15C[-7])*(RC[-23]>R15C10-10)*(RC[-23]>R15C10+10),RC[- _
19],"""")"
.Range("AH16:AH" & lRowL).FormulaR1C1 = _
"=IF(RC[-1]="""","""",IF(RANK(RC[-1],C[-1])+COUNTIF(R16C33:RC[-1],RC[-1])-1

und kopierst die geänderten Formeln per Hand bis zum Listenende.
Möglichkeit zwei:
du änderst die Formeln im Blatt (nur in der ersten Zeile) und schreibst das Makro so um, dass es die vorhandenen Formeln aus dem Blatt kopiert:
        'Formeln bis zur letzten Zeile eintragen
.Range(.Cells(lRowF, 33), .Cells(lRowF, 34)).Copy  'orignal Formel kopieren, 33 und 34  _
sind die Spalten
.Range(.Cells(lRowF + 1, 33), .Cells(lRowL, 34)).PasteSpecial 'und Formeln einfügen
Möglichkeit drei: du änderst die R1C1-Formeln im Makro entsprechend deiner Vorstellung ab. "Kann ich nicht!!!" rufst du jetzt. Kannst du aber doch! Clicke mal auf Makro Aufzeichnen, dann AG15, dann Enter, dann AH15, dann Enter, dann aufzeichnung beenden. In einem neuen Modul findest du nun dies hier:
Sub Macro3()
'
' Macro3 Macro
'
'
Range("AG16").Select
ActiveCell.FormulaR1C1 = _
"=IF((RC[-32]=R15C[-32])*(RC[-19]R15C10-10)*(RC[-23] Range("AH16").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""","""",IF(RANK(RC[-1],C[-1])+COUNTIF(R16C33:RC[-1],RC[-1])-1 Range("AH17").Select
End Sub
Die hier aufgezeichneten R1C1 Formeln tauscht du einfach gegen die falschen Formeln aus. Das sieht dann so aus:
        'Formeln bis zur letzten Zeile eintragen
.Range("AG16:AG" & lRowL).FormulaR1C1 = _
"=IF((RC[-32]=R15C[-32])*(RC[-19] _
R15C10-10)*(RC[-23]R15C10-10)*(RC[-23]>R15C10+10) _
,RC[-19],"""")"
.Range("AH16:AH" & lRowL).FormulaR1C1 = _
"=IF(RC[-1]="""","""",IF(RANK(RC[-1],C[-1])+COUNTIF(R16C33:RC[-1],RC[-1])-1
Weg 3 ist am sichersten, weil er das Blatt quasi "repariert" wenn irgendwelche Chefs die Formeln zerschossen haben.
Weg 2 ist am leichtesten zu aktualisieren, weil du nur im Blatt an einer Stelle die Formel ändern musst.
Weg 1 ist am einfachsten. Dafür beim benutzen umständlich (ich würd spätestens nach dem dritten Makrodurchlauf vergessen haben, die Formeln per Hand ziehen zu müssen).
Grüße,
Klaus M.vdT.

AW: #NV getestet: Daran kanns liegen!
07.03.2013 14:00:31
Judith
Klingt plausibel :)
Allerdings sagt er mir jetzt wenn ich die neue Formel einfügen möchte:
Fehler beim Kompilieren, erwartet Anweisungsende.
Was will er mir damit sagen?!

Flucht nach links!
07.03.2013 13:58:08
Klaus
Hallo Judith,
ich kann da rechts am Monitor kaum noch was sehen, der Thread ist schon zu breit. Ausserdem scheint das Herber Forum meine Beiträge da gern zu zerschießen, oder ich hab mit den Tags Mist gebaut.
Hier links gehts weiter, falls von dir noch Fragen kommen!
Grüße,
Klaus M.vdT.

AW: Flucht nach links!
07.03.2013 14:05:21
Klaus
Klingt plausibel :)
Allerdings sagt er mir jetzt wenn ich die neue Formel einfügen möchte:
Fehler beim Kompilieren, erwartet Anweisungsende.
Was will er mir damit sagen?!

Hi, ich weiss leider nicht worauf du mir hier antwortest!
wenn er sagt "Fehler beim kompilieren", dann geh bitte in Debug und kopiere die gelb markierte Zeile ins Forum. Ich kann ja deinen Monitor nicht sehen, und meine Glaskugel ist gerade in der Reinigung.
Grüße,
Klaus M.vdT.

AW: Flucht nach links!
07.03.2013 14:11:44
Judith
Gelb markieren tut er das:
Private Sub CmB_GetFlat_Click()
Aber das hat ja vorher auch funktioniert. Oder steh ich aufm Schlauch? Was markiert der denn gelb?!
Jedenfalls wollte ich
.Range("AG16:AG" & lRowL).FormulaR1C1 = _
"=IF((RC[-32]=R15C[-32])*(RC[-19] _
R15C10-10)*(RC[-23]R15C10-10)*(RC[-23]>R15C10+10) _
,RC[-19],"""")"
.Range("AH16:AH" & lRowL).FormulaR1C1 = _
"=IF(RC[-1]="""","""",IF(RANK(RC[-],C[-1])+COUNTIF(R16C33:RC[-1],RC[-1])-1 ))"
einfügen, weil ich das Makro ja ändern sollte. Und dann bekomme ich als Fehlermeldung das mit dem Kompilieren und dem Anweisungsende...

Zeilenumbrüche
07.03.2013 14:17:56
Klaus
Hi,
ist alles richtig, nur kann VBA hier nicht so gut mit den Herber-Zeilenumbrüchen umgehen. Muss alles in eine Zeile!
erste Zeile
.Range("AG16:AG" & lRowL).FormulaR1C1 =
"=IF((RC[-32]=R15C[-32])*
(RC[-19] (RC[-7]=R15C[-7])*(RC[-23]>R15C10-10)*
(RC[-23]R15C10-10)*(RC[-23]>R15C10+10)
,RC[-19],"""")"
zweite Zeile
.Range("AH16:AH" & lRowL).FormulaR1C1 = _
"=IF(RC[-1]="""","""",IF(RANK(RC[-],C[-1])
+COUNTIF(R16C33:RC[-1],RC[-1])-1 kopier dir das mal in dein VBA, aber geh dann mit BACKSPACE an den Zeilenanfang so dass es insgesamt nur zwei sehr lange Zeilen werden.
Die Formel selbst hab ich jetzt nicht geprüft.
Grüße,
Klaus M.vdT.

AW: Zeilenumbrüche
07.03.2013 14:26:16
Judith
Alles eingefügt, keine Kompilierungsfehler mehr. Allerdings sagt er mir jetzt, wenn ich das Makrto starten möchte "Laufzeitfehler 1004" ?!

Glaskugel ...
07.03.2013 14:28:53
Klaus
Judith, die Glaskugel!
Lad die neueste Datei mal hoch.
Grüße,
Klaus M.vdT.

Komisch .... egal, jetzt gehts wieder
07.03.2013 14:50:55
Klaus
Hi,
ganz erhlich: sieht alles richtig aus was du gemacht hast, bringt bei mir aber den gleichen Fehler. Ich hab die Formeln dann nochmal selbst eingefügt - Zeile sieht genauso aus wie bei dir - und es läuft. Da kann man nur vermuten, dass du ein unsichtbares Steuerzeichen in deiner Zwischenablage hattest ...
https://www.herber.de/bbs/user/84237.xlsm
Achso, in diesen Bereichen:
AB16:AF27
AB2590:AF3191
stand Müll, den habe ich gelöscht. Auch habe ich die Zeilen nach 3191 wieder eingeblendet. Halt deine Dateien sauber!
Grüße,
Klaus M.vdT.

AW: Komisch .... egal, jetzt gehts wieder
07.03.2013 15:18:25
Judith
Ich glaube jetzt funktionierts.
Keine Fehlermeldungen und eine komplett ausgefüllte Liste.
Werd jetzt noch ein paar Stichproben durchführen, ob auch wirklich alles geklappt hat, aber sieht ganz danach aus.
Und ein riesengroßes Dankeschön meinerseits!!! :)
Liebe Grüße
Judith

AW: Komisch .... egal, jetzt gehts wieder
07.03.2013 15:32:45
Klaus
Und ein riesengroßes Dankeschön meinerseits!!! :)
Wir Norddeutschen sagen in so einem Fall "Ach, da nich für".
Meld dich nochmal nach den Stichproben, ich bin jetzt auch Neugierig ob es durchlief!
Grüße,
Klaus M.vdT.

AW: Komisch .... egal, jetzt gehts wieder
07.03.2013 16:35:36
Judith
Soweit ich das gesehen habe, dürfte alles stimmig sein. Aber den Rest wird wohl mein Abteilungsleiter morgen früh entscheiden.
Ich gebe dann nochmal ein anschließendes Feedback ;)
Liebe Grüße
Judith

AW: Komisch .... egal, jetzt gehts wieder
08.03.2013 07:31:58
Judith
Guten Morgen,
eine (hoffentlich) letzte Frage hätte ich noch.
...Abteilungsleiter...
Der Stadtteil F wird jetzt nochmal zerlegt in alt und neu.
Ich habe jetzt eine Spalte B eingefügt und sämtliche Stadtteile durchnummeriert von 1-7. Die Formeln in (jetzt) AH und AI habe ich angepasst. Jetzt wollte ich das Makro umändern, mithilfe der Makro Aufzeichnen Funktion die du mir gestern beschrieben hattest. Allerdings wird bei mir nur
Sub Makro4()
' Makro4 Makro
' AH15 AI15
End Sub
angezeigt. der andere Teil, den ich ja eingentlich dann ersetzen soll, fehlt irgendwie. Oder habe ich einen Schritt vergessen?
Und reicht das an Informationen oder bekomm ich gleich wieder die Glaskugel?! :D
Liebe Grüße
Judith

AW: Komisch .... egal, jetzt gehts wieder
08.03.2013 08:06:42
Klaus

Sub Makro4()
' Makro4 Makro
' AH15 AI15
End Sub
Hallo Judith,
da wurde wohl nichts aufgezeichnet! Hast du alles richtig gemacht?
  • [Makro aufzeichnen] drücken

  • AH15 anclicken

  • F2 drücken (oder in die Formelleiste clicken

  • [ENTER]

  • AI15 anclicken

  • F2 drücken (oder in die Formelleiste clicken

  • [ENTER]

  • Makroaufzeichnung beenden

  • die aufgezeichneten Formeln aus dem Makro kopieren und in das große Makro einfügen

  • Ich kann dir sonst anbieten, wenn du die Formeln hier postest dann rekordere ich sie dir eben und geb dir den Code, daran sollst ja nicht liegen.
    Wenn mal Abteilungsleiter erfunden werden, die von Anfang an beschreiben können was sie brauchen und nicht immer erst am fertigen Produkt Verbesserungen wünschen, geb ich ne Runde aus!
    Grüße,
    Klaus M.vdT.

    AW: Komisch .... egal, jetzt gehts wieder
    08.03.2013 10:34:04
    Judith
    Wenn ich auf Makro aufzeichnen clicke, öffnet sich nur ein kleines Eingabefenster, aber auf Zellen clicken ist nicht möglich.
    Und wenn ich die Formeln hier posten möchte, zeigt mir das Forum eine Fehlermeldung an :/

    AW: Komisch .... egal, jetzt gehts wieder
    08.03.2013 10:40:12
    Judith
    Ah ich habs geschafft etwas rauszubekommen.
    Sub Makro6()
    ' Makro6 Makro
    ActiveCell.Select
    ActiveCell.FormulaR1C1 = ""
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = ""
    ActiveCell.Offset(1, 0).Range("A1").Select
    End Sub
    

    Das kommt raus wenn ich mit der Zeile 15 arbeiten, der VBA Zeile.
    Und das wenn ich mit Zeile 16 arbeite, der ersten Wohnungszeile:
    Sub Makro7()
    ' Makro7 Makro
    ActiveCell.Offset(0, -1).Range("A1").Select
    ActiveCell.FormulaR1C1 = _
    "=IF((RC[-32]=R15C[-32])*(RC[-19] _
    R15C11-10)*(RC[-23]
    Das zweite ist wohl das richtige?! Füge ich jetzt den kiompletten Teil in das andere Makro ein, oder nur einen gewissen Teil hiervon?!

    AW: Komisch .... egal, jetzt gehts wieder
    08.03.2013 10:53:10
    Klaus
    Hi Judith,
    in deiner Makroaufzeichung hast du nur eine Zelle angelickt, das sieht so aus:
    ActiveCell.FormulaR1C1 = [neue Formel]
    Im Haupt-Makro ist ein Zellvebund:
    .Range(.cells(1,33),.cells(lrowl,33)).FormulaR1C1 = [alte Formel]
    Tausche im Haupt-Makro die alte Formel gegen die neue Formel!
    (oder: geht zurück zu meinem Vorschlag, die Formeln in der Tabelle stehen zu lassen und dann per Makro nur zu kopieren. Den Code dafür findest du im Verlauf des Threads. Das ist für dein Level vielleicht angebrachter ...)
    Wenn du eine Musterdatei mit korrekten, angepassten Formeln hochlädst, fixe ich dir das eben ins Makro (aber erst Samstag vormittag, bin heute den ganzen Tag im Flugzeug!)
    Grüße,
    Klaus M.vdT.

    AW: Komisch .... egal, jetzt gehts wieder
    08.03.2013 11:32:19
    Judith
    Relative Makroaufzeichnung war irgendwie mit aktiviert. Hab das jetzt mal deaktiviert und nochmal probiert.
    Kam jetzt das raus.
    Sub Makro11()
    ' Makro11 Makro
    Range("AH15").Select
    ActiveCell.FormulaR1C1 = ""
    Range("AI15").Select
    ActiveCell.FormulaR1C1 = ""
    Range("AI16").Select
    End Sub
    
    Aber wirklich richtig siehts immernoch nicht aus :(
    Ich kann die Datei auch irgendwie nicht mehr hochladen. Das Forum sagt mir die ist zu groß, dabei ging es ja die ganze Zeit :(

    AW: Komisch .... egal, jetzt gehts wieder
    08.03.2013 11:37:11
    Judith
    Ich werd nochmal wahnsinnig hier :D
    Aber jetzt klappts :)
    https://www.herber.de/bbs/user/84246.xlsm
    Ich hoffe das ist jetzt auch die richtig, aber dürfte so sein :)

    AW: Komisch .... egal, jetzt gehts wieder
    08.03.2013 11:38:49
    Judith
    Und dir wünsche ich einen guten Flug :)
    Werd mich dann wohl erst Montag wieder melden, am Wochenende habe ich das Privileg nicht arbeiten zu müssen ;)
    Liebe Grüße und ein schönes Wochenende!
    Judith Wolf

    AW: Komisch .... egal, jetzt gehts wieder
    11.03.2013 15:09:44
    Judith
    Hey,
    bist du schon dazu gekommen über das Makro noch einmal rüber zu gucken?! Hab selber nochmal bisschen rumprobiert aber leider ohne Erfolg :(
    Liebe Grüße
    Judith

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige