| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Leere Zellen benennen (2541 mal gelesen)
|
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 18. Jun. 2007 08:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen.Habe Frage an Experten.... Ich habe eine Liste erstellt,in der in den Zeilen Jahrgänge aufgenommen werden und in den Spalten die Kalenderwochen.Nun markiere ich die erledigten KW durch ein "X". Ist also simple Tabelle die ich in Excel angefangen habe,da ich zu faul war kariertes Papier zu benutzen  . Inzwischen ist die Tabelle seit 1988 fleißig mitgewachsen und da ich die "Daten" eh im System hatte,sind auch einige Excelfunktionen hinzu gekommen. Das Zählen der "gesammt-X" sowie die Anzahl der fehlenden pro Jahr sind ja nun kein Problem. Nun möchte ich aber ein Feld pro Spalte haben, in dem, wenn weniger als 5 KW´s fehlen die Nr.der fehlenden angezeigt werden. D.h.Spalte auf leere Zellen kontrollieren (ok.),Anzahl prüfen (ok.)und wenn weniger= 5 leer sind mir im Zusatzfeld anzeigen,wie die Namen der leeren Zellen sind.(meine Zeilenbeschriftung) In einer probe-Datei habe ich sowas mit Extraabfragen und Werte zwischenschreiben bzw.auslesen zwar schon gemacht,aber ich suche nach einer eleganten Version,wo ich nicht für 40Jahre x 52Wochen Zusatzfelder einfügen muß. Dank im Vorraus Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
 
 Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 18. Jun. 2007 11:25 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
|
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 18. Jun. 2007 11:50 <-- editieren / zitieren --> Unities abgeben:         
habe mal datei angehangen... in Zeile 2(Rest) soll fürs jahr 07 nun automatisch die zahl erscheinen,die vor der zeile steht,in der du ein "x" löschst. seid wann sind hier anhänge beschränkt? ist nun nur nen Bild geworden.Sorry Hoffe es hilft trotzdem.. Gruß Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 18. Jun. 2007 12:30 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
|
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 18. Jun. 2007 12:46 <-- editieren / zitieren --> Unities abgeben:         
Auf die Sache mit dem umbenennen hätt ich selber kommen können,besonders, da schon gemacht nun also nochmal: die in Zeile 2 (Rest)von Hand eingetragenen Werte sollen per Formel selbstständig eingetragen werden, sofern es weniger= 5 sind.. Das ganze soll der Übersicht dienen, da in diesem "x-Dschungel" keiner mehr durchblickt.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 18. Jun. 2007 13:45 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
OK, Aufgabe verstanden  . Allerdings fehlt mir die Zeit für solche Spielereien... IMHO lässt sich mit dem link von oben schon was basteln; z.B. {=KKLEINSTE(WENN(I5:I57<>"";ZEILE(5:57));1)} Die 1 dann entsprechend erhöhen (siehe Hilfe zu KKLEINSTE). Über INDEX läßt sich dann der Zellinhalt (der Spalte A) auslesen. Die Formel muß ohne die {} eingegeben und mit Strg+Shift+Enter abgeschlossen werden (Array). Textstrings werden mit & verknüpft, also: =FormelFürDieErsteZeile&","&FormelFürDieZweiteZeile&", "&... Du darfst gerne selbst 'rumprobieren und die Lösung dann hier 'reinstellen; ich halte es für unwahrscheinlich, daß es hierfür schon jemand eine vorgefertigte "Musterlösung" parat hat. Abschließend noch zwei Fragen: Hilfszeilen, die dann ausgeblendet werden, sind keine Option? Und vermutlich muß/soll das Konzept auch erhalten bleiben? ------------------ Gruß, Frederik DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 18. Jun. 2007 15:00 <-- editieren / zitieren --> Unities abgeben:         
Danke,hat soweit geklappt,das er mir angibt,welche Zeilen AUSGEFÜLLT sind. Nun dachte ich mir,"sei pfiffig" und änder die Optionen und schon ist alles bestens: ist aber nicht! sobald ich in dem Term: {=WENN(AL3<=5;KKLEINSTE(WENN(AL5:AL57="";ZEILE(5:57)-4);1)&","&KKLEINSTE(WENN(AL5:AL57<>"";ZEILE(5:57)-4);2)&","&KKLEINSTE(WENN(AL5:AL57<>"";ZEILE(5:57)-4);3)&","&KK LEINSTE(WENN(AL5:AL57<>"";ZEILE(5:57)-4);4)&","&KKLEINSTE(WENN(AL5:AL57<>"";ZEILE(5:57)-4);5);">5")} auch die anderen <>"" durch ="" ersetze schmeißt er mir "Zahl"als Fehler raus. Beim ersten klappt es witzigerweise PS:habe den INDEX mit -4 umgangen,da ich eh nur Zahlen brauche.. Soweit schonmal Danke Gruß Torsten ach so...Zellen hinzu und verstecken erscheit mir viel Aufwand für diese Spielerei und das Konzept habe ich aus gleichen Überlegungen so belassen.. [Diese Nachricht wurde von hörter am 18. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
   
 Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 18. Jun. 2007 15:33 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
Hm. Ich zitiere mich mal selbst: Zitat: (siehe Hilfe zu KKLEINSTE)
Und dann zitiere ich noch die Hilfe zu KKLEINSTE: Zitat: AnmerkungIst Matrix leer, liefert KKLEINSTE den Fehlerwert #ZAHL!. Ist K ≤ 0, oder ist K größer als die Anzahl der Zahlen (Datenpunkte), liefert KKLEINSTE den Fehlerwert #ZAHL!.
Tja, das muß noch abgefangen werden. Da sowohl die Gesamt-Anzahl der "x" in der Spalte als auch -gegenläufig- die Anzahl der Leerzellen variabel ist, wird die Sache etwas aufwändiger. Deshalb wollte ich das auch nicht weiter vertiefen ;-). ------------------ Gruß, Frederik DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 19. Jun. 2007 08:01 <-- editieren / zitieren --> Unities abgeben:         
Hallo; ich gebe zu, lesen und verstehen sind nicht immer das selbe. habe nun Eventualitäten eingeschlossen und erreiche mit folgender Formel fast das gewünschte Ergebnis: {=WENN(AG3=0;"voll";WENN(AG3=5;KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);1)&","&KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);2)&","&KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);3)&","&KK LEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);4)&","&KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);5);WENN(AG3=4;KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);1)&","&KKLEINSTE(WENN(AG5:AG57="";Z EILE(5:57)-4);2)&","&KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);3)&","&KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);4);WENN(AG3=3;KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);1)&","&KKLEI NSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);2)&","&KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);3);WENN(AG3=2;KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);1)&","&KKLEINSTE(WENN(AG5:AG57="";ZEIL E(5:57)-4);2);WENN(AG3=1;KKLEINSTE(WENN(AG5:AG57="";ZEILE(5:57)-4);1);">5")))))} Der fette Teil muckt noch und ohne fehlt die Eventualität, das nur ein X fehlt. Werde Berichten,falls mir Lösung einfällt bzw bin für Anregungen offen... Gruß Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur

 Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 19. Jun. 2007 08:11 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
