× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 [Excel 2007] Fonction NB.SI - problème
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Mike Portnoy
  Posté le 25/06/2014 @ 16:16 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

Je me permets de vous écrire pour m'aider à composer une formule assez spéciale.

Mon tableau contient plusieurs chiffres séparés par des espaces.

De plus, dans une autre colonne, j'ai une liste de chiffres de 1 à 26 (voir tableau excel ci-joint).

Ce que j'aimerai faire, c'est que la cellule C1 m'indique combien de fois le chiffre de la cellule B1 se trouve dans la liste A1 à A2.

Exemple :

Dans la liste, combien de fois ressort le chiffre de la cellule B23 ? 2x

Combien de fois ressort le chiffre de la cellule B3 ? 2x

En espérant avoir été clair, merci d'avance pour vos réponses.

Publicité
Mike Portnoy
 Posté le 25/06/2014 à 16:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Anonyme a écrit :

Salut

NB.SI() ne sert pas à ça !


La preuve que je ne suis pas très doué...

Les nombres sont au format "standard".

Merci beaucoup pour votre aide

DjiDji59430
 Posté le 25/06/2014 à 18:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu selectionnes la colonne A puis Données--> convertir, tu choisis espace, et tu te retrouve avec 4 colonnes et la tu peux utiliser nb.si().

Par exemple en f23 =nb.si(a1:d26;e23)



Modifié par DjiDji59430 le 25/06/2014 22:24
ferrand
 Posté le 25/06/2014 à 22:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

J'ai pas mieux pour l'instant, en C1:

=SOMMEPROD(--(ESTNUM(CHERCHE(STXT(SUBSTITUE(" "&$A$1&" "&$A$2&" ";" "&B1&" ";"A");LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(" "&$A$1&" "&$A$2&" ";" "&B1&" ";"A"))));1);"A"))))

On peut décomposer en 2 maillons, cela permet d'ailleurs de mieux comprendre le mécanisme.

En C1 : =SUBSTITUE(" "&$A$1&" "&$A$2&" ";" "&B1&" ";"A")

En D1 : =SOMMEPROD(--(ESTNUM(CHERCHE(STXT(C1;LIGNE(INDIRECT("1:"&NBCAR(C1)));1);"A"))))

(2e partie inspirée de Boisgontier )

Toutes les formules sont tirables sur la colonne.

ferrand
 Posté le 25/06/2014 à 23:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Re,

Une solution plus simple : en C1 :

=(NBCAR($A$1&$A$2)+3-NBCAR(SUBSTITUE(" "&$A$1&" "&$A$2&" ";" "&B1&" ";"")))/(NBCAR(B1)+2)

A tirer sur la colonne.

ferrand
 Posté le 26/06/2014 à 12:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Pour le fun, une autre solution utilisant une fonction personnalisée :

Function NBDANS(nr As Integer, ParamArray suites())
Dim i%, j%, n%, ch
Application.Volatile
If IsMissing(suites) Then
NBDANS = CVErr(xlErrNA)
Exit Function
End If
For i = 0 To UBound(suites)
If Application.WorksheetFunction.IsText(suites(i)) Then
ch = Split(suites(i))
For j = 0 To UBound(ch)
If IsNumeric(ch(j)) Then
If CInt(ch(j)) = nr Then n = n + 1
Else
NBDANS = CVErr(xlErrValue)
Exit Function
End If
Next j
Else
NBDANS = CVErr(xlErrValue)
Exit Function
End If
Next i
NBDANS = n
End Function

La fonction étant collée dans un module standard, en C1 la formule suivante (à tirer sur la colonne comme les autres) :

=NBDANS(B1;$A$1;$A$2)



Modifié par ferrand le 26/06/2014 12:25
ferrand
 Posté le 27/06/2014 à 22:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Une autre variante personnalisée :

Function NBDEDANS(nr As Integer, ParamArray suites())
Dim i%, h%, n%, ch
Application.Volatile
If IsMissing(suites) Then
NBDEDANS = CVErr(xlErrNA)
Exit Function
End If
For i = 0 To UBound(suites)
If Application.WorksheetFunction.IsText(suites(i)) Then
ch = Replace(" " & suites(i) & " ", " " & nr & " ", Chr(191))
Do
h = InStr(h + 1, ch, Chr(191))
If h > 0 Then n = n + 1
Loop While h > 0
Else
NBDEDANS = CVErr(xlErrValue)
Exit Function
End If
Next i
NBDEDANS = n
End Function

C1 => =NBDEDANS(B1;$A$1;$A$2)

ferrand
 Posté le 29/06/2014 à 16:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Je n'ai plus de variantes intéressantes !

Mike Portnoy
 Posté le 01/07/2014 à 17:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Wow je devrais me connecter plus souvent sur PCASTUCES, merci pour tous ces renseignements, je vous redirai quelle solution je vais utiliser.

Merci beaucoup.

Publicité
Lui
 Posté le 05/07/2014 à 11:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Hello tous ,

Juste pour dire, Ferrand, respect

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
143,41 €SSD SanDisk Ultra 3D 2 To à 143,41 € livré
Valable jusqu'au 25 Novembre

Amazon Allemagne fait une belle promotion sur le SSD SanDisk Ultra 3D d'une capacité de 2 To qui passe à 138,89 € (avec la TVA ajustée) grâce à un coupon automatiquement appliqué au moment du paiement. Comptez 4,52 € pour la livraison en France, soit un total de 143,41 € livré. On le trouve ailleurs autour de 230 €. Une bonne affaire pour ce SSD performant qui offre des débits de 560 Mo/s en lecture et 530 Mo/s en écriture. Cette version est garantie 3 ans.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
29,99 €51 Worldwide Games sur Switch à 29,99 €
Valable jusqu'au 25 Novembre

Amazon fait une promotion sur le jeu Switch 51 Worldwide Games qui passe à 29,99 € livré gratuitement au lieu de 40 €. Echecs, dominos, fléchettes, poker, bowling, solitaire, mah-jong, … les plus grands jeux classiques du monde entier se donnent rendez-vous votre Nintendo switch avec 51 worldwide games !


> Voir l'offre
34,99 €Carte WIFI AC1200 Asus PCIE-AC56 à 34,99 €
Valable jusqu'au 26 Novembre

Boulanger fait une promotion sur la carte WIFI AC1200 Asus PCE-AC56 à 34,99 € alors qu'on la trouve ailleurs à partir de 60 €. Cette carte réseau à brancher sur un port PCI-Express de votre carte mère vous permettra d'accéder rapidement à un réseau double bande 2,4 GHz/5 GHz et de vous offrir des débits jusqu'à 1200 Mbp/s grâce à ses 2 antennes à haut gain détachables et ajustables.


> Voir l'offre

Sujets relatifs
Excel 2007 Problème bizarre #valeur!
Probleme d'enregistrement avec excel 2007
Fonction SI Excel (Excel 2007)
Probleme excel - tri dans macro Excel 2007
Problème de "fonction" sous Excel
Problème doc excel 2007 et office 2002
fonction FIN.MOIS Excel 2007
Problème avec mon graph à bulles sur Excel 2007
Excel 2007 problème formule
Problème virgule Excel 2007
Plus de sujets relatifs à [Excel 2007] Fonction NB.SI - problème
 > Tous les forums > Forum Bureautique