Wie bei Excel WENN A1 = NAME1, A2 = NAME2?
Hi,
muss bei einer Excel Tabelle in einer Sparlte Nummern schreiben und in die andere kommen dann autoatisch die Namen (z.B. A1 steht 1, dann steht C1 Paul, A1 steht 2, dann steht C1 Klaus...) und das mit 16 Namen. Brauche dafür die Formel.
6 Antworten
Ich kenne keine Formel für Select case deshalb ein Makro.
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("C1")
Select Case Range("A1").Value
Case 1
.Value = "Paul"
Case 2
.Value = "Klaus"
End Select
End With
End Sub
Ich habe in der Formelsammlung von Excel nachgeschaut, aber WAHL() leider nicht gefunden/übersehen. Poste doch deine Antwort. Für Anfänger ist WAHL() einfacher da man keine Makros braucht und das Sheet nicht als Excel Datei mit Makros abspeichern muß..
Man sollte generell auf Makros verzichten sofern es geht. Besonders dann wenn Excel die Bordmittel schon mitgibt. Es geht unheimlich auf die Perfomance gerade bei deinem Sub, da dieses bei jeder Änderung der Markierung ausgeführt wird und damit auch eine Neuberechnung nach sich zieht. Wenn dann solltest du zumindestens hier ein Target festlegen.
=WAHL(A1;"Name1";"Name2";"Name3";"Name4";"Name5";"Name6";"Name7";"Name8";"Name9";"Name10";"Name11";"Name12";"Name13";"Name14";"Name15";"Name16")
rückwärts, wenn der Name drinsteht und Du die Position in der geschriebenen Liste haben willst:
=Vergleich(A1;{"Name1";"Name2";"Name3";"Name4";"Name5";"Name6";"Name7";"Name8";"Name9";"Name10";"Name11";"Name12";"Name13";"Name14";"Name15";"Name16"};0)
das letzte Argument ;0 ist hier optional, ich empfehle es aber, denn bei falsch geschriebenem Namen könnte sonst fälchlicherweise die letzte Position wiedergegeben werden (ab Namf1 und größer), ohne dass Du es merkst! Ansonsten kommt mit ;0) bei Fehlern #NV)
Beachte: WAHL mit einfacher Auflistung, Vergleich mit {Matrix-Klammern} (und über index({...};A1) ginge Dein obiges Problem auch noch.)
Habe es jetzt so gemacht
=WENN(A1=1;"Name1";WENN(A1=2;"Name2";WENN(A1=3;"Name3";WENN(A1=4;"Name4";WENN(A1=5;"Name5";WENN(A1=6;"Name6";WENN(A1=7;"Name7";WENN(A1=8;"Name8";WENN(A1=9;"Name9";WENN(A1=10;"Name10";WENN(A1=11;"Name11";WENN(A1=12;"Name12";WENN(A1=13;"Name13";WENN(A1=14;"Name14";WENN(A1=15;"Name15";WENN(A1=16;"Name16"))))))))))))))))
Das ist die "brutale" Methode. ;)
Sieh dir die Methode von @augsburgchris oder mir an.
A1: deine Zahl
C1: =WAHL(A1;"Paul";"Klaus";"Herbert";"Jan";"Michael";...)
Wenn du die Namen in Zellbereich schreibst schreibst zum Beispiel F1:F16
Dann in C1: =WAHL(A1;F1:F16)
Bis auf die Tatsache, dass du dir das Array sparst ist hier kein Unterschied. Und wenn man ohnehin Bereiche benutzt ist WAHL nicht mal länger.
Schreibe in G1; 1 G2; 2 usw In H1 H2 H3... die Namen.
Dann in B1 die Formel:
=SVERWEIS(A1;G1:H16;2;WAHR)
In A1 Kannst du dann die Zahlen schreiben und in B1 erscheint der Name dazu.
Wie wäre es mit =WAHL()? oder in dem Fall von nur 2 Sätzen eine WENN?