Ähm.... Ich habe jetzt in deinem Beitrag 21x das Wort "wenn" gelesen (in der Formel) - da ich nicht weis mit welcher Office Version du arbeitest ist es aber aufjedenfall so, dass bis zu Office XP eine Limitation von 7 Verschachtelunsebenen existiert... (und ob es im 07er Office anders ist kann ich derzeit nicht sagen...) - bei tieferen Verschachtelungen erfolgt keine Auswertung mehr... ------------------ Grüsse Thomas [Diese Nachricht wurde von tunnelbauer am 19. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 19. Jun. 2007 08:24 <-- editieren / zitieren --> Unities abgeben:         
Hallo Thomas Also die Version (ohne fett geschriebenes)mit den 19 Wenn funktioniert.... Ich benutze Excel 2003 Habe aber gerne ein offenes Ohr für kürzere Varianten Kann es sein das Excel nur die "Haupt-wenn" zählt,da die anderen in den kkleinste eingebunden sind?? Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur

 Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 19. Jun. 2007 08:48 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
Ich kenne keine kürzerer Variante (ich wär so auch nichtmal auf diese lange Variante gekommen...) Ich kenne nur die Einschränkung vom Excel, dass mit der 7. Ebene Schluss ist - egal was dahinter ausgewertet werden soll... Und wenn sich deine 19 WENNs wie folgt zusammensetzen: 6+6+7 dann ist nach dem 7er Schluss - basta.. auch wenn es nur 19 sind... (und wenn deine 21 WENNs 6+6+9 sind geht's sowieso nicht...) Generell wäre das ein Fall für eine Programmierung... (zu TurboPascal-Zeiten war das der typische Fall für ein CASE OF) ------------------ Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 19. Jun. 2007 09:47 <-- editieren / zitieren --> Unities abgeben:         
Programmierung... und das für die Übersichtlichkeit ?!? da kann ich besser mit bedingter Formatierung die leeren Felder rot hinterlegen lassen... (ist praktikabel,aber der Ergeiz war nun einmal geweckt) Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 19. Jun. 2007 10:39 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
tja, einige unzählige Versuche später, das Ganze mittels Verketten, Index, Vergleich, Bereich.verschieben ect. als Matrix (man will ja keine elendlange Formel stehen haben) zu definieren, wechselt man in diesem Falle dann doch zu Vba... (Hallo Nicole  ) Was aber nicht heissen soll, -es geht nicht ohne Formel - Aber wenn die Formel dann zu lang wird, -muss man sich doch fragen - ob sich der Aufwand lohnt und es manuell nicht viel effektiver wäre ;-) Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) For r = 2 To 49 If Cells(3, r) <= 5 Then For z = 5 To 57 If Cells(z, r) = "" Then If strT > "" Then strT = strT & ", " strT = strT & z End If Next z End If Cells(2, r) = strT strT = "" Next r End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 19. Jun. 2007 11:00 <-- editieren / zitieren --> Unities abgeben:         
DAS ist mal ne Altenative !!! hatte jetzt Lösung mit <=4 vollendet,wird aber nun unter "versuche" in der Versenkung enden Bei solchen Lösungen wird mein Drang sich mit VBA mal eingehender zu beschäftigen immer größer!!! Dank an alle !!! Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur

 Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 19. Jun. 2007 11:05 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
Zitat: Original erstellt von hörter: Programmierung... und das für die Übersichtlichkeit ?!?
Was nun ? Zitat: Original erstellt von hörter:
da kann ich besser mit bedingter Formatierung die leeren Felder rot hinterlegen lassen...
Zeig mal her... wir wollen die bedingte Formatierung sehen...  Nee - im Ernst: umso komplexer die Aufgabe (insbesondere wenn es Richtung WENN-Verschachtelung geht), desto eher ist das Umstellen auf VBA sinnvoll (einzig allein: meine VBA-Kenntnisse sind sowas von eingerostet...) @Thomas: Rübe ist auf Urlaub... (sozusagen in einer VBA-freien Zone... ) ------------------ Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 19. Jun. 2007 11:20 <-- editieren / zitieren --> Unities abgeben:         
Hatte mich schon gewundert,das der Vorschlag nicht von Nicole kam, aber Urlaub erklärt alles Habe gegenüber dir den Vorteil,das bei mir nix zum einrosten da ist... Das muß sich ändern !!! Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
 
 Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 19. Jun. 2007 12:57 <-- editieren / zitieren --> Unities abgeben:          Nur für hörter
Hi ihr zwei, in Vertretung von Nicole würde ich so machen, denn es muss ja nur gerechnet werden, wenn sich im Bereich der x'e was ändert. Außerdem wird nur die geänderte Spalte berechnet. Code: Option ExplicitPrivate Sub Worksheet_Change(ByVal Target As Range) Dim lngColumn As Long, lngRow As Long Dim strText As String If Not Intersect(Target, Rows("5:57")) Is Nothing Then lngColumn = Target.Column Application.EnableEvents = False If Cells(3, lngColumn).Value <= 5 And Cells(3, lngColumn).Value > 0 Then For lngRow = 5 To Cells(Rows.Count, lngColumn).End(xlUp).Row If IsEmpty(Cells(lngRow, lngColumn)) Then _ strText = strText & CStr(lngRow - 4) & ", " Next strText = Left$(strText, Len(strText) - 2) End If Cells(2, lngColumn).Value = strText Application.EnableEvents = True End If End Sub
------------------ Gruß Nepumuk  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 19. Jun. 2007 13:20 <-- editieren / zitieren --> Unities abgeben:         
|
hörter Mitglied Konstrukteur

 Beiträge: 47 Registriert: 24.04.2007 Win 7 prof SP1 i5 2540M 2,6 GHz 8GB Ram Office Basic Edition 2010 NX 7.5
|
erstellt am: 02. Jul. 2007 07:15 <-- editieren / zitieren --> Unities abgeben:         
hallo zusammen Hier ein Nachtrag mit Frage: Soweit läuft alles wunderbar, nur wenn ich nur die letzte Zeile lösche(KW53)schmiert mir makro ab.... Ich umgehe das ganze nun, indem ich in der imaginären KW54 nen "-" einfüge..dann läuft es prächtig.Hat das was mit der programierung zu tun oder ist noch nen bug drin? Nur so zur Info... Gruß Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |