1

Позвольте мне немного объяснить мою таблицу. Вот хороший скриншот этого:

Я создал эту таблицу в основном потому, что устал от проблем с юзабилити практически всех приложений для отслеживания питания. Поэтому я создаю свою собственную таблицу! Как вы можете видеть, горизонтально идут разные продукты / ингредиенты, и ниже приведены значения фактического питания.

Затем вы увидите, что внизу есть строка с названием "первая еда" с некоторыми значениями. По сути, это я говорю «2,5 порции квиноа, 2 порции чечевицы» и т.д. Эта информация затем отображается в таблице ниже, где "Первая еда" слева. *

Моя цель сейчас - учесть две вещи.

  1. Многоразовое питание
  2. Питание из других блюд
    • (Представьте, что есть ряды "Завтрак с углеводами", "Обед с жиром", "Ужин с протеином", и каждый из них представлял собой столы с едой, но я хотел объединить их, назвав их «Завтрак с углеводом, Обед с жиром, Обед с белком»).

У меня возникли некоторые трудности, и, по сути, все сводится к формуле для строки D в таблице "первая еда". Формула для этого в настоящее время - SUMPRODUCT(Row Fat, Row First Meal) и, как вы можете себе представить, SUMPRODUCT(Row Cholestrol, Row First Meal) . Это хорошо работает для одного приема пищи, но это просто большая работа, чтобы настроить для многократного приема пищи и не работает для многократного приема пищи.

Цель состоит в том, чтобы значение каждой ячейки в столбце D определялось по следующей формуле.

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;

Простите, я программист, так что это действительно самый понятный способ объяснить эту формулу. По существу, для каждого элемента питания посмотрите на верхнюю левую ячейку вашего стола и получите сумму порций для этого элемента питания на основе этой строки, а затем умножьте ее на количество правильного питательного вещества в еде.

В идеале эта формула для значения в ячейке D должна быть реализована следующим образом:

Возьмите матрицу всех блюд из верхней таблицы и отфильтруйте строки с именами, которые не содержатся в вашем верхнем левом столбце. Затем упростите эту матрицу в одну строку, сложив все элементы в столбце. Затем сделайте sumproduct с этим значением и количеством конкретных питательных веществ из фактов питания пищи. Проблема в том, что я не знаю, как сделать весь матричный фильтр и упростить работу. Честно говоря, я не знаю, так ли это, как работают таблицы.

* Не волнуйтесь, я разработал эту еду с полным днем еды в виду.

0