Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр 🔮✨Волшебство, любовь… и шерсть на одежде!
Ищи улики, решай головоломки — и помни: каждый твой шаг меняет ход сюжета.

Мой Любимый Кот

Новеллы, Головоломки, Коты

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
13
TECHLiveHACK
TECHLiveHACK
1 день назад

В Лас-Вегасе завершился ежегодный чемпионат мира по Excel — победитель получил крутой пояс и $5000⁠⁠

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

Источник

Программа Гайд Технологии Google Microsoft Excel Тестирование Приложение Лас-Вегас Чемпионат мира Telegram (ссылка) Видео Короткие видео
1
17
Jelizaveta
3 дня назад
Программирование на python

Освоение форматирования ячеек Excel с помощью Python: Полное руководство⁠⁠

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

  • Введение в бесплатную библиотеку Spire.XLS

  • Как форматировать ячейки в Excel с помощью Python

  • Продвинутые техники форматирования ячеек

  • Пример комплексной реализации

  • Заключение

Введение в бесплатную библиотеку Spire.XLS

Бесплатная библиотека Spire.XLS для Python — это легковесная, но мощная библиотека, которая позволяет создавать, редактировать и форматировать файлы Excel без необходимости установки Microsoft Excel.

Чтобы начать, установите библиотеку через pip:

pip install spire.xls.free

После установки вы можете начать создавать файлы Excel или изменять существующие. Вот простой пример, как создать новый файл Excel и добавить в него начальные данные:

from spire.xls import *

workbook = Workbook()

workbook.CreateEmptySheet()

sheet = workbook.Worksheets[0]

sheet.Range["A1"].Text = "Привет, мир!"

workbook.SaveToFile("output.xlsx")

Этот код создает новый файл Excel с именем "output.xlsx" и текстом "Привет, мир!" в ячейке A1.

Как форматировать ячейки в Excel с помощью Python

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

Установка свойств шрифта

Вы можете настроить стиль шрифта, размер и цвет ячейки. Например:

font = sheet.Range["A1"].Style.Font

font.Name = "Arial"

font.Size = 12

font.IsBold = True

font.Color = Color.FromArgb(40, 255, 0, 0)

Установка выравнивания

Выравнивание текста в ячейке или диапазоне ячеек может улучшить читаемость. Вот как установить горизонтальное и вертикальное выравнивание:

cell = sheet.Range["A1"]

cell.Style.HorizontalAlignment = HorizontalAlignType.Left

cell.Style.VerticalAlignment = VerticalAlignType.Bottom

range = sheet.Range["B1:D1"]

range.Style.HorizontalAlignment = HorizontalAlignType.Center

range.Style.VerticalAlignment = VerticalAlignType.Center

Добавление границ

Чтобы выделить ваши данные, вы можете добавить границы к ячейкам или диапазонам:

cell = sheet.Range["A1"]

border = cell.Style.Borders[BordersLineType.EdgeTop]

border.LineStyle = LineStyleType.Thick

border.Color = Color.get_Green()

border = cell.Style.Borders[BordersLineType.EdgeBottom]

border.LineStyle = LineStyleType.Double

border.Color = Color.get_Blue()

Установка цвета заливки или узора ячейки

Для улучшения визуальной ясности вы можете применить сплошные цветовые заливки или узорные фоны к ячейкам:

cell = sheet.Range["A1"]

cell.Style.Color = Color.get_LightBlue()

cell = sheet.Range["A2"]

cell.Style.FillPattern = ExcelPatternType.Percent125Gray

Объединение или разъединение ячеек

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

sheet.Range["A1:C1"].Merge()

sheet.Range["B1:C1"].UnMerge()

Применение форматов чисел

Excel предлагает различные форматы чисел, такие как валюта, дата и процент. Вот как применить форматы чисел:

sheet.Range["A1"].NumberValue = 1234.567

sheet.Range["A1"].NumberFormat = "0.00"

sheet.Range["A2"].NumberValue = 0.25

sheet.Range["A2"].NumberFormat = "0%"

sheet.Range["A3"].NumberValue = 43831

sheet.Range["A3"].NumberFormat = "yyyy-mm-dd"

sheet.Range["A4"].NumberValue = 1234.567

sheet.Range["A4"].NumberFormat = "$#,##0.00"

Продвинутые техники форматирования ячеек

Как только вы освоите основы, вы можете изучить более продвинутые техники форматирования. Например, вы можете применять правила условного форматирования для динамического форматирования ячеек на основе их значений.

Условное форматирование

Условное форматирование — это мощный инструмент, который выделяет тенденции или аномалии в ваших данных. Вот пример:

range = sheet.Range["A1:A10"]

format = range.ConditionalFormats.AddCondition()

format.FormatType = ConditionalFormatType.CellValue

format.Operator = ComparisonOperatorType.Greater

format.FirstFormula = "100"

format.BackColor = Color.get_Green()

format.IsBold = True

Форматирование ячеек с помощью пользовательского стиля

Создание и применение пользовательских стилей ячеек может помочь поддерживать согласованность на протяжении всего вашего рабочего файла. Вот как определить пользовательский стиль:

style = workbook.Styles.Add("customStyle")

style.Font.IsBold = True

style.Font.Size = 12

style.Font.Color = Color.FromArgb(20, 0, 0, 255)

style.BackgroundColor = Color.FromArgb(20, 255, 255, 0)

style.Borders.All = LineStyleType.Dashed

style.Borders.Color = Color.get_Purple()

sheet.Range["A2:F2"].Style = style

Копирование формата ячейки

Чтобы эффективно реплицировать форматирование по диапазонам, вы можете копировать стили. Это сохраняет все свойства без ручной перенастройки:

style = sheet.Range["A1"].Style

sheet.Range["A2:F5"].Style = style

Пример комплексной реализации

Теперь давайте объединим все в комплексном примере, который обобщает все обсуждаемые техники:

from spire.xls import *

from spire.xls.common import *

workbook = Workbook()

worksheet = workbook.Worksheets[0]

worksheet.Name = "Пример комплексного стиля"

# Создание строки заголовка

title = worksheet.Range["A1:E1"]

title.Merge()

title.Text = "Информация о сотрудниках"

title.Style.Font.FontName = "Arial"

title.Style.Font.Size = 16

title.Style.Font.Color = Color.get_White()

title.Style.Color = Color.get_DarkBlue()

title.Style.HorizontalAlignment = HorizontalAlignType.Center

title.Style.VerticalAlignment = VerticalAlignType.Center

title.RowHeight = 30

# Установка заголовков

headers = ["ID", "Имя", "Отдел", "Дата приема", "Зарплата"]

for i, header in enumerate(headers):

cell = worksheet.Range[2, i + 1]

cell.Text = header

cell.Style.Font.IsBold = True

cell.Style.Color = Color.get_LightGray()

cell.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium

cell.Style.Borders[BordersLineType.EdgeBottom].Color = Color.get_DarkBlue()

# Заполнение данных

data = [

[1, "Чжан Сан", "Технический отдел", "2020-05-15", 15000],

[2, "Ли Си", "Маркетинговый отдел", "2019-08-22", 12000],

[3, "Ван У", "Отдел кадров", "2021-03-10", 13500],

[4, "Жао Лю", "Финансовый отдел", "2018-11-05", 16000]

]

for r, row in enumerate(data):

for c, value in enumerate(row):

cell = worksheet.Range[r + 3, c + 1]

if c == 3:  # Дата

cell.DateTimeValue = DateTime.Parse(value)

cell.NumberFormat = "yyyy-mm-dd"

elif c == 4:  # Зарплата

cell.NumberValue = value

cell.NumberFormat = "$#,##0.00"

else:

cell.Text = str(value)


# Установка чередующихся цветов строк

if r % 2 == 0:

cell.Style.Color = Color.get_LightYellow()

else:

cell.Style.Color = Color.get_LightCyan()

# Установка границ

worksheet.Range["A2:E6"].BorderAround(LineStyleType.Medium, Color.get_Black())

worksheet.Range["A2:E6"].BorderInside(LineStyleType.Thin, Color.get_Gray())

# Авто подгонка ширины столбцов

for i in range(1, 6):

worksheet.AutoFitColumn(i)

# Добавление условного форматирования - выделение ячеек с зарплатой больше 14000

