Dans ligne nombre fini par 1, combien de fois nombre suivant fini par 3

Bonjour à toutes et tous,

Dans une plage de cellules (D16:CWR16) J'ai des nombres finissant toujours par 1,3,7 ou 9. j’aimerais savoir quand un nombre fini par 1, combien de fois le nombre suivant fini par 3.

Merci pour l'aide apporté !

bonjour,

une proposition pour une liste de nombre en B1 à B40

=SOMMEPROD((DROITE(B1:B39;1)="1")*(DROITE(B2:B40;1)="3"))

ou

=SOMMEPROD((MOD(B1:B39;10)=1)*(MOD(B2:B40;10)=3))

Salut h2so4,

Merci pour ta réponse, malheureusement cela ne fonctionne pas. Le résultat donne zéro.

C'est aussi de ma faute j'ai oublié de préciser qu'ils y à des cellules vides entres les nombres.

Merci pour l'aide apporté ;-)

Vincent

Bonjour,
Une petite mise à jour de la proposition de h2so4, que je salue !...
Cdlt.

=SOMMEPROD((B2:N2<>"")*(DROITE(B2:N2)="1")*(DROITE(C2:O2)="3"))

Un tout grand merci à vous !

Cela ne fonctionne pas, j'ai joint un fichier pour plus de facilité.

Encore merci

Vincent

19test-01.xlsx (15.64 Ko)

bonjour

il faut bien sûr adapter la plage dans la formule. puisque la formule était donnée pour la plage B1:B40. pour D16:CWR16, voici

=SOMMEPROD((DROITE(D16:CW1Q6;1)="1")*(DROITE(E16:CWR16;1)="3"))

ou

=SOMMEPROD((mod(D16:CW1Q6;10)=1*(mod(E16:CWR16;10)=3))

edit : je viens de voir ton fichier et donc effectivement la formule n'est pas adaptée à ton fichier.

Merci h2so4,

Cela ne fonctionne pas, sry.

J'ai joint (post précédent) un fichier avec toutes vos propositions adapté à la ligne en question, donc :

=SOMMEPROD((D4:CWR4<>"")*(DROITE(D4:CWR4)="1")*(DROITE(D4:CWR4)="3"))

=SOMMEPROD((DROITE(D4:CWR4;1)="1")*(DROITE(D4:CWR4;1)="3"))

=SOMMEPROD((MOD(D4:CWR4;1)=1)*(MOD(D4:CWR4;1)=3))

Encore merci pour votre aide !

Vincent

Edit: Je viens de voir qu'entre temps vous avez édité votre message ;-)

bonjour,

une solution via une fonction personnalisée

compte(plage,vi,vs) où plage est la plage de cellules à considérer, et vi et vs les conditions pour le comptage (vi est le chiffre final du premier nombre et vs est le chiffre final du nombre suivant)

Exemple : pour compter les nombres se terminant par 1, suivis d'un nombre se terminant par 3 dans la plage (A1:Z1)

=compte(A1:Z1,1,3)

code de la fonction personnalisée présente dans le fichier joint

Function compte(plage As Range, vi, vs)
    For i = 1 To plage.Count - 1
        If plage(i) <> "" Then
            If Right(plage(i), 1) = vi & "" Then
                For j = i + 1 To plage.Count
                    If plage(j) <> "" Then
                        If Right(plage(j), 1) = vs & "" Then ctr = ctr + 1
                        Exit For
                    End If
                Next j
            End If
        End If
    Next i
    compte = ctr
End Function
11test-01.xlsm (21.95 Ko)

Bonjour,

Peut-être ainsi?

=(NBCAR(JOINDRE.TEXTE("-";VRAI;DROITE(D4:CWR4;1)))-NBCAR(SUBSTITUE(JOINDRE.TEXTE("-";VRAI;DROITE(D4:CWR4;1));"1-3";"")))/3

Hello H2, même résultat

bonjour cousinhub,

astucieux !

Bonjour cousinhub et h2so4,

La solution proposer via une fonction fonctionne bien. Par contre la dernière formule ne fonctionne malheureusement pas car par soucis de facilité j'aurais préférer une formule (#VALEUR!). Une idée ?

Merci encore à vous !

Vincent

Re-,

Comme j'ai développé cette formule sous Excel 2021...

Est-ce que ta version (2019) comporte la fonction "JOINDRE.TEXTE"?

Si oui, peut-être valider la formule en matriciel (en cliquant dans la cellule contenant la formule, puis en appuyant simultanément sur les touches CTRL + MAJ + Entrée)

Peut-être?

Re,

La fonction est bien dans 2019. Et ce qui est surprenant c'es que dès que je clique sur l'argument de la fonction pour changer la formule celui-ci me donne un bon résultat dans la popup...

La manip pour matricielle ne fonctionne pas.

Encore merci ;-)

