Récapitulation des montants si une ligne contient une clé dans une autre feuille

1

J'ai deux feuilles dans un document LibreOffice Calc:

Sheet1 :

| Key | Amount  |
|-----|---------|
| ABC |    1    |
| DEF |    2    |
| GHI |    3    |

Sheet2 :

|  Keys |
|-------|
|  ABC  |
|  XYZ  |
|  JKL  |
|  GHI  |

Maintenant, j'aimerais ajouter les montants dans les lignes de la feuille Sheet1, mais uniquement là où la clé est contenue n'importe où dans la feuille Sheet2. Pour l'exemple ci-dessus, la somme serait 4(clés ABCavec montant 1et GHIavec montant 3).

J'ai résolu ce problème avec un "Filtre avancé" et SUBTOTALje voudrais vraiment une solution dans laquelle je n'ai pas à réappliquer le filtre lorsque les feuilles changent. Toute aide serait grandement appréciée!

Jonas
la source
Donc, le résultat que vous recherchez n'est que la somme? Où cela apparaît-il (Sheet1 ou Sheet2)?
fixer1234

Réponses:

1

Une approche consisterait à combiner SOMMAIRE avec COUNTIF. J'ai copié votre exemple.

Sheet2:
entrez la description de l'image ici

Sheet1:
entrez la description de l'image ici

La formule en E2:

=SUMPRODUCT(COUNTIF(Sheet2!$A$2:$A$5,"="&$A$2:$A$4)*$B$2:$B$4)

SOMMEPROD effectue un calcul de type tableau sur le résultat de COUNTIF pour chaque ligne de la feuille Sheet1 multiplié par le montant de la colonne B. En supposant que les clés de la feuille Sheet2 ne contiennent pas de doublons, le décompte sera 1calculé si Sheet2 contient la clé ou 0non.

Je recommande d'utiliser des plages explicites plutôt que de simples références de colonne (c.-à-d. A: A). Vous pouvez remplir les plages explicites avec des lignes vierges pour permettre toute expansion potentielle dont vous pourriez avoir besoin, et la formule fonctionnera toujours. Cependant, il faut toujours compter sur Calc pour évaluer des colonnes entières.

fix1234
la source
Merci pour votre solution! Cela semble très élégant, malheureusement cela donne une "erreur 508". Si je remplace la virgule par un point-virgule, il se transforme en "#NAME?". Je suis sur LibreOffice 6, au fait.
Jonas
@ Jonas, l'avez-vous essayé en premier? Dans Tools | Options | LibreOffice Calc | Formula, quels sont les séparateurs montrés? Où vous trouvez-vous et quels paramètres régionaux et linguistiques utilisez-vous? L'erreur 508 indique des parenthèses non équilibrées. Vérifiez la formule. Pour votre information: help.libreoffice.org/Calc/Error_Codes_in_Calc
fixer1234 le
Merci pour la réponse rapide! Je suis en Allemagne avec une version allemande de LibreOffice. Le séparateur dans le menu que vous avez indiqué indique ";" donc cela expliquerait la différence. La case à cocher "Utiliser les noms de fonction anglais" est cependant cochée.
Jonas
@ Jonas, l'erreur 508 ressemble peut-être à une faute de frappe lors de la saisie de la formule. Vérifiez les parenthèses. Avez-vous défini la formule (le même chemin que le commentaire précédent) Excel A1? Cela suit les conventions d'Excel. La valeur par défaut de LO utilise différentes conventions, notamment le séparateur de nom de feuille (je conserve le mien défini sur Excel).
fixer1234
Désolé mon mauvais! J'ai utilisé les mauvaises citations (simple au lieu de double) pour le fichier =. Maintenant ça marche, merci beaucoup!
Jonas