web-dev-qa-db-fra.com

Comment utiliser une instruction IF sur plusieurs cellules?

Je fais un budget pour moi-même. Actuellement, mes feuilles de calcul Google ressemblent à ceci:

----A---- -----B----    
     food         50
  alcohol         20
     food        120
    dance         10
   garden         20
     food         20
    dance         10

Je voudrais obtenir les montants totaux comme ceci:

----E---- -----E---- 
     food        190
  alcohol         20
    dance         20
   garden         20

Je peux utiliser une instruction IF sur une seule cellule pour que l'instruction IF soit:

=if(A1="food",B1,0)

mais comment puis-je le faire sur plusieurs cellules et valeurs SUM ensemble?

Existe-t-il une fonction qui me permet de calculer la valeur totale de la colonne B si la colonne A est égale à "du texte"?

1
Luen

C'est mieux fait comme ça:

Formule

  1. =QUERY(DATA!A:B;"SELECT A, SUM(B) WHERE B IS NOT NULL GROUP BY A")
  2. =QUERY(DATA!A:B;"SELECT A, SUM(B) WHERE B IS NOT NULL GROUP BY A Label SUM(B)'Units'")

A expliqué

Si vous incluez des en-têtes, la fonction QUERY les ajoutera tels quels et les modifiera en conséquence, c'est-à-dire. SUM title ou COUNT title.... etc. Vous pouvez également ajouter une étiquette personnalisée aux colonnes calculées, voir 2dakota du Nord exemple (3rd feuille). Le reste de la fonction fonctionnera normalement SQL .

Exemple

J'ai créé un exemple de fichier pour vous: somme sur plusieurs cellules

Références

  1. SQL
  2. formule QUERY
  3. Référence du langage de requête
  4. Question avec les mêmes techniques utilisées
1
Jacob Jan Tuinstra

Vous demandez un énoncé IF mais avez accepté un A qui n’exige pas que vous souhaitiez donc envisager un tableau croisé dynamique. Le codage correspondant est "dans les coulisses", aucune formule ni fonction n'est nécessaire:

WA49362 example

Le tri des lignes est un "bonus" et est généralement pratique, mais cela signifie que davantage de travail serait nécessaire si vous vouliez que le résultat soit exactement comme vous le montrez, par exemple avec:

=sort(E2:F5,2,false)

(si le tableau croisé dynamique est déplacé dans E2: F6 comme indiqué).

Pour un exemple aussi simple que vous montrez, une plus grande polyvalence ne serait guère utile, mais avec un jeu de données plus volumineux, d'autres fonctionnalités d'un tableau croisé dynamique pourraient être appréciées et ne nécessiteraient que quelques clics supplémentaires. Par exemple, combien de chaque valeur A (par exemple, dans le cas de food ici 3), ou la moyenne de B pour chaque valeur A (par exemple dans le cas de dance ici 10).

1
pnuts