• Как подсчитать долю без промежуточной колонки?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    6089a3d8e7bd2069729294.png

    Ну, наверное, это MMULT результатов MMULT

    =INDEX(
      MMULT(
        N(ARRAY_CONSTRAIN(C2:Z/(MMULT(TRANSPOSE(ROW(C2:Z)^0);N(C2:Z)));
        MATCH(2;1/(B2:B<>"");1);
        MATCH(2;1/(C1:1<>"");1)));
        SEQUENCE(MATCH(2;1/(C1:1<>"");1);1)^0)/MATCH(2;1/(C1:1<>"");1)
    )


    Пример и полезные ссылки в Таблице.

    Техника MATCH(2;1/(B2:B<>"");1) может быть избыточна в том смысле, что это поиск последнего действительного значения для обрезки. Если вы будете содержать последовательности заголовков событий и игроков без пробелов, то действительно следующее

    =INDEX(
      MMULT(
        N(ARRAY_CONSTRAIN(C2:Z/(MMULT(TRANSPOSE(ROW(C2:Z)^0);N(C2:Z)));
        COUNTA(B2:B);
        COUNTA(C1:1)));
        SEQUENCE(COUNTA(C1:1);1)^0)/COUNTA(C1:1)
    )


    Диаграмма на скрине приведена неслучайно. Она показывает, что общий вес расчета равен 100%, как проверка.

    С скриптом не стал заморачиваться, но, доверяя Григорий Боев, думаю, что пользовательская функция при должной проработке будет более гибкой. Выбор зависит от конечной цели и циклов проработки результатов и будущих улучшений Таблицы.
    Ответ написан
    Комментировать