2 votes

Trouver le nombre de caractères spécifiques dans une formule

J'essaye de trouver le nombre de de + dans une formule à l'intérieur d'une seule cellule dans Excel.

S'il s'agissait d'une cellule normale avec du texte à l'intérieur, ce serait assez facile. Mais en raison des restrictions du fichier avec lequel je travaille, je dois conserver le formatage de la cellule tel qu'il est.

En bref :

  • Cellule A1 : =123,12+234,45+790,44
  • Cellule A2 : =2 car il y avait deux + dans la cellule A1.

3voto

JMax Points 3155

Vous pouvez utiliser un fonction vba personnalisée (mettre ce code dans un module) :

Option Explicit

Function countChar(cell As Range, pattern As String)
    countChar = UBound(Split(cell.Formula, pattern))
End Function

Et utilisez ensuite cette fonction dans votre feuille de calcul :

=countChar(A1;"+")

2voto

Sigh Points 2558

VBA

Créez une fonction en utilisant ce code :

Function GETFORMULA(c As Range) As String
    If c.HasArray Then
        GETFORMULA = "{" & c.Formula & "}"
    ElseIf VarType(c) = vbString And Not c.HasFormula Then
        GETFORMULA = c.Value
    Else
        GETFORMULA = c.Formula
    End If
End Function

La formule ff. affichera le nombre d'occurrences de "+" dans celle-ci.

=LEN(GETFORMULA(cell))-LEN(SUBSTITUTE(GETFORMULA(cell),"+",""))  

Non-VBA

Mettez en surbrillance les cellules qui contiennent des formules. Si vous n'avez besoin de traiter qu'une seule cellule, ajoutez simplement une balise ' avant le = et passez à l'étape suivante.

Appuyez sur Ctrl + H . Entrez = dans le Trouvez ce que y '= en Remplacer par . La formule sera ainsi convertie en texte.

Utilisez cette formule dans une cellule vide pour compter le nombre d'occurrences de "+".

=LEN(cell)-LEN(SUBSTITUTE(cell,"+",""))

Pour rétablir les cellules telles qu'elles étaient, mettez-les en surbrillance, appuyez sur Ctrl + H et remplacer '= con = . En procédant ainsi, la formule ci-dessus indiquera 0.

1voto

jonsca Points 4077

Cette fonction prend la formule de la cellule qui lui est passée (c'est-à-dire que vous l'appelez par =NumPlus(A1) sur ta feuille de travail) et marche le long de celle-ci en comptant les signes plus. Vous pourriez le modifier légèrement pour prendre un personnage que vous voulez compter comme un argument.

Option Explicit
Function NumPlus(cel As Variant) As Variant
    Dim formstr As String
    Dim i As Integer

    NumPlus = 0
    formstr = cel.Formula

    For i = 1 To Len(formstr)
        If Mid(formstr, i, 1) = "+" Then
            NumPlus = NumPlus + 1
        End If
    Next i
End Function

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X