
мАксимы Видякина
6 постов
И немного про необходимость общего образования для технарей
Представьте себя на месте молодого балбеса в начале 80-х. В голове Sex Pistols, пиво и девчонка, которая улыбнулась тебе в баре. Каким бы ты ни был умным, тебе явно не до тонкостей календарных вычислений в средние века.
И, кстати, Википедия появится через пару десятков лет, а у тебя явно нет страсти к библиотечным посиделкам допоздна.
И вот подходит к тебе босс, который отвечает за создание продукта, который впоследствии перевернёт мир и говорит: «А придумай-ка, как будут работать в нашем новом программном продукте даты». Ты умён и можешь программировать. Что тут сложного? В году 365 дней, 12 месяцев, почти половина содержит 30 дней, и почти половина — 31 день. И придуман февраль, самый противный месяц в году, в котором 28 дней. Но Земля крутится вокруг Солнца не ровное количество дней, поэтому для компенсации придумали каждые 4 года добавлять один день в году к февралю и называют тот год високосным. «Так же?» — спрашивает он у своего начальника представляя, как прекрасно работает его программа. «Так!» — отвечает его начальник, такой же молодой балбес.
И невдомёк им, что во всём человеческом есть хитрости. А чтобы эти хитрости знать, надо не только быть умным, но и любить книжки читать.
Так вот, я рассказал вам про юлианский календарь, который действовал до 15 октября 1582 года, когда его сменил римский папа Григория XIII своим указом. А отличается он от своего предшественника, введённого аж Юлием Цезарем одной маленькой особенностью. Високосные года, которые имеют в окончании номера года два нуля (…, 1800, 1900, …) високосными не являются. Но вот те, которые делятся на 400 (1600 и 2000) — такие же високосные, как и прочие те, которые просто на 4 делятся (…, 2020, 2024, …). И это я такой умный, потому что у меня Википедия есть, и я «кризис миллениума» пережил.
А у тех молодых балбесов только Sex Pistols и пиво с девчонками в голове.
Так что они спокойно внедрили алгоритм работы с датами в свой революционный продукт и забыли об этом на почти 15 лет.
Да, отдельное «спасибо» надо сказать тому плохому учителю истории, который у молодого балбеса не смог вызвать любви к изучению прошлого. Придумав гениальную идею о том, что все даты надо просто пронумеровать, он взял в качестве отправной точки … начало 20 века. Первым днём в Excel является 1 января 1900 года. Ибо жил этот балбес в 20-м веке, а кому в столь прогрессивное время интересны Наполеон и Иван Грозный, Юлий Цезарь и папа Григорий XIII? Правильно, никому. Вот поэтому нет отрицательных дат в электронных таблицах и нет возможности историкам выполнять вычисления с датами для более ранних периодов.
Вы уже устали читать, а это лишь преамбула. Я про это всё рассказываю на своих курсах. И писать статью не было бы смысла. Но вот основной текст.
1900 год не был високосным. Это значит, что 29 февраля в нём не было. Но это не было известно авторам системы нумерации дат и поэтому в Excel такая дата существует. Можно было бы такой же нудный фильм снять как советский про 31 июня, только про 29 февраля 1900 года.
Так что по-настоящему правильным календарь в Excel является лишь с 1 марта 1900 года. Я прямо не знаю, как вы с этим фактом будете теперь жить.
Но нас же ждёт 2100 год. И настоящий кризис тысячелетия будет тогда, когда какой-нибудь старый компьютер, который управляет забытым датчиком на усыплённой атомной станции или почти списанной ракете посчитает, что есть 29 февраля 2100 года и выдаст ошибку в результате которой управляющая программа даст сбой и …
Поэтом предпринимались попытки переписать этот ошибочный алгоритм и в различных около-экселевских средах действуют другие правила.
Например, в Power Query, который является неотъемлемым дополнением к классическому Excel, отрицательные даты есть. Power Query создавали всё-таки не панки и об истории и христианской религии какие-то сведения у них были. Самым первым днём в PQ является день под номером -693593 и это… 1 января 0001 года … по григорианскому календарю. Хотя на тот день в Римской Империи действовал юлианский. Но тут уже совсем можно сдвинуться.
В зависимости, какую среду вы будете использовать, нумерация дат до 1 марта 1900 года будет у вас отличаться. В Excel 1 — это 1 января 1900 года, а в Power Query этот день обозначен номером 2.
Впрочем, также нумеруются даты в надстройке Power Pivot, но, правда, там тоже нет отрицательных дат, так что глубокие исторические расчёты в нём невозможны.
Какой алгоритм используют наши «отечественные» аналоги?
Р7-таблицы работают по алгоритму, который действует в классическом Excel: 1 — это 1 января 1900 года, отрицательных дат нет.
LibreOffice — по алгоритму, который похож на тот, что зашит в Power Query. Там есть отрицательные даты и у них мир начался вместе с Христом на - 693597 день от начала отсчёта. Примечательно, что у LibreOffice алгоритм даёт расхождение с Power Query на 2 дня.
Программисты счёт ведут не с 1, как нормальные люди, а с 0, поэтому отрицательных дат в Excel нет, но есть нулевая дата. И она разная. У Power Query и Power Pivot это 30 декабря 1899 года, а у самого Excel есть нулевое(!) января 1900 года.
Как с этим всем жить? Вроде бы — забить и забыть. Собственно, так и живут все люди. 2100-й год далеко. Пусть внуки думают об этом. Мы же хотим, чтобы они жили весело и им было чем заниматься!
И зря радуются фанаты Excel, что даты там пронумерованы до 31 декабря 9999 года. Правильный алгоритм перестанет быть правильным 28 февраля 2100 года. Всего через 70 с небольшим лет. Но за это время или Excel умрёт или случится что-то, что будет важнее этого «небольшого казуса».
А нам стоит помнить, на каком основании построена современная цифровая цивилизация и как важно технарям давать общее универсальное образование. Ведь могли создать вечный продукт. Но не вышло.
Недавно закончил первый поток, в котором читал не Excel, а его "отечественный" аналог "Р7-таблицы". Я нагло решил, что моя методика масштабируется и при наличии сводных таблиц электронные таблицы вполне могут использоваться для мгновенного анализа. Я (почти) оказался прав. Вот краткий отчёт по темам.
Построение сводных таблиц — 5 из 5. Распознавание границ исходных таблиц почти идеальное. Поэтому предварительно можно не выделять массив. На этом радости тускнеют. Погружение в данные (когда двойным щелчком расшифровываешь данные) работает только как формирование выгрузки, где бы ты ни тыкал. Умные таблицы — 3 из 5. Нет особой адресации с @ и нет автоматического размножения формул. Была замечена ошибка при работе с итоговой строкой — при её отключении удалялась (!) первая (!!) строка умной таблицы. Разработчики не смогли воспроизвести эффект и вроде забили, так что повнимательнее.
Диаграммы — 2 из 5. Распознавания диапазона таблицы нет и поэтому вместо мгновенной картинки мучения секунд на 30 по наполнению диаграммы данными. Работа с элементами диаграммы — на любителя. В принципе она и в Excel не идеальная, так что можно было бы простить некоторые непонятки. Но! В круговой диаграмме нет галочки для включения % долей. Сами % включить можно, но только при помощи заготовок-шаблонов оформления, которые потом при любом чихе отваливаются.
Условное форматирование — 5(?) из 5. Мне даже больше зашло, чем в Excel. Но файлы учеников после этого ругались при открытии их в Excel, что тревожит, так что 5 под вопросом.Дополнительные вычисления — 4 из 5. С нарастающим итогом отказывается работать после сортировки данных. Отсюда нельзя сделать мгновенный ABC-анализ. Пичалька. Остальное вроде есть. Жаль, что нет быстрого оформления чисел в сводной таблице. Приходится выделять.Формулы работают "вроде" так же. Жаль, плохо организованы подсказки. Их то нет, то всегда мешаются и не подвинуть. Я бы поставил 4 из 5, несмотря на то, что Р7 требует обязательного закрытия скобки. Но есть жуткий косяк на -2 балла, когда вдруг Р7 отказывается выделять мышкой. Т.е., ученики делают несколько попыток исправить формулу и после этого мышка перестаёт участвовать в формировании диапазона и весь адрес надо прописывать ручками. Пипец какой-то. Жалобы к разработчикам привели лишь к ответу "Мы не обнаружили". Вопщем несмотря на почти полное воссоздание ключевых функций пользовательский опыт ужасный. 2 из 5
Общее впечатление — очень сырой продукт с любопытным дизайном. Ещё бы лет пять... но мы не умеем как китайцы за 20 лет до принять принципиальное решение и запретить любой западный софт в госучреждениях. Впопыхах получилось как получилось. Разработчики явно экономят на тестировании продукта. Почему ошибку с неправильным получением названия дня недели нахожу я — обычный пользователь. Юзабилити хромает, функционально — это продукт на уровне 2007 года, несмотря на наличие новых функций.А уже давно пора делать свой Power Query. Excel уже устарел. А ребята всё пытаются любовно и неуклюже его копировать. Даже глюки и дурацкие формулировки. Есть надежда, но призрачная, что что-нибудь будет сделано, но отстаём от нынешнего уже привычного инструментария на десятки лет.
Как совместить в одном документе два текста, да ещё и автоматически пронумеровать абзацы
Или как появляются огромные, запутанные, нечитабельные таблицы
Любой бизнес или процесс или бизнес-процесс появляется как нечто простое и не требующее особого ума и сложного учёта.
Например, начинающий предприниматель продаёт пирожки с ливером.
Что может быть проще для учёта? Что нам надо записывать? Когда мы продали и сколько.
Нам вполне хватает нескольких столбцов или строк. И итоговая формула очень простая.
Но через некоторое время он решает расширить ассортимент и начинает предлагать несколько видов продукции.
Нам понадобились строки и другой вид итогов — суммы по столбцам, но принципиально ничего не поменялось. В этом и заключается коварство учёта. На каждом отдельном шаге большого усложнения не происходит, всё естественно и не безобразно.
Добавляем деньги. И тут засада. Куда писать суммы за каждый день? Столбцы и строчки уже заняты. Не проблема! Добавляем объединённые ячейки и многоэтажный заголовок.
Да, правда, пришлось поднять свой уровень владения Excel, изучив новую функцию СУММЕСЛИМН, а то уж больно много ручной работы появляется складывать отдельные ячейки. Подумаешь! Знания — сила, умения — мощь! Любой мой коллега-обучатель скажет — учиться надо. Это, как минимум, нам, обучателям полезно.
Как вам табличка? Уже приятная на глаз. Уже не всё так понятно и не всё становится просто, а мы-то всего 6 свойств события записали. Вы попробуйте собрать из этой таблички динамику по датам. Ага, снова придётся мышиное кунфу применять для сбора в один рядок всех сумм.
А теперь «империя наносит удар». Как вам идея нанять сотрудника? И куда же мы будем заносить его показатели. А ведь он не один у нас будет? Ага, листы на подходе.
Ага, чувствуете нарастающую силу сложности? Тут или ручками «контрол-цэ» либо снова учиться — макросы там, поверквери или ДВССЫЛ — так много вкусного. Не один десяток вечеров проведёшь в изучении прекрасных технологий и не одну десятку тысяч потратишь, чтобы сэкономить эти вечера. Мы, обучатели, всегда поможем.
А ещё торговая точка есть, если теперь мы будем предлагать эти пирожки не только на вокзале, но и на рынке, а там ещё и филиал на площади на подходе. Пирожки же вкусные, народ их берёт влёт. Куда будем писать? «В другом файле! В примечаниях!» — кричат из разных мест. Ну вы поняли, вам, знаменитому пекарю пирожком приходится нанимать либо мышиных трудяг, которые с утра до вечера будут отвечать на ваши простые по сути вопросы про то, сколько когда и кто чего продал. Или идти на поклон к т.н. «гуру Excel». И тех и других уволить нельзя, ибо первые в голове держат всё и без них всё рухнет, а вторые готовы в момент ответить на любой ваш вопрос. Только их услуги уже стоят так, что думаешь, что пирожки надо делать из золота, чтобы окупить эту «аналитику».
Ответ, конечно, же есть.
Учёт надо сразу вести в т.н. «плоских» таблицах, которые я для учеников называю «водопадными». Вот два свойства, выполнение которых любую таблицу делают такой водопадной:
Таблица должна неограниченно и непрерывно расти вниз.
Каждая строка должна содержать всю информацию о событии или элементе.
И если вдруг у предпринимателя добавится ещё 10 признаков, то он их пристроит как ещё 10 столбцов, а их вправо может быть 16 384.
И, да. мы не упомянули, что продажи прут и уже через пару месяцев единичных продаж наш бизнес вырос до десятков сотрудников в десятках торговых точек, ассортимент вырос, и теперь количество учётных единиц, которые надо зафиксировать уже сотни в один день. Представляете себе объём таблицы и, соответственно, трудоёмкость обработки?!
Но нет, если вы заранее стали вести учёт в виде водопада, то вас не будет тревожить рост вашего бизнеса — только радовать.
А как из такой таблицы получать ответы на свои вопросы? Конечно же, сводными таблицами — легко и непринуждённо, за считанные секунды. Но об этом уже в другой раз. Мы, обучатели, сразу всего не любим рассказывать.
Как-то меня попросили рассказать, как лучше всего организовать работу с двуязычным договором. В этой статье я дам подробный ответ. Думаю, мой вариант последовательности действий наиболее подходит для решения этой задачи. Если вы захотите предложить другую последовательность или дать свои советы — буду только рад.
(статья дана в поддержку моего курса "Word для профессионалов")
Если стороны договора говорят на разных языках, то часто текст оформляется в двух версиях "на одном листе". Например, слева на русском, а справа — на языке другой стороны. В нашем примере будет английский.
И при таком варианте сразу выскакивает проблема — высота английского текста ниже высоты русского. Попробуйте взять любой абзац строк на 4–5 и будет явная разница в одну – полторы строки. Возможно это из-за того, что мы, русские, любим выражать свои мысли более длинными словами (за исключением особых ситуаций, когда мы используем особую ветку языка, тут не предполагаемую). А, может, наши буквы шире, например, Ш и Ж явно шире I или l. Этим вопросом пусть занимаются филологи. мы с вами возьмём это как данность.
Разница в высоте текста приводит к постоянным мучениям. Из-за неё нельзя пользоваться разбиением текста на две колонки.
Если разбить текст на колонки, то это будет непрерывный поток и для того, чтобы он мог выглядеть как потока, придётся один договор разместить под другим. Учитывая, что текст имеет разную высоту, невозможно (суперсложно!) будет расположить его так, чтобы один абзац русского текста находился на уровне аналогичного абзаца английского.
Те, кто использует этот способ, вынуждены постоянно добавлять или удалять пустые абзацы, поскольку текст постоянно прыгает и любое изменение в русском тексте приводит к тому, что сдвигается вся текстовая лента и приходится корректировать английский. Чем больше объём документа, тем больше мучений. И всё равно ровно и красиво не получится. Да и структура будет капризной. Не дай бог что-то поменять или сдвинуть — поплывёт всё. Всё-таки колонки не подходят.
Более грамотный вариант — использование таблицы для разметки текста. Но не так, как предполагают многие. Чтобы разорвать взаимосвязь двух версий текста, многие вставляют в документ таблицу из одной строки двух столбцов. Понятно, что без рисования границ. И текст вставляется в соответствующие ячейки таблицы. Русский — в левую ячейку, а английский — в правую.
Но проблема в том, что несогласованность текста сохраняется. Да, английский вариант уже не зависит от русского, но он же короче и поэтому, чтобы обеспечить согласованность абзацев, приходится каждый раз, когда добавляешь пустой абзац в английском тексте, поправлять весь английский текст ниже.
И это я ещё не говорю об использовании таблиц, графиков, формул и прочих специальных элементов.
Шаг первый.
Берём новый документ. Вставляем в него текст договора.
Выделяем весь текст и выполняем: Вставка — Таблица — Преобразовать в таблицу.
Ничего в этом диалоге менять не надо. Нам нужен 1 столбец. С "Автоподбором ширины" всё в порядке и, главное, "Разделитель" нам как раз нужен "знак абзаца". Что произойдёт, когда вы нажмёте Enter?
Весь документ войдёт внутрь новой таблицы так, что один абзац будет внутри одной клетки таблицы.
Надо будет выделить всю эту новоиспечённую таблицу и снять рисование линий. Ну, я думаю, вы догадаетесь , как это сделать.
Шаг второй
Вставляем в этой новой таблице столбец справа. Затем выделяем всю таблицу и применяем кнопку "Выровнять ширину столбцов" во вкладке "Макет таблицы"
Как таблица расширяется, выравнивается и заполняется текстом
Теперь можно спокойно вставлять в правую часть перевод на английский
Что мы получили и чем такой вариант лучше предыдущих двух?
Теперь каждый абзац английского текста будет начинаться с того же уровня, с которого начинается и русский текст, потому что они будут находится в одной табличной строке. И у правление этим документом будет куда приятнее, чем однопотоковым в случае колонок или двухпотоковым в случае таблицы с одной строкой.
Сразу предупрежу, что автоматическая нумерация тут либо невозможна и все циферки номеров абзацев и заголовков придётся писать вручную, либо надо дождаться моей второй статьи на эту тему, где я буду погружаться в стилевое оформление документа и настройку нумерации при помощи стилей списков.
А пока попробуйте этот способ работы с текстом. Может, он подскажет вам решение другой задачки
Ваш, Олег Видякин.
Все способы сравнения таблиц в Excel от формул с применением СУММЕСЛИМН и ВПР до Power Query. Обещанный Power Pivot не влез :(