Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/05/2011, 19h44   #1
Invité de passage
 
Inscription : mai 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 2
Points : 0
Points : 0
Par défaut Comment simplifier un calcul multi cellules?

Bonjour,

J'ai utilisé une feuille excel pour de la trigo.
Au final, après plusieurs calculs répartis sur une 15aine de cellules j'obtiens l'angle que je désire.
J'aimerai maintenant simplifier tout ça pour obtenir une équation plus simple dépendant de mes 5 cellules sources et non pas des cellules de calcul intermédiaires. connaissez-vous une fonction de regroupement ou de factorisation qui permette cela?
remitchou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 20h11   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Et on fait comment pour deviner le calcul que tu as utilisé ?

Comment veux-tu que les membres du forum t'aident à faire une simplification si tu ne donnes pas les éléments

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 20h14   #3
Invité de passage
 
Inscription : mai 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 2
Points : 0
Points : 0
Je me suis mal exprimé

Exemple:

A1=5 (entrée)
B1=2*A1 (calcul intermédiaire)
C1=2*B1 (résultat exploité)
Existe-t-il une fonction qui permette de simplifier C1 en C1=4*A1 c'est à dire qui m'affiche l'équation de mon résultat par rapport aux cellules d'entrées.
Bien sur mon problème est plus complexe de 3 cellules
remitchou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 21h03   #4
Membre habitué
 
Avatar de Syphochaos
 
Homme Cyril CHMIEL
Étudiant
Inscription : avril 2011
Messages : 70
Détails du profil
Informations personnelles :
Nom : Homme Cyril CHMIEL
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 70
Points : 109
Points : 109
Bonjour remitchou, Philippe JOCHMANS.

Excel n'a pas besoin de calculs intermédiaires comme nous on aurait besoin pour faire ça de tête. Essaie tout simplement de regrouper tous tes calculs en un seul.

Comme l'a dit Philippe JOCHMANS :
Citation:
Envoyé par Philippe JOCHMANS
Comment veux-tu que les membres du forum t'aident à faire une simplification si tu ne donnes pas les éléments
Sypho.
Syphochaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 04h10   #5
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

ce n'est pas un problème Excel, mais un problème de mathématiques.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/05/2011, 20h37   #6
Membre habitué
 
Benoit Schwob
Business Analyst
Inscription : juin 2009
Messages : 93
Détails du profil
Informations personnelles :
Nom : Benoit Schwob
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business Analyst

Informations forums :
Inscription : juin 2009
Messages : 93
Points : 137
Points : 137
Bonjour remitchou,

Je vois ce que tu veux faire…
Mais purée, faut avoir un peu de temps à tuer pour te répondre, dis-donc...

Tu as un paquet de valeurs initiales, puis une brochette de cellules qui font des jolies formules avec tes valeurs initiales, et une formule finale qui travaille avec les cellules de la brochette. Et tu aimerais plutôt que la formule finale devienne maintenant THE super formule finale : qu'elle travaille directement avec les valeurs initiales, et non plus avec la brochette intermédiaire.

Tout ça sans te palucher la réécriture de la formule finale : parce que hein, réimpacter, cellule après cellule, les bons bouts de formules aux bons endroits, c'est fastidieux…

Bon : Excel ne te fait pas ça tout seul.
(Remarque, ce serait bien malin, mais faut pas pousser.)

Allons-y pour les astuces…

On commence par mettre tes formules à plat, l'une derrière l'autre.
Je pars de l'idée de ce tu écrivais en exemple, mais je change un peu parce que la troisième cellule qui a la même formule que la deuxième, c'est confusionnant, je complexifie un peu pour mieux voir les étapes sucessives . (Et je passe en vertical parce que je préfère…)

Donc voilà ce qu'on a si on le décrivait dans Word :
A1=5
A2=2*A1
A3=3*A2 +1
A4=A3/3

L'idée est de mettre ça sur deux colonnes :
Code :
1
2
3
4
A1     5
A2     2*A1
A3     3*A2 +1
A4     A3/4
Un conseil : fais ça dans une nouvelle feuille et à partir de A1, ce sera plus clair.

(Avec les fonctions ADRESSE, LIGNE et COLONNE on peut monter la première colonne, et la seconde colonne n'est jamais qu'une copie des formules dans laquelle on a supprimé les signes "=". Dorénavant on ne travaille qu'avec des chaînes de texte et plus avec les formules de base. Dis-moi si tu n'y arrives pas.)

A partir de là, l'idée est de faire du rechercher/remplacer à rebours.

Tu travailles dans une troisième colonne, et tu commences sur la dernière ligne (oui, je trouve ça plus commode de commencer par le bas).
Dans l'exemple que j'ai pris, la formule dans la cellule C4 sera :
Code :
=REMPLACER(B4;CHERCHE(A3;B4);NBCAR(A3);C3)
(Dans la cellule d'à côté, on remplace toute référence à la cellule précédente par la formule contenue dans cette cellule précédente. NBCAR parce que tes cellules ont a priori des adresses de longueurs variables. C'est compréhensible où je détaille la démarche ?)

Et là, tu recopies cette formule dans la cellule du dessus, puis dans celle du dessus, puis dans celle du dessus, etc, et tu t'arrêtes à temps pour préserver tes valeurs initiales.

Au final, la cellule de la dernière ligne (C4 ici) contient le texte d'une formule ne faisant référence qu'à des valeurs initiales : ((3*(2*A1)+2)/4)

Ultime souci : elle ne contient pas de signe "=", évidemment puisqu'on n'a travaillé qu'avec des chaînes de texte.
Bon : on copie-colle en valeur (éventuellement ailleurs), on ajoute un signe "=" au début, et hop !

Benoît
Benoit Schwob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 21h13   #7
Membre habitué
 
Benoit Schwob
Business Analyst
Inscription : juin 2009
Messages : 93
Détails du profil
Informations personnelles :
Nom : Benoit Schwob
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business Analyst

Informations forums :
Inscription : juin 2009
Messages : 93
Points : 137
Points : 137
Au fait, basique de chez basique : n'hésite pas à utiliser les outils de la barre "Audit de formules". Le bouton "Repérer les antécédents" pourrait te servir...

De même que l'outil "Evaluation de formule" et sa méthode de pas à pas qui facilite le travail d'écriture sur les formules un peu complexes...
Benoit Schwob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 22h41   #8
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
J'ai mijoté un petit code vba

En feuille Feuil1, Range("B6") comportant une formule par rapport à d'autre cellules qui elles aussi comportent des formules se rapportant à d'autre....

PS: partiellement testé sur des formules simples sur les cellules.

La macro Combine permettrait de remplacer la formule initiale (parfois avec des parenthèses non nécessaires)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub Combiner()
Dim c As Range, Pr As Range
Dim Fi As String, Ff As String
 
With Sheets("Feuil1").Range("B6")
    On Error Resume Next
    Set Pr = .Precedents
    On Error GoTo 0
    If Not Pr Is Nothing Then
        Fi = .Formula
        For Each c In Pr
            If c.HasFormula Then
                Ff = Mid(c.Formula, 2)
                If Not IsNumeric(Ff) Then
                    Fi = Repl(Fi, Ff, c.Address)
                    Fi = Repl(Fi, Ff, c.Address(0, 0))
                End If
            End If
        Next c
        .Formula = Fi
    End If
    Set Pr = Nothing
End With
End Sub
 
Private Function Repl(ByVal Fi As String, ByVal Ff As String, ByVal Ad As String) As String
Dim G As String, D As String
Dim i As Integer
 
For i = 1 To Len(Fi)
    If Mid(Fi, i, Len(Ad)) = Ad And Not IsNumeric(Mid(Fi, i + Len(Ad), 1)) Then
        G = Left(Fi, i - 1)
        D = Mid(Fi, i + Len(Ad))
        Fi = G & Replace(Mid(Fi, i, Len(Ad)), Ad, "(" & Ff & ")") & D
    End If
Next i
Repl = Fi
End Function
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h59.


 
 
 
 
Partenaires

Hébergement Web