Hallo,

Wenn ich dich richtig verstehe, hast du eine Spalte mit Referenzwerten und eine zweite Spalte mit Werten, die - abhängig von einem Kriterium in der ersten Spalte z.B. summiert werden sollen.

Du suchst also die Summe aller Werte aus Spalte2, wobei 0 x WertAusSpalte2, falls Kriterium nicht erfüllt, und 1 x WertAusSpalte2, falls Kriterium erfüllt.

Zur Lösung solch einer Aufgabe, bei der mehrere Spalten zeilenweise verarbeitet werden bietet Excel (und alle gängigen Tabellenprogramme) Matrizen Formeln an.

Der Clou an der Sache, man gibt jeweils die einzelnen Spalten an und lässt Excel anschließend alle Zeilen durchlaufen, um das gewünschte Ergebnis zu ermitteln.

In deinem Fall schreibst du

=Summe(Wenn(Spalte1="Kriterium"; Spalte2 x 1; Spalte2 x 0)) diese Formel jetzt aber nicht mit einem schnöden Enter abschließen, sondern mit einer Dreierkombination Ctrl+Shift+Enter.

Anschließend zeigt Excel die Formel in geschweiften Klammern an:

{=Summe(Wenn(Spalte1="Kriterium"; Spalte2 x 1; Spalte2 x 0))}

Das Ganze lässt sich auch für mehrere Spalten mit weiteren Kriterien ausbauen.

Hoffe, die Lösung ist verständlich.

LG, MB

...zur Antwort

Hallo,

Die Standardantwort ist Summewenn. Diese Funktion benötigt drei Angaben:

- die Referenzspalte

- das Referenzkriterium

- die Summenspalte

In deinem Fall also =Summewenn(Spalte1, 7, Spalte2)

Du musst nicht zwingend die gesamten Spalten anwählen; es reichen auch Zellbereiche. Allerdings musst du aufpassen, dass der Zellbereich für Spalte1 und der von Spalte2 gleich groß sind.

Die erste Antwort mit der Wennfunktion hat auch seine Vorzüge, besonders, wenn du mehrere Kriterien kombinieren möchtest. Allerdings verlangt das den Abschluss der Formel als Matrix.

Ich hoffe, dir hilft die Antwort.

LG, MB

...zur Antwort

Hallo Lisa,

Excel legt sich während einer geöffneten Sitzung die benötigten Daten in einen Arbeitsspeicher, den sogenannten Cache. Dabei kann es sein, dass dieser anwächst. Dies ist oft dadurch verschuldet, dass als Standardeinstellung unendlich viele Rückschritte möglich sind, also so lange Speicher vorhanden ist. Meine Empfehlung heißt aber nicht, diese Einstellung zu ändern, sondern lieber, von Zeit zu Zeit Excel komplett zu schließen, womit der störende Arbeitsspeicher wieder freigegeben wird. Insbesondere das Belassen von Excel im geöffneten Zustand über einen längeren Zeitraum (mit "Schlafzeiten" des Systems) können viel Speicher belegen.

LG, Matej

...zur Antwort

Hallo Unbekannt,

ohne VBA kannst du das am einfachsten mit der INDEX-Funktion in Kombination mit der VERGLEICH-Funktion lösen:

schreib in Zelle B2 deiner "langen" Liste:
=INDEX('Tabelle_mit_Stammdaten'!B:B;VERGLEICH(A2;'Tabelle_mit_Stammdaten'!A:A;0);1)

Zur Erklärung:
INDEX nimmt die Werte aus der zweiten Spalte der Stammdaten und wählt die Zeile aus, in der in der ersten Spalte der gesuchte Artikel steht. Die Suche selbst übernimmt dabei die VERGLEICH-Funktion.

Um den Programmieraufwand möglichst klein zu halten, solltest du die zwei Zellbereiche in intelligente Tabellen verwandeln. Dazu gehst du jeweils in eine Zelle der Zellebreiche und drückst STRG+t. Die eine Tabelle kannst du z.B. "tblStammDaten" nennen, die zweite "tblListe". (Das Feld findest du im Tabellenribbon links als Tabellennamen. Dazu muss eine Zelle der intelligenten Tabelle ausgewählt sein.)

Dadurch sparst du dir das Ermitteln von erster und letzer Zeile, sonder kannst eine einfache FOR EACH - NEXT - Schleife anwenden:

Option Explicit
Sub TabelleAuslesen()
Dim Anzahl
Dim rngListe As Range
Dim rngStammdaten As Range

For Each rngListe In _
  Thisworkbook.Worksheets("Sheet1"). _ 
  Range("tblListe[Artikel]")
         
' Die Referenzzelle aus den Stammmdaten finden       
' (Achtung: Die Suche ergibt eine Fehlermeldung,        
' falls der Wert in dem Referenzbereich nicht gefunden     
' wird.)
rngStammdaten = _
  WorksheetFunction.Match(rngListe.Value, _
  ThisWorkbook.Worksheets("Sheet1"). _
  Range("tblStammdaten[Artikel]"), 0)
         
