WENN- Funktion für ganze Spalte
Hallo,
ich möchte, dass eine WENN Funktion automatisch auf eine ganze Spalte angewendet wird und die Summe gebildet wird.
Bsp: C1=WENN(UND(ODER(Tabelle1!A1=56;Tabelle1!A1=89;Tabelle1!A1=78);Tabelle1!B1=375735);Tabelle1!J1;0)
Ich möchte nun, dass, das nun auf die ganze Spalte angwand wird (also aus A1 wird A2 aus B1 B2 und aus J1 J2) ohne die Formel ewig runterziehen zu müssen (es geht ungefähr bis A1500) und in C1(in der anderen Tabelle die Summe erscheint (also von allen J werten wo DANN eintrit)
Vielen Dank schon jetzt für die Hilfe
6 Antworten
du musst die Formel nicht runterziehen. es reicht wenn du die Zelle markierst und dann einen Doppelklick auf das Ausfüllkästchen machst.
Du kannst, wenn du möchtest, auch die gesamte Hilfsspalte sparen.
Tabelle2!C1: {=SUMME(WENN((((Tabelle1!A1:A3000=56)*
1+(Tabelle1!A1:A3000=89)*
1+(Tabelle1!A1:A3000=78)*
1)*
(Tabelle1!B1:B3000=375735)*
1)>0;Tabelle1!J1:J3000;0))}
Achtung, dies ist eine Matrixformel. Die geschweiften Klammern nicht mit eingeben. Die Formel mit Strg+Shift+Enter abschließen, dadurch werden die Klammern automatisch erzeugt.
Bitte keine Däumchen mehr vergeben und bitte dringend OUBYIs Formel nehmen die ist 1000 mal besser. Ich habe eine Matrixformel gebaut wo gar keine nötig war. Bitte nehmt statt meiner Antwort die von Oubyi welche etwas weiter unten steht. Vielen Herzlichen Dank.
Ein Lösungsvorschlag:
- Formel steht in Zelle C1
- Klicke die Zelle an und drücke Strg+C
- Gib oben Links bei der Zellbezeichnung (dort sollte C1 stehen) einfach C1500 ein und drücke Enter
- Strg+Umschalt+Pfeiltaste nach oben
- Strg+V
Das war es schon.
Der Zellbezug ändert sich auch wenn man, wie im obigen Beispiel, die Formel kopiert und an anderer Stelle wieder einfügt. Dieser ändert sich nur nicht, wenn man in die Bearbeitungsleiste klickt und dort die Formel kopiert.
Allgemeine Tipps zum Kopieren von Formeln:
Formeln können, durch einfachen Doppelklick auf die Stelle an der man normalerweise die Zelle anklicken würde um die Formel herunter zuziehen, bis zum Tabellenende automatisch ausgefüllt werden. Dieser Weg ist meistens der Schnellste!
Die Geschwindigkeit beim Herunterziehen, nimmt mit steigendem Abstand des Mauszeigers, zu. Selbst bei diesem Vorgehen brauche ich keine 5 Sekunden.
Es kann auch die Tastatur zur Hilfe genommen werden. Wenn die Formel gerade herunter gezogen wird, kann dies mit den Tasten Bild Auf und Bild Ab oftmals schneller erfolgen als mit der Maus.
Hallo,
runterziehen ist aber die Lösung. um so weiter du die Maus vom Cursor wegziehst um so schneller geht es. 1500 Zeilen sind da kein Problem. Da musst du eher aufpassen, das du die richtie Zeile nicht verpasst.
Wenn du eine Spalte daneben mit auch 1500 Einträgen hast, reicht doppelklicken auf die rechte untere Ecke um es bis nach unten auszufüllen. Denke aber daran, deine Formel eventuell mit absoluten Bezügen (Tabelle1!$A$1) -> F4 drücken wenn der Cursor auf dem Ausdruck steht<- zu versehen wenn er nicht verändert werden soll.
Ich würde dir auch empfehlen die Werte nicht in die Formel zu schreiben. Mache dir lieber eine Hilfstabelle auf einem anderen Blatt oder auch im Kopf der Tabelle. Das lässt sich später leichter ändern.
Grüße
Ich bin mir nicht sicher, ob ich dich richtig verstanden habe. Aber ich interpretiere das mal so, dass du die Formel von C1 bis C1500 runterkopieren willst. Versuch's mal mit diesem Makro:
Sub Formel_kopieren()
Dim Zelle As String
Dim Bereich As String
Dim Quelle As Range
Dim Ziel As Range
'####################################################
'#---------------------------------------------------------------------------------------#
'#------------------------------EINSTELLUNGEN-------------------------------#
'#---------------------------------------------------------------------------------------#
'#---------------Zelle(n), die die Formel(n) enthalten:--------------------#
Zelle = "C1"
'#---------------------------------------------------------------------------------------#
'#---Bereich, der mit der/den Formel(n) ausgefüllt werden soll:--#
Bereich = "C1:C1500"
'#---------------------------------------------------------------------------------------#
'#--Tabelle (Tabellenname), in der das Ganze geschehen soll:--#
Tabelle = "Tabelle1"
'#---------------------------------------------------------------------------------------#
'####################################################
Set Quelle = Worksheets(Tabelle).Range(Zelle)
Set Ziel = Worksheets(Tabelle).Range(Bereich)
Quelle.AutoFill _
Destination:=Ziel, _
Type:=xlFillDefault
End Sub
Ich weiss nicht, wie gut du dich mit Makros und VBA auskennst und nehme mal das schlimmste an ;D...
Anleitung: (Annahme: Excel 2010)
- [ALT]+[F11]
- Im linken (oberen) Fenster [RMT] -> "Einfügen" -> "Modul"
- Code reinkopieren
- Editor schliessen
- Makro starten
- Eventuell unter "Datei" -> "Optionen" -> "Menüband anpassen" ein Häckchen bei "Entwicklertools" setzen.
Wenn du Formeln von z.B. A1:C1 bis zur Zeile 1500 runterkopieren willst, schreibst du folgendes:
- Zelle = "A1:C1"
- Bereich = "A1:C1500"
Ich hoffe, das hilft dir weiter.
Mit freundlichen Grüssen
Higlav
Meinst Du das so?:
=SUMMENPRODUKT((Tabelle1!J1:J10000)*
((Tabelle1!A1:A10000=56)+(Tabelle1!A1:A10000=89)+(Tabelle1!A1:A10000=78))*
(Tabelle1!B1:B10000=375735))
nein nicht ganz habe es jetzt auch schon mit der normalen runterzihe Variante gemachte Aber Danke für die Hilfe
ich bin so blöd