Я пытаюсь создать формулу спарклайна в Google Sheets для горизонтальной полосы с отрицательными числами для отслеживания бюджета проекта.
Идея состоит в том, что горизонтальная полоса располагается по центру ячейки, поэтому она может идти вправо (зеленый цвет) для положительных чисел и влево (красный цвет) для отрицательных чисел, сохраняя при этом желтый цвет для промежуточных значений. Максимум и минимум должны быть разными для каждой ячейки в зависимости от утвержденного бюджета для этой строки, поэтому я бы предпочел формулу, которую я мог бы перетащить для других ячеек.
Полосы должны выглядеть примерно так:
В предоставленном документе вы можете увидеть мою попытку создания формулы.
Примечание: я использую европейские разделители, поэтому в более сложных формулах может возникнуть путаница, где ставить ";" или «», для уровня знаний, которыми я обладаю в данный момент.
Заранее благодарю за помощь!
Обновлено: Возможно, возможно решение в двух столбцах. С функцией if, где отрицательные числа идут влево в первом столбце, а если число положительное, идут вправо во втором столбце.
Спасибо! Я уже пробовал этот подход, но проблема в том, что max и min для одного и того же набора одинаковы. Мне нужен другой набор для каждой ячейки.
вы могли бы каким-то образом попытаться продемонстрировать, как будет выглядеть ваш идеальный результат, и, возможно, это поможет людям здесь получить четкое представление о том, что на самом деле ожидается в этом сценарии и все такое.
Спасибо за предложение. Сделал правку, выложил картинку как должны выглядеть бары.
добавлен подход с двумя столбцами в ваш тестовый лист, чтобы вы могли проверить.
Согласно документации:Спарклайн, Sparkline function
в Google Таблицах не включает положение спарклайна внутри ячейки посредством самой формулы. (Хотя у него есть Right-to-Left feature
, который может вам пригодиться). Вместо этого он предоставляет только параметры внешнего вида спарклайна, такие как тип символа, который включает bar charts
, как вы упомянули, цвет, форматирование и так далее.
Кроме того, в гистограммах в ячейке можно использовать только два цвета. Сколько цветов может иметь спарклайн в Google Таблицах?
С другой стороны, вы можете выбрать альтернативный метод, если это необходимо. Делюсь здесь еще одной ссылкой, которая может вам помочь: Все, что вы хотели знать о спарклайнах в Google Таблицах
Примечание. Я не являюсь аффилированным лицом и не являюсь владельцем сайта.
Подход 1
=map(A2:A;C2:C;lambda(a;c;if (or(a = "";c = "");;
sparkline(let(Σ;c/a;hstack(1+min(max(Σ;-1);0);min(0;max(Σ;-1));max(0;Σ)));{"charttype"\"bar";"max"\2;"color1"\"white";"color2"\"#ec417a";"color3"\"#63d297"}))))
Подход 2 (2-column approach
)
=map(A2:A11;C2:C11;lambda(a;c;let(Σ;c/a;if (Σ>0;
hstack(;sparkline(Σ;{"charttype"\"bar";"max"\1;"color1"\"#63d297"}));
hstack(sparkline(Σ;{"charttype"\"bar";"max"\1;"color1"\"#ec417a";"rtl"\true});)))))
Это прекрасно работает. Мне больше нравится второй подход (он визуально лучше). Есть ли способ сделать белый цвет полностью прозрачным, чтобы слева от полосы был вместо белого цвет, а только тот, который находится на заднем плане? Я бы сам сопоставил цвет в формуле, но что мне действительно нужно, так это полная прозрачность, ведь таблица имеет условное форматирование (чередование цветов). Если нет кода для полной прозрачности, другой подход может заключаться в использовании формулы, которую я могу перетащить вниз, а затем изменить цвет там, где это необходимо.
Мне неизвестен параметр прозрачности. для перетаскивания просто используйте =map(A2;C2;
вместо =map(A2:A11;C2:C11;
Я обнаружил проблему в случае, когда отрицательное число превышает утвержденный бюджет. Можно ли добавить к существующей формуле, что если отрицательное число велико, то оно останется максимальным слева, а не исчезнет?
Воссоздайте это в своем тестовом листе, и я смогу это проверить.
В новой таблице вы можете найти данные, и я отметил, где проблема. Спасибо за поддержку!
протестируйте обновленную формулу, добавленную в Column_L