' Wert aus der Nachbarzelle auslesen       
Anzahl = rngStammdaten.Offset(0, 1).Value
         
' Wert in die Referenzzelle eintragen       
rngListe.Offset(0, 1).Value = Anzahl
  
Next Rng

End Sub

Hoffe, es hilft dir :-)

LG, Matej

...zur Antwort

Hallo,

Beim Befehl INDIREKT schreibst du die Zelladresse und bekommst als Resultat den Inhalt der Zelle. In deinem Fall sollte also Folgendes stehen:

=INDIREKT("B" & A5)

LG

...zur Antwort

Hallo Photelegy,

die gute Antwort: Es ist möglich! Was wenig bekannt ist, dass die bedingte Formatierung nicht nur auf Farbe und Schrift angewendet werden kann, sondern auch für eine gewünschte Formatierung. So kannst du für deine Spalte F die bedingte Formatierung folgend einstellen:

  1. Die Standardformatierung belässt du auf Standard oder einem gewünschten Zahlenformat,
  2. Wähle die gesamte Spalte F aus und wähle den Menüpunkt "Bedingte Formatierung" (Menüband Start)
  3. Wähle "Neue Regel"
  4. Wähle den letzten Regeltyp: "Formel zur Ermittlung der zu formatierenden Zellen verwenden"
  5. Aus Formel gib ein: =UND((F1>=-180);(F1<180)) Damit legst du die Enstellung für die Werte größer/geich -180 bis (ausschließlich) 180 fest
  6. Unten rechts den Button für die Zellformatierung drücken und
  7. als Zellformat dein Format eingeben: "+"000;-000;000 (erster Reiter "Zahlen")

Jetzt sollten die Werte so aussehen, wie du willst. Die Werte < -180 und > 180 bleiben von dieser Formatierung unberührt.

Gruß, M

...zur Antwort

Dazu braucht man keine Programmierkenntnisse. Gesetzt dem Fall, du hast drei Spalten:
A         |  B           |  C
Name  |  Punkte  |  Rang
Dies Zeilen können unsortiert stehen. Eine sortierte Ausgabe erzeugen wir in zwei weiteren Spalten D und E, "Name (nach Rang)" und "erzielte Punkte".
Wichtig dabei, dass der Rang nur als Zahl eingegeben wird.
(Falls man den Punkt angezeigt haben will, einfach als benutzerdefiniertes Format "#." eingeben.)

In Zelle D2 schreibe die Formel:
=INDEX(A:A;VERGLEICH(ZEILE()-1;C:C;0);1)
und kopiere die Formel nach unten.

Der Befehl Index hat zwei Varianten. In dieser hier braucht er folgende Informationen:
INDEX( <Zellbereich> ; <Zeilenindex> ; <Spaltenindex> )
Die notwendige Zeile wird dabei mit dem Befehl VERGLEICH ermittelt. Dieser funktioniert mit folgenden Informationen:
VERGLEICH( <Index> ; <Zellbereich> ; <Vergleichstyp> )

Der gegebene Befehl schaut also zuerst mit dem Befehl VERGLEICH, wo der 1., 2. usw. Platz ist, und nimmt dann den entsprechenden Wert aus der Namensspalte.

Wenn du jetzt noch die dazu gehörenden Punkte ausgeben willst, dann schreib in Zelle E2 die Formel:
=INDEX(B:B;VERGLEICH(ZEILE()-1;C:C;0);1)
und kopiere die Formel nach unten.

Bei den Wettkämpfen ein freundliches Miteinander ohne Zwischenfälle!

...zur Antwort

Dein Ansatz ist gut. Du merkst aber selbst, dass du viele Möglichkeiten unter einen Hut bringen willst. Konzentrier dich auf das Wesentliche: Deine Bedingung ist jede Aussage, die mit "ja" anfängt. Also der Vorschlag die Aussage auf die ersten zwei Zeichen zu beschränken: LINKS(N8; 2)="ja". Allerdings muss das nicht zu dem gewünschten Ergebnis führen, weil die Aussage auch "Ja" sein kann. Das lässt sich mit einer weiteren Funktion abfangen: KLEIN(LINKS(N8; 2))="ja", in der Übersetzung: Nimm die beiden ersten Zeichen der Aussage, alles klein geschrieben, wenn es "ja" ist, dann unterlass das zählen.

Die Formel sieht dann also so aus: =WENN(KLEIN(LINKS(N8; 2))="ja";"";L8). Wenn es zu schnell/ zu viel auf einmal war, dann wiederhole dir die Schritte langsam noch einmal. Ich hoffe, die Antwort war hilfreich.

...zur Antwort