format = worksheet.Range["E3:E6"].ConditionalFormats.AddCondition()

format.FormatType = ConditionalFormatType.CellValue

format.Operator = ComparisonOperatorType.Greater

format.FirstFormula = "14000"

format.FontColor = Color.get_Red()

format.IsBold = True

# Получение выделенного диапазона

locatedRange = worksheet.AllocatedRange

# Проход по строкам

for rowNum in range(1, locatedRange.RowCount):

# Выравнивание текста по центру

locatedRange.Rows[rowNum].HorizontalAlignment = HorizontalAlignType.Center

locatedRange.Rows[rowNum].VerticalAlignment = VerticalAlignType.Center

# Установка высоты строки

locatedRange.Rows[rowNum].RowHeight = 20

# Проход по столбцам

for columnNum in range(0, locatedRange.ColumnCount):

# Установка ширины столбца

if(columnNum == 2):

locatedRange.Columns[columnNum].ColumnWidth = 19

else:

locatedRange.Columns[columnNum].ColumnWidth = 14

# Сохранение книги

workbook.SaveToFile("ComprehensiveStyleExample.xlsx", FileFormat.Version2016)

workbook.Dispose()

Освоение форматирования ячеек Excel с помощью Python: Полное руководство Python, Microsoft Excel, Длиннопост

Заключение

В этом руководстве вы узнали, как форматировать ячейки в Excel с помощью Python и библиотеки Free Spire.XLS. От базовых техник форматирования до продвинутых функций, таких как условное форматирование, теперь вы можете программно создавать визуально привлекательные файлы Excel.

Показать полностью 1
Python Microsoft Excel Длиннопост
6
1
VelStyling
VelStyling
5 дней назад
Серия SQL: знакомство

AND и OR в SQL: как правильно соединять условия⁠⁠

Когда мы работаем с базой данных, почти всегда хотим не просто что-то выбрать, а применить несколько условий сразу. Например: выбрать всех клиентов старше 18 лет и с активной подпиской.

И здесь на помощь приходят два основных логических оператора: AND и OR.

AND и OR в SQL: как правильно соединять условия Аналитика, Эмоциональное выгорание, Аналитик, Системный аналитик, SQL, Microsoft Excel, Таблица, Данные, База данных, IT

Что делают AND и OR

  • AND — «и». Все условия должны быть выполнены одновременно.
    Пример: выбрать из холодильника молоко и яйца, чтобы приготовить омлет:

SELECT *

FROM fridge

WHERE product = 'milk' AND product = 'eggs';

(Да, в реальности одной строки с молоком и яйцом не будет, но идея ясна: оба условия должны выполняться вместе.)

OR — «или». Достаточно, чтобы выполнено было хотя бы одно условие.
Пример: выбрать продукты, которые нужно купить или молоко, или яйца:

SELECT *

FROM shopping_list

WHERE product = 'milk' OR product = 'eggs';

Где могут использоваться

Эти операторы обычно используют в блоке WHERE, чтобы фильтровать данные.
Также можно применять их в:

  • HAVING — фильтрация агрегатов после GROUP BY

  • JOIN ON — комбинирование условий соединения таблиц

Пример с HAVING:

SELECT category, COUNT(*)

FROM fridge

GROUP BY category

HAVING COUNT(*) > 5 AND AVG(expiry_date) < '2025-08-01';

Особенности и нюансы:

  • Порядок выполнения важен

    AND имеет более высокий приоритет, чем OR.

    Если смешиваете их, всегда используйте скобки для точного порядка:

    SELECT *

    FROM fridge

    WHERE (product = 'milk' OR product = 'eggs') AND expiry_date < '2025-08-01';

  • AND «сжимает» результат, OR «расширяет» результат

    AND оставляет меньше строк, OR — больше

Частые ошибки

  • Забыли скобки и получили слишком большой или слишком маленький результат

  • Использовали AND там, где нужен OR (или наоборот)

  • Смешали NULL значения: NULL AND TRUE и NULL OR TRUE могут вести себя неожиданно

Представим, что мама проверяет холодильник:

  • У неё есть список продуктов, которые могут испортиться: молоко, яйца, йогурт

  • Она хочет приготовить что-то, если и молоко, и яйца в наличии → AND

  • Она хочет перекусить, если есть молоко или йогурт → OR

