Note: The other languages of the website are Google-translated. Back to English

Jak zkontrolovat, zda je číslo prvočíslem v aplikaci Excel?

Jak všichni víme, prvočíslo je přirozené číslo, které obsahuje pouze dva odlišné dělitele přirozeného čísla: jeden a sám. Pokud máte v listu seznam čísel, jak můžete zkontrolovat, zda jsou čísla prvočísly?

Pomocí maticového vzorce zkontrolujte, zda je číslo prvočíslem

Pomocí funkce definované uživatelem zkontrolujte, zda je číslo prvočíslem


šipka modrá pravá bublina Pomocí maticového vzorce zkontrolujte, zda je číslo prvočíslem

Následující vzorec vám pomůže identifikovat číslo, ať už jde o prvočíslo nebo ne, udělejte to takto:

1. Do prázdné buňky zadejte následující vzorec - například C2 vedle svých dat:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime")) (A2 je buňka obsahující číslo, které chcete zkontrolovat), a poté stiskněte Ctrl + Shift + Enter klávesy dohromady a získáte výsledek, pokud je číslo prvočíslo, zobrazí se v buňce „Prime“, pokud ne, zobrazí se „Not Prime“, viz screenshot:

doc zkontrolovat, zda prime 1

2. Poté vyberte buňku C2 a přetáhněte úchyt výplně dolů k buňkám, na které chcete použít tento vzorec, a všechna čísla budou identifikována, ať už jde o prvočíslo nebo ne. Viz screenshot:

doc zkontrolovat, zda prime 2


šipka modrá pravá bublina Pomocí funkce definované uživatelem zkontrolujte, zda je číslo prvočíslem

Následující Uživatelem definovaná funkce také vám může pomoci zkontrolovat čísla, zda jsou primární nebo ne, prosím, postupujte takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Zkontrolujte, zda je číslo prvočíslo nebo ne:

Function CheckPrime(Numb As Single) As Boolean
'Updateby Extendoffice
    Dim X As Long
    If Numb < 2 Or (Numb <> 2 And Numb Mod 2 = 0) _
     Or Numb <> Int(Numb) Then Exit Function
    For X = 3 To Sqr(Numb) Step 2
        If Numb Mod X = 0 Then Exit Function
    Next
    CheckPrime = True
End Function

3. Poté tento kód uložte a zavřete, vraťte se do listu a zadejte tento vzorec: = checkprime (A2) do prázdné buňky vedle seznamu čísel a potom přetáhněte popisovač výplně dolů do buněk, které chcete tento vzorec obsahovat, pokud je číslo prvočíslem, zobrazí se PRAVDA, pokud ne, zobrazí FALSE, viz screenshot:

doc zkontrolovat, zda prime 3


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel vyřeší většinu vašich problémů a zvýší vaši produktivitu
80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než
    300
    výkonné funkce
    . Podporuje Office/Excel
    2007-2019 a 365
    . Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce
    30
    -denní zkušební verze zdarma. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu tím
    50%
    a každý den vám sníží stovky kliknutí myší!
officetab dno
Komentáře (21)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Dobrý den, líbí se mi váš článek. Díky moc. Moje jednoduché testy ukázaly, že 99 bylo prvočíslo, zatímco 99 není, protože 99 je děleno 3 a 33, stejně jako 1 a 99. Můžete mi dát vědět, co je s mojí operací špatně?
Tento komentář byl moderátorem webu minimalizován
Výše uvedený maticový vzorec nefunguje, ale funkce User Defined ano a byla velmi užitečná. Díky!
Tento komentář byl moderátorem webu minimalizován
Maticový vzorec nefunguje, ale funkce definovaná uživatelem ano a byla velmi užitečná. Dík!
Tento komentář byl moderátorem webu minimalizován
Zdá se, že uživatelsky definovaná funkce nefunguje pro čísla nad ~16777213
Tento komentář byl moderátorem webu minimalizován
Sub createprimenumbersbetween() počáteční_číslo = 99990 'sem zadejte hodnotu last_number = 99999 'sem zadejte hodnotu prvočísla = "" Pro a = počáteční_číslo Do poslední_číslo Pro b = 2 Do a If a - b * Int(a / b) = 0 A ab Pak Exit For Else If a = b Then prvočísla = prvočísla & " " & a End If End If Next b Next a MsgBox prvočísla End Sub Funkce prvočíslamezi(počáteční_číslo, poslední_číslo) prvočísla = "" Pro a = počáteční_číslo Do poslední_číslo Pro b = 2 Komu a If a - b * Int(a / b) = 0 And ab Then Exit For Else If a = b Then prvočísla = prvočísla & " " & a End If End If Next b Next a prvočíslamezi = prvočísla End Funkce 'pro kontrolu, zda číslo je prvočíslo Sub ISPRIME() number_to_be_checked = 102 'sem zadejte hodnotu For b = 2 To number_to_be_checked If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Then MsgBox "Not Prime". Sub Else If number_to_be_checked = b Then MsgBox "Prime" End If End If Next b End Sub 'pro kontrolu, zda je číslo prvočíslo Funkce ISPRIME2(number_to_be_checked) For b = 2 To number_to_be_checked If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Then ISPRIME2 = "Not Prime. Dělitelné " & b Exit Function Else If number_to_be_checked = b Then ISPRIME2 = "Prime" End If End If Next b End Function
Tento komentář byl moderátorem webu minimalizován
toto je moje nejrychlejší verze Sub createprimenumbersbetween3() počáteční_číslo = 1 'sem zadejte hodnotu last_number = 30000 'sem zadejte hodnotu prvočísla = "" Pro a = počáteční_číslo Do poslední_číslo c = a Pro b = 2 Do c Pokud a Mod b = 0 A cb Pak Exit For Else If b = c Pak prvočísla = prvočísla & " " & a Exit For Else If Round(a / (b + 1)) + 1 > b Then c = Round(a / (b + 1)) + 1 End If End If End If Next b Next a MsgBox prvočísla End Sub Sub ISPRIME3() number_to_be_checked = 2000000000 'sem zadejte hodnotu c = number_to_be_checked For b = 2 To c If number_to_be_checked Mod b = 0 And cb Then MsgBox "Not Prime. Else If b = c Then MsgBox "Prime" Exit Sub Else If Round(number_to_be_checked / (b + 1)) + 1 > b Then c = Round (number_to_be_checked / (b + 1)) + 1 End If End If End If Next b End Sub
Tento komentář byl moderátorem webu minimalizován
Váš vzorec nefunguje. Např. 1681 NENÍ prvočíslo, ale podle vzorce ano.
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Jano,
Výše uvedený vzorec je správný, po vložení vzorce do buňky byste měli současně stisknout klávesy Ctrl + Shift + Enter, nejen klávesu Enter.
Zkuste to prosím znovu, děkujeme!
Tento komentář byl moderátorem webu minimalizován
Ano, to byl případ CSE. Děkuji (už je to opraveno).
https://superuser.com/questions/674566/when-to-use-ctrlshiftenter-and-when-to-use-enter-in-excel

Btw česká varianta k:
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
je:
=KDYŽ(A2=2;"Prime";KDYŽ(A(MOD(A2;ŘÁDEK(NEPŘÍMÝ.ODKAZ("2:"&ROUNDUP(ODMOCNINA(A2);0))))<>0);"Prime";"Not Prime"))

Porovnejte: https://imgur.com/a/4MgeV
Tento komentář byl moderátorem webu minimalizován
dobře 4095 není prvočíslo. přesto dává výsledek jako prvotřídní, ačkoli. jeho nesprávné.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, vaibhave,
Při vkládání výše uvedeného vzorce byste měli současně stisknout klávesy Ctrl + Shift + Enter, nikoli pouze klávesu Enter, zkuste to znovu.
Tento komentář byl moderátorem webu minimalizován
Při zadávání čísel, která mají více než 12 číslic, dojde k chybě odkazu.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Nathane,
Jak jste řekl, když jsou čísla delší než 12 číslic, stane se z toho vědecký zápis. Vzorec se pro toto formátování nepoužije.
Tento komentář byl moderátorem webu minimalizován
Ano, fungovalo to, když jsem udělal Ctrl+Shift+Enter... !! Děkuji..:D a nevadí vám vysvětlit algoritmus, prosím.
Tento komentář byl moderátorem webu minimalizován
Ahoj.

Používám italskou verzi Excelu, takže vzorec nefunguje a mám chybu. Můžeš mi pomoci?

Díky předem
Tento komentář byl moderátorem webu minimalizován
Ahoj, Gian,
Pokud vám vzorec nefunguje správně, můžete použít druhou metodu – uživatelsky definovanou funkci. Zkuste to prosím, doufám, že vám to pomůže!
Děkuji!
Tento komentář byl moderátorem webu minimalizován
Ahoj skyyang.
Pokud to může být užitečné pro ostatní výzkumníky, informuji vás, že jsem našel řešení svého problému zde => http://www.riolab.org/index.php?option=com_content&view=article&id=172&Itemid=68

Děkuji!
Tento komentář byl moderátorem webu minimalizován
S touto rovnicí je určitě problém. Provedl jsem přímou kopii/vložení a zkontroloval jsem, že je to věrná kopie, ale stále má 9, 15, 21, 25, 33, 35 a 39 jako prvočísla, i když zjevně nejsou. Při rychlé kontrole se zdá, jako by faktory 3 a 5 vedly k nějakému problému. Je to velmi komplikovaný vzorec pro jednu buňku - natolik, že nemohu přijít na to, o co se snaží. Obvykle takové věci rozděluji do více buněk, abych si usnadnil ladění (což je podle mého názoru osvědčený postup Excelu).
Tento komentář byl moderátorem webu minimalizován
S touto rovnicí je určitě problém. Provedl jsem přímou kopii/vložení a zkontroloval jsem, že je to věrná kopie, ale stále má 9, 15, 21, 25, 33, 35 a 39 jako prvočísla, i když zjevně nejsou. Při rychlé kontrole se zdá, jako by faktory 3 a 5 vedly k nějakému problému. Je to velmi komplikovaný vzorec pro jednu buňku - natolik, že nemohu přijít na to, o co se snaží. Obvykle takové věci rozděluji do více buněk, abych si usnadnil ladění (což je podle mého názoru osvědčený postup Excelu). Zdá se však, že funkce funguje.
Tento komentář byl moderátorem webu minimalizován
NEZADÁVEJTE VZORCE DO BUŇKY. Vyberte buňku, vložte vzorce do řádku vzorců a stiskněte ctrl+shft+Enter. měl by dát { kolem vzorců}, jinak je to špatně.
Tento komentář byl moderátorem webu minimalizován
Craigu, díky – funguje to! Omlouvám se, nepřečetl jsem si návod dostatečně pozorně.
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL