Question

J'ai une feuille de calcul Excel qui importe des données d'une autre source que je dois exécuter un calcul sur. Les données que je besoin de travailler avec est dans une plage nommée - il se trouve être dans la gamme C12: C36 - mais il est appelé « SumData »

.

Les valeurs de cette gamme contiennent un certain nombre d'erreurs, y compris actuellement #NOMBRE! et # N / A, mais pourrait contenir d'autres erreurs. Je dois résumer ces valeurs.

Je comprends comment faire la formule de somme:

=SUM(SumData)

ou

=SUM(C12:C36)

Je peux également utiliser IFERROR pour vérifier les erreurs:

=IFERROR(C12:C36, 0)

Mais IFERROR apparaît uniquement pour vérifier le courant correspondant ligne à la formule I suis entrée. à savoir si cette formule est entré dans D12, on vérifie uniquement erreur sur la ligne C12, et renvoie la valeur (0 ou si C12 contient une erreur).

Si je combine les deux à faire:

=SUM(IFERROR(SumData,0))

Je ne reçois pas une valeur de retour valide. Il me donne essentiellement la rangée la plus proche correspondant - par exemple:

    C      D
    -----------
12  #NUM!  
13  2      =SUM(IFERROR(SumData,0)) = 2 (I would expect this to produce 48)
14  5
15  7
16  #N/A
17  23
18  6
19  5

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

=SUM(IF(ISNUMBER(SumData),SumData))

est entré comme une formule de tableau ... par exemple en utilisant CTRL + Maj + Entrée et NON Entrez simplement. Si vous le faites correctement puis Excel va mettre des accolades autour de la formule suivante: {}.

Autres conseils

Essayer Utiliser cette formule si vous avez tendance à ajouter une plage de cellules qui contient une erreur:

=SUMIFS(sumrange,criteria range1,"<>"&"#NAME?",criteria range2,"<>"&"#N/A",criteria range3,"<>"&"NUM!")

Puisque vous ne savez pas quelle cellule a l'erreur, il est conseillé d'utiliser les critères mêmes gammes que le sumrange.

Malheureusement, c'est la fonctionnalité documentée de la fonction IFERROR, que l'on trouve ici: http://office.microsoft.com/en-us/excel-help/iferror-function-HA001231765.aspx .

Pour l'essentiel, une entrée RANGE ne donne pas lieu à une sortie RANGE. Au contraire, vous obtenez la sortie de la position dans la plage indiquée par la cellule où l'appel IFERROR arrive. Il est plutôt unintuitive.

Une solution consiste à insérer une colonne pour maintenir les résultats individuels de IFERROR, et sommer sur que, comme indiqué ci-dessous. Après avoir mis en place la colonne D, il suffit de faire caché.

    C      D                      E
    --------------------------------------
12  #NUM!  =IFERROR(E12, 0) -> 0
13  2      =IFERROR(E13, 0) -> 2  =SUM(E12:E19) -> 48
14  5      =IFERROR(E14, 0) -> 5
15  7      =IFERROR(E15, 0) -> 7
16  #N/A   =IFERROR(E16, 0) -> 0
17  23     =IFERROR(E17, 0) -> 23
18  6      =IFERROR(E18, 0) -> 6
19  5      =IFERROR(E19, 0) -> 5

Cela fonctionne pour moi:

=IF(SUMIFS(RANGE,CRIT-RANGE,CRITCELL)=0,NA(),SUMIFS(RANGE,CRIT-RANGE,CRITCELL))

Mais j'utiliser des tableaux qui sont affichés; donc je devais pousser un format conditionnel sur celui-ci.

  

Si la cellule contient une erreur: la police Marque {même couleur comme arrière-plan}

fonctionne très bien pour moi et mon trace graphique bien sans avoir à afficher réellement les données (jusqu'à ce que quelqu'un sélectionne la cellule et voit la valeur).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top