В SQL это выглядит так:

-- Для приготовления омлета

SELECT *

FROM fridge

WHERE product = 'milk' AND product = 'eggs';

-- Для перекуса

SELECT *

FROM fridge

WHERE product = 'milk' OR product = 'yogurt';

AND и OR — это простые, но мощные инструменты фильтрации. Правильное использование скобок и понимание приоритета операторов помогает избежать ошибок и выбирать точно те данные, которые нужны.

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

Показать полностью
[моё] Аналитика Эмоциональное выгорание Аналитик Системный аналитик SQL Microsoft Excel Таблица Данные База данных IT
1
7
VelStyling
VelStyling
6 дней назад
Серия SQL: знакомство

WHERE в SQL: как домохозяйка наводит порядок в холодильнике⁠⁠

Каждый из нас ежедневно сталкивается с бытовыми вопросами. У вас огромный холодильник: продукты, напитки, соусы, остатки вчерашнего ужина. Каждый день нужно понять: что из этого пригодно к употреблению сегодня, что нужно использовать для обеда, а что отправить в мусор.

WHERE в SQL: как домохозяйка наводит порядок в холодильнике Аналитика, Эмоциональное выгорание, Услуги, SQL, Microsoft Excel, Аналитик, Данные, База данных, Запросы, IT, Смена профессии, Длиннопост

Вот тут и появляется WHERE. Это фильтр, который помогает выбрать именно нужные строки из таблицы — или продукты из холодильника.

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

Нам нужно выкинуть все продукты, у которых истек срок годности:

SELECT *
FROM fridge
WHERE expiry_date < CURRENT_DATE;

fridge — наша таблица с продуктами
expiry_date < CURRENT_DATE — условие: выбираем просроченные продукты
CURRENT_DATE - текущая дата

Что можно писать в WHERE

  • Сравнения: =, >, <, >=, <=

  • Логические связки: AND, OR, NOT

  • Проверки на вхождение: IN, BETWEEN, LIKE

  • Подзапросы: «проверить список покупок перед выбором»

Или, мы хотим приготовить что-то на десерт:

SELECT *
FROM fridge
WHERE category = 'dessert' AND expiry_date > CURRENT_DATE;

Условие AND expiry_date > CURRENT_DATE добавляем на случай, если мы не выкинули всю просрочку до этого.

Подзапросы

В WHERE можно использовать подзапросы. Это когда нам нужна информация из другого источника, чтобы использовать ее в своем запросе. Например, нам надо понять что из рецепта отсутствует у нас в холодильнике.

SELECT *
FROM cooking_recipe
WHERE product NOT IN (SELECT product FROM fridge);

WHERE проверяет какие продукты отсутствуют в холодильнике.

Аналогично можно использовать EXISTS или NOT EXISTS
SELECT *
FROM fridge f
WHERE EXISTS (SELECT 1 FROM cooking_recipe s WHERE s.product = f.product);

EXISTS = есть продукт в списке
NOT EXISTS = нет продукта в списке

ANY \ ALL

Эти конструкции позволяют сравнивать с набором значений.

SELECT *
FROM fridge
WHERE expiry_date <= ALL (SELECT expiry_date FROM fridge WHERE category = 'milk');

Все хорошие домохозяйки используют принцип ротации. Выбирают продукты, срок годности которых меньше всех в категории “молоко”.

  • Подзапрос (SELECT expiry_date FROM fridge WHERE category = 'milk') возвращает даты всех банок молока.

  • Условие expiry_date <= ALL (...) означает: выбрать только те банки, у которых дата годности меньше или равна каждой другой банке молока.

  • Практически это банка (или несколько, если даты совпадают), которая старше всех остальных.

То есть, результат будет одна или несколько банок с самой ранней датой годности.

SELECT *
FROM fridge
WHERE expiry_date <= ANY (SELECT expiry_date FROM fridge WHERE category = 'milk');

  • Условие expiry_date <= ANY (...) означает: выбрать все банки молока, у которых дата годности меньше или равна хотя бы одной другой банке молока.

  • Тут почти все банки проходят условие, кроме самой свежей (если она самая большая по сроку).

  • Результат может быть несколько банок, не обязательно только одна. Все, кто «моложе или равны хотя бы одной другой», будут выбраны.