Re-,

Je viens d'essayer sur un autre PC avec 2019, et te confirme qu'en validant la formule en matriciel, cela donne la bonne valeur...

Lorsque tu valides comme je te l'ai indiqué, ta formule est bien entourée de {=formule}?

Re-,

ton fichier avec ma formule en matriciel

Autant pour moi, parfois.... Il fallait faire CTRL + MAJ + Entrée dans la barre de formule :-))...

Merci à vous deux !

Pour plus de précision en Visual basic ça donne un résultat supérieur de 2 à ce qui devrais être, une idée ? Les deux solutions m'intéressant ;-)

Edit : C'est bon, quelques nombres qui ont eu l'envie de ce glisser dans la ligne :-). Les deux code fonctionne ! Super merci et belle journée à vous.

Vincent

Re,

Petit souci, je désire faire de même pour cette fois-ci que 1 "cherche" 7 . J'ai pensé que ceci serait bon

{=(NBCAR(JOINDRE.TEXTE("-";VRAI;DROITE(D4:CWP4;1)))-NBCAR(SUBSTITUE(JOINDRE.TEXTE("-";VRAI;DROITE(D4:CWP4;1));"1-7";"")))/7}

Et bien, non :-( Normalement je devrais avoir 59 et j'ai comme résultat 25,28571429. En fait je dois faire cela aussi pour 1 vers 1, 1 vers 9 etc...

Bien à vous

Re-,

Dans la formule, il faut diviser par 3, quelque soit le nombre recherché...

En effet on compte le nombre de "jointures", qui se présentent sous forme "1-3", "1-7"... puis on remplace les "1-7" (soit 3 caractères) par rien...

Donc la différence entre la "jointure" complète et la "jointure" tronquée est à diviser par 3...

TOP !!!

Merciiii cousinhub !

Je ne met pas tout de suite résolu, je teste tout cela, ont sait jamais...

Bonjour à toutes et tous,

J'ai une demande du même type. Je n'ai pas ouvert un nouveau sujet, cependant les modo si vous pensez que c'est mieux, n'hésitez à me gronder !

Toujours dans le même fichier, j'aimerais calculer le nombre de cellule vide qui suit un chiffre, par exemple 9. et si possible, face le total des cellules vides qui suivent ce chiffre.

Merci à chacune et chacun pour tout l'aide apporté !

Bien à vous

Vincent

PS: j'oublie de préciser que j'ai recopier la ligne et remplacer les cellules vide par des zéro. En reprenant la formule proposé par cousinhub, j'arrive à compter le nombre de zéro après 9 et donc le nombres de bloc, mais pour le reste je ne sait pas comment faire. Comment additionner les zéros entres blocs après chaque 9

=(NBCAR(JOINDRE.TEXTE("-";VRAI;DROITE(D30:CWP30;1)))-NBCAR(SUBSTITUE(JOINDRE.TEXTE("-";VRAI;DROITE(D30:CWP30;1));"9-0";"")))/3
Rechercher des sujets similaires à "ligne nombre fini combien fois suivant"