Excel Formelbefehle: Ist Zahl Primzahl

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Erfasse in C1 folgende Formel:

=WENN(ZÄHLENWENN(A:A;B1)>0;"Prim";"")

das dann einfach nach unten ziehen solange in Spalte B Zahlen vorhanden sind-


KnorxyThieus 
Fragesteller
 05.05.2014, 18:07

Ich hab's schon clemensws Hilfe + WENNFEHLER geschafft!

0
Iamiam  06.05.2014, 21:46
@KnorxyThieus

da er nur WAHR bzw FALSCH will, reicht sogar

=ZÄHLENWENN(A:A;B1)>0

@ clemensw: oder, wenns 0 bzw 1 sein soll:

=(ZÄHLENWENN(A:A;B1)>0)*1

0
  1. Setze hinter jede Primzahl (Spalte einfügen) den Wert 1.
  2. Sortiere die Primzahlen (fall noch nicht sortiert)
  3. Wende den Befehl SVERWEIS an:

=SVERWEIS(C1;A1:B100;2;FALSCH)

C1 ist die Zahl, von der Du wissen willst, ob sie prim ist

A1:B100 ist die Liste der ersten 100 Primzahlen, in Spalte B steht jeweils der Wert 1

2 ist die Spalte die zurückgegeben wird

FALSCH bedeutet, es wird eine genaue Übereinstimmung gesucht.

Siehe http://office.microsoft.com/de-de/excel-help/sverweis-HP005209335.aspx


KnorxyThieus 
Fragesteller
 02.05.2014, 14:08

Danke erstmal für die Antwort!

Ich habe jetzt ein bisschen rumprobiert und es so weit gebracht, dass in Spalte A von A2 bis A170 die Primzahlen sortiert stehen, in Spalte B die 1sen - erklärst du mir noch, wofür die gut sind? - in Spalte C die Liste aller Zahlen bis zur größten Primzahl und in Spalte D die Formel

=SVERWEIS(C2;A$2:B$170;2;FALSCH)

die ich aufgrund der Spaltenbeschriftungen (C2, A2) noch abgeändert habe und die Dollarzeichen gesetzt habe, vorher kam immer nur #NV als Lösung. Jetzt kommt bei Primzahlen 1, ansonsten #NV.

Wie behebe ich das?

Mit freundlichen Grüßen,
KnorxThieus

0
clemensw  02.05.2014, 14:22
@KnorxyThieus

SVERWEIS (lies am besten mal den Link) bedeutet:

Suche den Wert C2 in der ersten Spalte der Matrix A2 bis B170.

Falls Du den genauen Wert (daher "FALSCH") findest, liefere den Wert in der 2. Spalte (alos die 1) zurück

Ein Fehler ist mir noch aufgefallen: Du solltest die Matrix komplett arretieren, als $A$2:$B$170

1
KnorxyThieus 
Fragesteller
 02.05.2014, 14:31
@clemensw

Achso, dann habe ich jetzt verstanden.
Aber bei den Nicht-Primzahlen bleibt dennoch #NV stehen! Schaffe ich da Abhilfe mit WENNFEHLER?

Edit: Ja, das habe ich ausprobiert, klappt.

0
augsburgchris  05.05.2014, 13:00

Das führt zu 1000 #NV-Fehlern und die Performance der Datei wird sagen wir es mal vorsichtig suboptimal.

SVERWEIS ist kein Allheilmittel. Vor allem ist er NICHT dazu geeinegt zu vergleichen ob bestimmte Zahlen in einer Liste vorkommen oder nicht.

0
ibrakadabra06  28.12.2023, 17:06

Soweit ich deine Frage verstanden habe, willst du alle Primzahlen auflisten. Dafür hast du schon eine Liste aller Primzahlen aufgelistet. Diese vorgegebene Liste ist aber unnötig mit folgender Funktion:

=SUMME(WENN(REST(B3;MATRIXERSTELLEN(B3;1;LAMBDA(x;s;x)))=0;1;0))=2

Die zu testende Zahl steht dabei jetzt im Feld B3. Je nachdem, ob im Feld B3 eine Primzahl steht, gibt die Formel entweder WAHR oder FALSCH aus.

Ich bin jetzt auch kein Excel-Profi, habe aber ein bisschen rumprobiert und bin dazu gekommen. Daher ist es wahrscheinlich nicht die schönste Variante.

0

Die Frage bezüglich Excel-Befehlen haben schon andere beantwortet (außerdem hab ich kein Excel am PC), zu deinem ersten Satz "Ich habe in Spalte 1 "Primzahl" eine Liste aller Primzahlen (aus dem Internet kopiert)" möchte ich meine Verwunderung zum Ausdruck bringen: Wenn du in Spalte 1 alle Primzahlen stehen hast, hast du höchstwahrscheinlich ein Problem! Es gibt nämlich unendlich viele Primzahlen - diese alle auf dem PC zu speichern, ist ein Ding der Unmöglichkeit ;-)

Größte, derzeit bekannte Primzahl: 2^{57.885.161}-1, eine Zahl mit 17.425.170 (dezimalen) Stellen - "gefunden" am 25.1.2013 → siehe Wikipedia.

Woher ich das weiß:eigene Erfahrung – langjährige Nachhilfe

KnorxyThieus 
Fragesteller
 04.05.2014, 13:21

Korinthenkackerei - ich meinte natürlich eine Liste aller Primzahlen <= (kleiner gleich) 1000...

1
IF(COUNTIF(A0:A100,A0)>0,"true", "false")

Hab's nicht getestet, sollte aber so in etwa gehen.


KnorxyThieus 
Fragesteller
 02.05.2014, 13:56

Die Formel enthält einen Fehler...

Sagt mir nichts, kannst du das verbessern?

0
Iamiam  06.05.2014, 13:02
@KnorxyThieus

erstens gibt es kein A0, zweitens ist eine englische Formel fürs deutsche Excel nicht geeignet, drittens iat "true" bzw "false" ein Text, kein Boolean!
müsste heissen (ebenfalls Trockenübung):

=Wenn(Zählenwenn(A1:A100,A1)>0,WAHR,FALSCH)

Schade, dass der an sich gute Denkansatz so verschludert wurde!

1