CASE в WHERE

Можно использовать CASE для сложной логики

SELECT *
FROM fridge
WHERE
CASE
WHEN product = 'milk' THEN shelf = 'top'
ELSE shelf = 'middle'
END;

Если я ищу молочные продукты в холодильнике, то должна их искать на самой верхней полке, иначе - на средней.


Ну а если тебе нужны слова поддержки и мотивации, то заглядывай в канал Сила слов. Там каждое утро приходит мотивационное сообщение для тебя, чтобы ты верил себе и в себя, продолжал или только начинал действовать.

Показать полностью
[моё] Аналитика Эмоциональное выгорание Услуги SQL Microsoft Excel Аналитик Данные База данных Запросы IT Смена профессии Длиннопост
5
1454
Skyscrew
Skyscrew
6 дней назад
Специфический юмор

Начиная с 1985-го года⁠⁠

Начиная с 1985-го года
Картинка с текстом Мемы Microsoft Excel Финансовая система
108
161
rzhser666
7 дней назад
Юмор для всех и каждого

Ответ на пост «На опыте, сразу видно»⁠⁠1

Ответ на пост «На опыте, сразу видно»
Юмор Приём на работу Microsoft Excel Ответ на пост Скриншот
9
1851
autopicabu
autopicabu
7 дней назад
Юмор для всех и каждого

На опыте, сразу видно⁠⁠1

На АлиЭкспресс

Юмор Приём на работу Microsoft Excel Видео Вертикальное видео Короткие видео Реклама Реферальная ссылка Мат
497
28
rick1177
rick1177
7 дней назад
MS, Libreoffice & Google docs

Быстрое выравнивание аномалий в ряду данных средствами Excel (линейная регрессия)⁠⁠

Иногда в динамических рядах встречаются значения, которые «выбиваются» из общей картины. Это могут быть ошибки учёта, резкие скачки из-за внешних факторов или просто нетипичные значения.

Рассмотрим пример данных за 2019–2025 годы:

Быстрое выравнивание аномалий в ряду данных средствами Excel (линейная регрессия) Аналитика, Microsoft Excel, Регрессия, Практика

Пример сведений с аномальными данными

Быстрое выравнивание аномалий в ряду данных средствами Excel (линейная регрессия) Аналитика, Microsoft Excel, Регрессия, Практика

Визуализация аномальных сведений

Очевидно, что в 2022–2024 гг. значения выглядят аномальными (в приложенном к посту файле Excel выглядит ещё более наглядно).

🔧 Что делаем

Аналитик принимает решение, что ряд должен расти линейно. Значит, выбросы можно заменить на значения, рассчитанные по линейной регрессии.

В Excel для этого используется функция ПРЕДСКАЗ.ЛИНЕЙН().

Так как «правильные» точки ряда не идут подряд (нам нужны 2019, 2020, 2021 и 2025), применяем ВЫБОР:

=ОКРУГЛ(ПРЕДСКАЗ.ЛИНЕЙН(2022;
ВЫБОР({1;2;3;4};B13;B14;B15;B19);
ВЫБОР({1;2;3;4};A13;A14;A15;A19));
2)

👉 Формулу вставляем для каждого нужного года (2022–2024).

📈 Результат

После корректировки ряд стал выглядеть так:

Быстрое выравнивание аномалий в ряду данных средствами Excel (линейная регрессия) Аналитика, Microsoft Excel, Регрессия, Практика

Расчёт регрессии и применение к ряду данных

Теперь динамика выглядит естественной, а тренд отражает реальную картину без искажений от аномалий.

💡 Такой приём полезен, когда нужно убрать «шум» и быстро выровнять ряд. Но важно помнить: иногда выбросы содержат ключевую информацию и требуют отдельного анализа.

P.S. Я стараюсь публиковать интересные примеры из практической деятельности аналитика. Если вам интересно, приглашаю к ознакомлению на канале.

Файл примера

Показать полностью 1
[моё] Аналитика Microsoft Excel Регрессия Практика
22
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии