Contar o numeros de vezes que

Contar em um banco de dados com todos os resultados (planilha1), quantas vezes um jogo (planilha2) por exemplo da mega sena, de seis números deu 4, 5 ou 6 (megasena) na loteria?

Ola @DCM, baixei os resultados, e gerei a informação com uma coluna extra, veja anexo.

Mega-Sena_02012025.ods (186,1,KB)

Tenho este estudo, aproveitei atualizar os sorteios.
A impressão dos volantes não esta atualizada, são os volantes antigos.
MegaSena_gs2.ods (585,9,KB)

2 Likes

=CONT.SE($C2:$H2;J$1)+CONT.SE($C2:$H2;K$1)+CONT.SE($C2:$H2;L$1)+CONT.SE($C2:$H2;M$1)+CONT.SE($C2:$H2;N$1)+CONT.SE($C2:$H2;O$1)

Troquei intervalo e critrerio, mais não se ganha muito, somente alguns $ menos:
=CONT.SE(J$1:O$1;C2)+CONT.SE(J$1:O$1;D2)+CONT.SE(J$1:O$1;E2)+CONT.SE(J$1:O$1;F2)+CONT.SE(J$1:O$1;G2)+CONT.SE(J$1:O$1;H2)

2 Likes

Olá @schiavinatto, obrigado pelo retorno, mas desse jeito eu já fazia. É que não estou descobrindo como anexar um arquivo ODS aqui, para mostrar da forma como estou querendo.

@LeroyG , Obrigado pelo retorno. Tentei anexar o arquivo mostrando do jeito que eu quero a informação, mas não consegui ou seja não achei como ir por um caminho para anexar o arquivo do meu PC aqui na pagina. Então, vou explicar. Por exemplo tenho um jogo na planilha_2 que tem seis dezenas que são: 1, 2, 3, 4, 5 e 6. (colunas A2:F2), Na coluna “H2” , informe quantas vezes esse aposta deu 4 pontos (desde o inicio dos sorteios até hoje -2955 jogos). A mesma coisa na coluna “I2” para acertos com 5 números e “J2”, para acertos com 6 números. Tentei essa fórmula abaixo que a IA do Google me passou, mas também não funciona, o resultado sempre retorna “0” =SOMA(SE((‘Banco_de_Dados’.B8:B5000=$B$4)+(‘Banco_de_Dados’.B8:B5000=$C$4)+(‘Banco_de_Dados’.B8:B5000=$D$4)+(‘Banco_de_Dados’.B8:B5000=$E$4)+(‘Banco_de_Dados’.B8:B5000=$F$4)+(‘Banco_de_Dados’.B8:B5000=$G$4)+(‘Banco_de_Dados’.C8:C5000=$B$4)+(‘Banco_de_Dados’.C8:C5000=$C$4)+(‘Banco_de_Dados’.C8:C5000=$D$4)+(‘Banco_de_Dados’.C8:C5000=$E$4)+(‘Banco_de_Dados’.C8:C5000=$F$4)+(‘Banco_de_Dados’.C8:C5000=$G$4)+(‘Banco_de_Dados’.D8:D5000=$B$4)+(‘Banco_de_Dados’.D8:D5000=$C$4)+(‘Banco_de_Dados’.D8:D5000=$D$4)+(‘Banco_de_Dados’.D8:D5000=$E$4)+(‘Banco_de_Dados’.D8:D5000=$F$4)+(‘Banco_de_Dados’.D8:D5000=$G$4)+(‘Banco_de_Dados’.E8:E5000=$B$4)+(‘Banco_de_Dados’.E8:E5000=$C$4)+(‘Banco_de_Dados’.E8:E5000=$D$4)+(‘Banco_de_Dados’.E8:E5000=$E$4)+(‘Banco_de_Dados’.E8:E5000=$F$4)+(‘Banco_de_Dados’.E8:E5000=$G$4)+(‘Banco_de_Dados’.F8:F5000=$B$4)+(‘Banco_de_Dados’.F8:F5000=$C$4)+(‘Banco_de_Dados’.F8:F5000=$D$4)+(‘Banco_de_Dados’.F8:F5000=$E$4)+(‘Banco_de_Dados’.F8:F5000=$F$4)+(‘Banco_de_Dados’.F8:F5000=$G$4)+(‘Banco_de_Dados’.G8:G5000=$B$4)+(‘Banco_de_Dados’.G8:G5000=$C$4)+(‘Banco_de_Dados’.G8:G5000=$D$4)+(‘Banco_de_Dados’.G8:G5000=$E$4)+(‘Banco_de_Dados’.G8:G5000=$F$4)+(‘Banco_de_Dados’.G8:G5000=$G$4))=4))

2 Likes

Ola @DCM , formula sem sentido. a função SE é pontual célulaxcélula e requer a opção de resposta verdadeira ou falsa.

3 Likes

Mais curta: =SOMARPRODUTO(CONT.SE($J$1:$O$1;C2:H2))

2 Likes

Ah!, perfeito… segue planilha.

Exemplo 1.ods (111.2 KB)

Ola @DCM, usando a formula sugerida por @PKG, e com colunas extras, segue sugestão…

Exemplo 1_GS.ods (228,8,KB)

@schiavinatto , boa tarde!..Dessa forma eu já fiz. O detalhe é que seu tiver dezenas de jogos, vou criar dezenas de colunas também lá no banco_de_dados. Eu queria uma formula para evitar tudo isso de colunas! Mas valeu muito obrigado. Abraços.

@DCM , então a alternativa e criar Funções e/ou Macros, via Formula é impossível.

Ótimo. Tentei, mas não lembrava cómo…

1 Like

Aqui está uma macro em Python que faz o que você quer. Dá pra melhorar, inclusive pra automatizar a definição da última linha da planilha

def get_result_count():
    doc = XSCRIPTCONTEXT.getDocument()
    controller = doc.getCurrentController()
    sheet = controller.getActiveSheet()
    sheets = doc.getSheets()
    db_sheet = sheets.getByName('Banco_de_Dados')
    
    # Define o intervalo usando coordenadas:
    # getCellRangeByPosition(StartColumn, StartRow, EndColumn, EndRow)
    # Intervalo na planilha de jogos
    g_start_col = 1 
    g_start_row = 4
    g_end_col = 6
    g_end_row = 9   
    # Intervalo na planilha de resultados
    r_start_col = 2 
    r_start_row = 1
    r_end_col = 7
    r_end_row = 2955
    
    # Exemplo de iteração pelas células do intervalo
    for row in range(g_start_row, g_end_row + 1):
        # Obtém o intervalo de células da linha atual
        gRange = sheet.getCellRangeByPosition(g_start_col, row, g_end_col, row)
        gRangeArray = list(gRange.DataArray[0])
        four = 0
        five = 0
        six = 0    
        for r_row in range(r_start_row, r_end_row + 1):
            # Obtém o intervalo de células da linha atual na planilha de resultados
            rRange = db_sheet.getCellRangeByPosition(r_start_col, r_row, r_end_col, r_row)
            rRangeArray = list(rRange.DataArray[0])
            # Conta quantos números coincidem
            count = sum(1 for item in gRangeArray if item in rRangeArray)
            if count == 4:
                four += 1
            elif count == 5:
                five += 1
            elif count == 6:
                six += 1
        sheet.getCellByPosition(8, row).Value = four
        sheet.getCellByPosition(9, row).Value = five
        sheet.getCellByPosition(10, row).Value = six      

Ola @stonefull, só falta explicar como usar, o normal no Libre é Basic.

Primeiro instalar a extensão APSO (Alternative Python Script Organizer), que simplifica um pouco mais a criação e organização das macros Python.
Antes de prosseguir, após a instalação, é recomendado configurar o editor de sua preferência. Vá em Ferramentas → Extensões. Clique na extensão APSO e em Opções. Digite o caminho completo do editor na caixa de texto ou clique no botão Escolher para selecionar pelo navegador de pastas. Com isso, o menu Editar na janela do APSO irá abrir o editor que você definiu. Eu uso o VSCode.
Outro ponto a se preocupar é onde as macros Python serão salvas. Em geral, o LibreOffice procura as macros em um diretório no perfil do usuário:

  • No Windows: %appdata%\libreoffice\4\user\scripts\python
  • No Linux: ~/.config/libreoffice/4/user/scripts/python

Se as pastas scripts e python não existirem, você precisa criá-las.
Agora, vá em Ferramentas → Macros → Organizar scripts em Python. Será aberta a janela do APSO.
Com Minhas Macros selecionada, clique em Menu e Criar Módulo . Informe um nome para o módulo. Por exemplo get_result_count.py e confirme. Agora, clique no nome do módulo e em Menu → Editar . Ele vai abrir o seu editor e você pode criar a macro. Qualquer dúvida estou disponível.

Aqui eu mostro como usar a biblioteca yfinance, a biblioteca para acessar dados financeiros do Yahoo Finance, usando Python no LibreOffice calc.

1 Like