Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Nicht-Zahlen-Einräge für Regressionsberechnung unterdrücken





Frage

Hallo, ich suche jetzt schon den zweiten Tag in der Hlfefunktion und werde nicht fündig. Ich habe in aufeinanderfolgenden Zellen Zahlen stehen, deren Regression ich mittels RGP berechnen möchte; dies klappt an sich auch. Leider sind in fast jeder Zeile auch eine oder mehere Zellen, in denen keine Zahlen stehen. Diese Zellen sollen so behandelt werden, als wären sie gar nciht da, d.h. meine Liste ist dann z.B. nicht mehr 10 Einträge lang sondern nur noch 9. Von diesen 9 Einträgen möchte ich dann die Regression berechnen. Kann mir dabei jemand helfen? Dank im Voraus Bernd

Antwort 1 von schnallgonz

Hi,
vielleicht schreckt das Wort Regression ab und deshalb meldet sich keiner?

M.E. müßte man mit VBA die leeren Zellen löschen.

Schau mal Antwort 3 von Coros in folgendem Thread:

https://supportnet.de/threads/954210

gruß
schnallgonz

Antwort 2 von CaroS

Hallo hottiger,

eigentlich ist doch alles klar, Du kennst die Ursache Deines Problems und Du weist - im Prinzip - was Du tun musst, um es zu lösen: die Werte "lückenlos" bereitstellen.

Welche Hilfe brauchst Du nun und wie soll sie aussehen?

1) Die vorhandenen Werte per Formel in einer Hilfsspalte so "zusammenschieben", dass die Lücke am Ende liegt.

2) Die vorhandenen Werte per VBA in einer Hilfsspalte so "zusammenschieben", dass die Lücke am Ende liegt. Nicht so günstig wäre es, die Werte in dem Zellbereich "zusammenzuschieben", wo sie jetzt stehen (das geht per VBA auch), das würde zum Überschreiben der dort vorhandenen Formeln führen, die die Werte wahrscheinlich berechnet haben. (Weder per Hand noch per Makro würde man die Werte "mit Lücke" eintragen.)

3) Die RGP-Formel so ändern, dass sie nur auf den (reduzierten) Bereich in der Hilfs-spalte zugreift, in dem Werte stehen, und nicht auf die ggf. ans Ende verschobene "Lücke".

4) Die RGP-Formel per VBA so anpassen, dass sie nur auf den (reduzierten) Bereich in der Hilfsspalte zugreift, in dem Werte stehen, und nicht auf die ggf. ans Ende verschobene "Lücke".

Gruß,
CaroS

Antwort 3 von CaroS

Hallo hottiger,

für 1)
Wenn die Werte in Spalte J ab J1 stehen, folgende Matrixformel ohne {}-Klammern in Zeile 1 der Hilfsspalte (z. B. in Zelle K1) schreiben, Eingabe mit Tastenkombination Strg+Umschalt+Eingabe abschließen, dann runterkopieren:

{=WENN(ANZAHL2(J$1:J$100) < ZEILE(); ""; INDIREKT("J" & KKLEINSTE(WENN(ZÄHLENWENN(BEREICH.VERSCHIEBEN(J$1; ; ; ZEILE($1:$100)); J$1:J$100) > 0; ZEILE($1:$100)); ZEILE())))}

Gruß,
CaroS

Antwort 4 von hottiger

Hi CaroS,

so in der Art habe ich mir das auch gedacht, das sieht soweit schon mal sehr gut aus. Erst mal großen Dank. Allerdings habe ich von dieser "Programmierung" so wenig Ahnung, dass ich schon das Umstellen auf meinen Zeilenbereich nicht schaffe. Sorry - aber echt wahr.
Meine Daten liegen in den Zellen E3 bis P3 und ich würde die Werte dann nach E53 bis P53 bzw O53 etc verschieben. Entsprechend liegt zudem auch in E4 bis P4 usw ein _neuer_ solcher Zellenbereich, so dass ich die ganze Konstruktion auch so machen müsste, dass man dies auch auf die folgenden Zeilen übertragen könnte.
Könntest du mir erklären, wo das Makro überprüft, ob der Eintrag eine Zahl ist bzw keine Zahl?
Leider hab ich auch keine Ahnung, wie ich - wenn ich soweit dann bin - deinen vollständig korrekt beobachteten Punkt 3) löse.
Ich hoffe, ich wirke nciht undankbar, denn die Analyse in deiner Message war auf den Punkt richtig und das Makro leider nur wegen meiner Dummheit für mich nicht adaptierbar.

Mit der Bitte um weitere Hilfe
hottiger

PS: Mit VBA kenne ich mich gar nciht aus.

Antwort 5 von hottiger

Ergänzung:


Ich habe in die Felder J1 bis J19 Zahlen und zeichen eingetragen und die Obige Formel für die Felder P1 bis P19 als Matrixformel eingegeben und erhalte in P1 bis P19 die identische Einträge wie in J1 bis J19. Was mache ich falsch?


Dank im Voraus
hottiger

Antwort 6 von CaroS

Hallo hottiger,

hier noch mal Punkt 1) für Deine Zeile E3:P3. Da KKLEINSTE nur Zahlen verarbeiten kann, ist die Umsetzung der Zeilen-Formel in eine Spalten-Formel nicht ganz so einfach, wie es auf den ersten Blick erscheint.

Schreibe die Formel ohne {}-Klammern in E53 (oder irgendwohin in Spalte E) und schließe die Eingabe mit der Tastenkombination Strg+Umschalt+Eingabe ab. Dann kannst Du die Zelle bis nach P53 ( bzw. Spalte P! - nur bis O reicht nicht!) kopieren/ziehen.

{=WENN(ANZAHL2($E3:$P3) < SPALTE() - 4; ""; INDIREKT(ADRESSE(3; KKLEINSTE(WENN(ZÄHLENWENN(BEREICH.VERSCHIEBEN($E3; ; ; ; SPALTE($E3:$P3)); $E3:$P3) > 0; SPALTE($E3:$P3)); SPALTE()-4))))}

Da Du von "Programmierung" schreibst und nach einer Erklärung des "Makros" fragst, folgendes zu den Begriffen:
Alles was Du mit eine Gleichheitszeichen beginnend in eine Zelle schreibst, z. B. = A2 + C4, heißt allgemein "Formel" und ist "das Gegenteil" von einem Makro. Wichtiger Bestandteil von Formeln sind die sog. "Tabellenfunktionen" (- wenn keine Verwechslungsmöglichkeit mit VBA-Funktionen besteht auch nur kurz Funktionen), z. B. =SUMME(B3:B17). Das ist die "Formelwelt" von Excel, die bezeichnen manche nicht als "Programmierung", weil sie mit "Programmierung" VBA meinen.

VBA-"Programme" werden oft als Makros bezeichnet, d. h., Makro bedeutet in Excel VBA und nicht Formel. Für die meisten ist die Verwendung von Formeln naheliegender und leichter zu erlernen als die VBA-Programmierung. Mit der kann man allerdings viel mehr (so ziemlich alles) realisieren, auch das, was mit Formeln nicht geht.

Die oben angegebenen "Dinger" sind also Formeln, aber so einfach nun auch wieder nicht zu erklären, da darin mehrere FUNKTIONEN miteinander kombiniert sind, die man erst einzeln erklären müsste und dann ihr Zusammenwirken. Für den ersten Teil empfehle ich die Excel-Hilfe (Taste F1 oder Menü ´?´), der Rest ist Praxis. So, damit Du noch was davon hast, schicke ich das jetzt erstmal los. Sonst überziehe ich wieder ...

Gruß,
CaroS

Antwort 7 von CaroS

zu AW5:
Zitat:
Ich habe in die Felder J1 bis J19 Zahlen und zeichen eingetragen und die Obige Formel für die Felder P1 bis P19 als Matrixformel eingegeben und erhalte in P1 bis P19 die identische Einträge wie in J1 bis J19. Was mache ich falsch?


Wahrscheinlich gar nichts. Lösche im Bereich J1:J19 einen oder mehrere Werte, so dass die Zelle(n) leer ist/sind, dann müsstest Du den Effekt sehen. Ein lückenlos gefüllter Bereich J1:J19 wird genauso wiedergegeben wie er ist, das ist die eine Hälfte des Zwecks dieser Formel. Die andere Hälfte besteht darin, Lücken - wenn vorhanden - von der "Mitte" ans "Ende" zu bekommen, um zusammenhängende, "lückenlose" Bereiche mit Werten zu schaffen, die manchmal (z. B. für die Funktion RGP oder für die Erstellung von Diagrammen) benötigt werden. (Wenn´s funktioniert sollten sich weitere Fragen erübrigen.)

Gruß,
CaroS

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: