Dans Numbers / Excel, comment puis-je créer un SOMMAIRE uniquement sur des lignes correspondant à des critères spécifiques

1

Laissez-moi expliquer un peu ma feuille de calcul. Voici une bonne capture d'écran de celle-ci:

entrez la description de l'image ici

J'ai créé cette feuille de calcul essentiellement parce que je me suis fatigué des problèmes de convivialité de presque toutes les applications de suivi de la nutrition. Je crée donc mon propre tableur! Comme vous pouvez le voir horizontalement, il existe différents aliments / ingrédients et leurs valeurs nutritionnelles sont indiquées ci-dessous.

Ensuite, vous verrez que vers le bas se trouve une rangée intitulée "premier repas" avec certaines valeurs. C’est essentiellement moi qui dit "2,5 portions de quinoa, 2 portions de lentilles", etc. Cette information est ensuite indiquée dans le tableau ci-dessous avec "Premier repas" à gauche. *

Mon objectif est maintenant de permettre deux choses.

  1. Plusieurs repas
  2. Repas composés d'autres repas
    • (Imaginez qu'il y ait des rangées "Déjeuner de glucides" "Dîner protéiné aux protéines" Déjeuner gras "et que celles-ci correspondent à chaque table de repas, mais je voulais une table qui les associe et s'intitule" Déjeuner glucidique, Déjeuner gras, Dîner protéiné ")

J'ai un peu de difficulté à le faire et cela revient essentiellement à la formule de la rangée D sur le tableau "premier repas". La formule est actuellement SUMPRODUCT(Row Fat, Row First Meal)et comme vous pouvez l’imaginer SUMPRODUCT(Row Cholestrol, Row First Meal). Cela fonctionne bien pour un repas, mais représente beaucoup de travail à peaufiner pour plusieurs repas et ne fonctionne pas pour plusieurs repas.

L’objectif serait que la valeur de chaque cellule de la colonne D soit essentiellement déterminée par la formule suivante.

nutrient = // whatever row we are on
integer sum = 0;
foreach(row in top table):
    integer weight = [ammount of the 'nutrient' in this row]
    integer innersum = 0;
    foreach(meal in meals):
        if (meal is contained in string top left corner of this table):
            innersum += [number of servings of this row];
        sum += innersum * weight;

Pardonnez-moi, je suis un programmeur, donc c’est la manière la plus claire d’expliquer cette formule. Essentiellement, pour chaque aliment, regardez la cellule en haut à gauche de votre tableau et obtenez la somme des portions correspondant à cet aliment en fonction de cette chaîne, puis multipliez-la par la quantité de nutriment approprié dans le repas.

Idéalement, cette formule pour la valeur dans la cellule D serait implémentée de la manière suivante:

Prenez la matrice de tous les repas dans la table du haut et filtrez les lignes dont le nom ne figure pas dans la colonne en haut à gauche. Simplifiez ensuite cette matrice en une seule ligne en additionnant tous les éléments d’une colonne. Ensuite, faites un sumproduct avec cette valeur et le nombre de nutriments spécifiques à partir des informations nutritionnelles des repas. Le problème est que je ne sais pas comment faire tout le filtre matriciel et simplifier les opérations. Franchement, je ne sais pas si c'est comme ça que fonctionnent les tableurs.

* Ne vous inquiétez pas, j'ai conçu ce repas avec une journée complète de repas à l'esprit.

J.Doe
la source
Est-ce que cela doit être une fonction de feuille de calcul? Peut-être que cela pourrait être fait avec VBA.
Moacir