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

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 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

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

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