Hallo,Ihr Zelleneintrag ist keine Zahl, darum muss er zunächst aufgeteilt werden. Dies geschieht mit der Funktion TEIL( ; ; ).Nehmen wir an Ihr Wert steht in Zelle A1, dann teilen Sie den Eintrag folgend auf:Zelle B1: =TEIL(A1;1;4)Zelle B2: =TEIL(A1;5;3)Zelle B3: =TEIL(A1;8;4)Nun können Sie in Zelle C2 den gewünschten Wert abziehenZelle C2: =B2 - 41Jetzt müssen Sie die einzelnen Werte wieder zusammenfügen. Dies geschieht mit der Funktion VERKETTEN( ; ...). Soll die ursprüngliche Stellenanzahl unverändert bleiben, müssen wir uns noch den Betrag in Zelle C2 zurechtlegen. Dazu bietet sich der Befehl TEXT( , ) an.Mit folgender Verkettung bleibt die Stellenanzahl unverändert:Zelle A4: =VERKETTEN(B1;TEXT(C2; "000");B3)Mit dem Befehl in der Mitte, werden immer (mindestens) drei Stellen verwendet, wodurch sich die Stellenanzahl nicht reduziert.

...zur Antwort

Hallo Thromdar, ich nehme an, du hast eine Liste von Zahlenpaketen, die du in der Form "B" + Zahlenpaket + "01" anzeigen möchtest. Dazu bietet sich der Befehl VERKETTEN an. Wenn in Zelle A2 das Zahlenpaket steht also folgend: VERKETTEN("B";A3;"01"). Natürlich musst du in Zelle A2 die Zahlenkette nicht händisch eingeben, sondern kannst sie nach verschiedenen Kriterien zusammenstellen. Ich hoffe, die Information hilft dir weiter. Gruß, M.

...zur Antwort

Du hast die Einstellung der Zelle in Datum geändert. Das ist gut. Excel weiß nun, dass es sich um ein Datum handelt. Allerdings weiß es nicht, in welchem Format du das Datum angezeigt haben willst. Umm dies richtig einzustellen, musst du erneut über das Kontextmenü (rechte Maustaste) das Zellformat bearbeiten. In der rechten Spalte sollte das Format "Datum" schon ausgewählt sein. Rechts in der Mitte ist das Feld für den (Format)Typ. Hier siehst du eine ganze Menge an möglichen Varianten. Falls du deinen Wunsch (Format "07.09.2017") nicht findest, dann gibt es noch die Möglichkeit "benutzerdefiniert". Hier erscheint eine Extrazeile im Typfeld, in das du das gewünschte Format eintragen kannst. In deinem Fall ist es "TT.MM.JJJJ", also zwei Stellen für den Tag, zwei für den Monat und vier für das Jahr. Jetzt sollte das Datum wie gewünscht angezeigt werden.

...zur Antwort

Wenn in der Zelle (z.B. A1) nur aus Ziffern und Leerzeichen besteht, schreib in die nächste Zelle einfach =ZAHLENWERT(A1).

...zur Antwort

Das Problem stellt sich dadurch, dass Office im Hintergrund nur die Postleit"zahl" sieht. Bei Ecxel kann man das über die beutzerdefinierte Formatierung ausmerzen. Das kennst du schon.

Bei Word musst du das Ganze etwas umständlicher machen, über ein formatiertes Feld, Menüleiste Einfügen - Feld, Button Formel. Bei Formel schreibst du die PLZ mit = davor, also z.B. =1067 für Dresden, und beim Zahlenformat das bekannte 00000, ohne Anführungszeichen.

Jetzt zeigt Word die PLZ mit fünf Stellen an.

...zur Antwort

Hallo ChessPlayer, bei Excel 2007 hat man den Zugang zu den Makros ein wenig verbarrikadiert. Der direkte Zugang zu den Makros über ALT-F11 funktioniert zwar, aber auf dem Paneel findet man in der Standardeinstellung keinen Button, der einen dorthin führt. Den dazu gehörigen Buttonbereich musst du dir zuerst freischalten: Drück oben links auf den Office-Button und wähle dann die Excel-Möglichkeiten (unten-Mitte). Jetzt müsstest du oben in der Mitte drei Checkboxen sehen, bei denen die dritte nicht angekreuzt ist. Diese schaltet den Entwicklerbereich frei. Wenn du jetzt zu Excel zurückkehrst, siehst du einen neuen Buttonbereich, den Entwickler. Dort findest du, wonach du gesucht hast.

Gruß, MatejB

...zur Antwort

Auch in den Zellen von Excel kann man einen Tabulator einfügen. Hinter der Formel =Zeichen(9) verbirgt sich der Tabulator.

Man kann ihn direkt verwenden z.B.: ="Dieser Text "&Zeichen(9)&" enthält einen TAB." oder zur Verknüpfung einzelner Zellen: =A1&Zeichen(9)&B1&Zeichen(9)&C1

Das Zeichen selbst wird als unschönes Kästchen angezeigt. Kopiert man den Zellwert jedoch in einen reinen Texteditor erscheint nur der Tabulator.

Gruß, Matthias

...zur Antwort