Pull to refresh

Comments 22

Задумчиво глядя на монстро-формулу с рис. 6 (причём, по собственному опыту, ещё далеко не самую монстрячую и нечитаемую, случались запилы и похлеще!))...

...А ещё я только в недавно лет открыл для себя, что такие вот длиннющие формулы можно форматировать переносами (Alt+Enter) и отступами-пробелами — чтобы приводить эти "кишки" хоть к какой-то удобочитаемой визуальной структуре. И разработчику удобнее, и другим людЯм потом ковыряться проще.

P.S. Правда, потом для просмотра придётся временно расширить вниз строку формул. Но, думаю, это достаточно небольшая цена за избежание вывиха мозга и глаз при отладке/коррекции. ))

Да, Alt+Enter, это обычно часто где в ПО новая строка, сам недавно узнал. Вообще там несколько сущностей разделения ВообщеБезРазделения, Про бел

Новая строка (на Хабре не работает)

Новый абзац

Хотя комбинация клавиш может отличаться

Решение задачки про нарастающий итог одной формулой:

=MMULT(TRANSPOSE(L8#)*(L8#/L8#)*1*(TRANSPOSE(ROW(L8#)-ROW()+1)<=(ROW(L8#)-ROW()+1)),L8#/L8#)
=МУМНОЖ(ТРАНСП(L8#)*(L8#/L8#)*1*(ТРАНСП(СТРОКА(L8#)-СТРОКА()+1)<=(СТРОКА(L8#)-СТРОКА()+1));L8#/L8#)

(отсылка к массиву через хэш легко заменить на СМЕЩ/OFFSET)

Ну и вариант для более продвинутых версий Экселя:

=MMULT(((SEQUENCE(COUNTA(A1#))>= SEQUENCE(,COUNTA(A1#)))*1), A1#)

=МУМНОЖ(ТРАНСП(L8#)*(L8#/L8#)*1*(ТРАНСП(СТРОКА(L8#)-СТРОКА()+1)<=(СТРОКА(L8#)-СТРОКА()+1));L8#/L8#)

Вывалится же при любом нулевом значении... 🤔

Вариант:

=ТРАНСП(МУМНОЖ(ТРАНСП(_DName_);--( СТРОКА(_DName_)<=ТРАНСП(СТРОКА(_DName_)))))

Может и вывалится. Но тут дело было не в изяществе и отказоустойчивости, а в принципиальной возможности решить задачу одной функцией ))) Человек считал что это невозможно в принципе. Ан нет ;-)

А чем для нарастающего итога плоха формула =СУММ($A$1:A1)?

Вот вообще ничем )) но ее надо протягивать вниз при добавлении новых строк. То есть у вас будет формула в каждой строке. А мое решение - одна единственная формула в первой ячейке. Это чисто "упражнение" на знание Экселя без особого смысла. Так как в 99.9999% процентов случаев ваша формула проще и понятнее ))

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

Давно перестал делать в эксель таблицы без таблиц, так что:
=СУММ(ИНДЕКС([Столбец1];1):[@Столбец1])
(но по сути это автоматическое "протягивание", которое тем не менее не нужно делать заново если добавились строки данных)

Всё верно. Просто умные таблицы действительно не всегда возможны (из-за ограничений в оформлении), да и речь шла просто о возможностях программы как таковой =)

Плевать на эту статью, просто данные в 1С наполняю, и экспортирую в Excel как это удобно заказчику через СКД.

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ(range;;;СТРОКА(range)-МИН(СТРОКА(range))+1;))
=ВЕРОЯТНОСТЬ(СТРОКА(range);range/СУММ(range);;СТРОКА(range))*СУММ(range)
=СУММЕСЛИ(СМЕЩ(range;;;СТРОКА(ДВССЫЛ("1:"&ЧСТРОК(range))););"<>")
=МУМНОЖ(--(СТРОКА(range)>=ТРАНСП(СТРОКА(range)));range)
=SCAN(;range;СУММ) - Excel 2024, Excel365

range - ваш диипазон

Спасибо! Тоже отличные варианты. Правда у меня 1ый и 3ий не сработали =))
Ну и благодарю, что напомнили про "--". Слышал про эту штуку, но чисто в практике почти не попадались задачи для её внедрения и забылась =)
Ну а новые формулы типа SCAN это вообще мощь =)) Но вот лично у меня огромная беда... На работе тупо у всех Эксель не выше 2019ого. И хочешь новые фишки внедрять, а тупо нет пространства для этого =(((((

Правда у меня 1ый и 3ий не сработали =))

Формула массива (CTRL+SHIFT+ENTER)

А! Скобок не было я и не понял =) но результатом одно значение =)

У вас запятые неправильно расставлены
Правильно
=SUBTOTAL(9,OFFSET(range,,,ROW(range)-MIN(ROW(range))+1,))

Для меня все эти статьи показались странными... Я думал это очевидно всем и каждому, даже семиклассникам. Я просто не понимаю, а как можно думать про Эксель иначе.

Скрытый текст

В школе мы только знакомились с экселем, а в вузе мы буквально изучаем Эксель. Уже три года предметы называются по разному, а в итоге всё равно Эксель. Учусь на техносферной безопасности, в Экселе считаем риски и статистику. И даже с пониманием того, как эта программа работает, моя ненависть только возрастает когда я нахожу новую фишку. Как только ты выходишь за рамки простого калькулятора, программа превращается в цирк шапито где костыль погоняет костылём. И промучившись очередные 6-10 часов за таблицей размером с жопу бразильянки ты получаешь правильный ответ, каждый раз приходит осознание что нет, это не программа написана плохо/коряво/бездарно - она и задумывалась такой грамосткой, не понятной, не правильной(с точки зрения первачка), ломающей мозг, и работает она идеально. Просто те, кто не выкупают Эксель ещё не доросли до него.

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

К сожалению, ТАК об Экселе думают только технари, да и то только те, кто с ним постоянно работает. Я финансист. И у меня таблички от девочек админов до фин.директоров. ВСЕ сделаны на "отвали". Вот и накипело =)

Если понимаешь Эксель, то понимай до конца. Никто не запрещает использовать две формулы вместе как пример на рисунке 6. впр и гпр в одной формуле.

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

Всё можно =) Главное - понимать что ты делаешь!

Народ, может, мне кто подскажет?

По работе делаю фотоотчёты на тысячи фотографий в MS Word (2016).

У меня сделано так: на каждой странице (А4 вертикально) таблица на 16 прямоугольных вертикальных ячеек и сверху ячейка-шапка на 3 строки текста. Ячейки настроены так, чтобы при перетаскивании в них фоток Drag'n'Drop-ом фотка вставала по границам ячейки. Фотки в основном делаются вертикальной ориентации. Если фотка более узкая и длинная чем ячейка - она прилипает к нижней и верхней границе ячейки, соответственно масштабируясь по ячейке (не обрезаясь, не растягиваясь и не вылезая за границу ячейки, а слева и справа между фоткой и границами ячейки остаётся пустое место). Если фотка более широкая чем ячейка, она прилипает к верхней, левой и правой границам ячейки, а снизу между фоткой и нижней границей ячейки остаётся свободное место.

Соответственно, клик по ячейке - кидаю фотку, она встала на место; клик по соседней - кидаю вторую фотку, и т.д. Набив так несколько страниц, применяю групповое сжатие (формат - сжать изображения, снять чекбокс "применить только к этому", "для печати"), иначе если не жать, закончится оператива: оригиналы фоток бывают и по 10-20 Мб.

Также бывает нужно и удобно командой "найти и заменить", вбив туда "^g", разом удалить все картинки из старого фотоотчёта чтобы начать набивать его по-новой с минимальными изменениями.

Ну и можно как в любом документе выделять, вырезать и вставлять группы листов, чтобы добавлять между разными фотоотчётами сразу большие куски (десятки таблиц по 16 фоток в каждой). Итоговый файл фотоотчёта в .docx обычно содержит около 2-3 тыс.фоток и весит порядка 150-300 Мб.

Теперь Ворд убираем, и надо делать такое в LibreOffice или в МойОфис (или в каком-то ещё инструменте). Но там не получается найти нужный функционал.

Группового сжатия фоток под единый стандарт ("для печати") нет, заранее пережимать фотки сторонней утилитой - ну такое себе (а есть для этого инструмент, чтобы разношёрстные фотки пережало к более-менее единому разрешению?). Если не жать, не хватит никакой памяти. По идее можно как-то делать скриптом, но не будет ли он повторно пережимать уже сжатые фотки портя раз за разом качество? Ворд повторно сжатую фотку не жмёт, только свежедобавленные.

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

Группового удаления всех фоток в документе тоже нет (а использовать старый пустой шаблон не годится, он быстро устаревает и помимо добавления фоток приходится раз от раза всё больше вносить правок в шапки с текстом и компоновку).

Можно ли всё это сделать в LibreOffice? Ещё хотелось бы не бросать фотки по одной, а, скажем, выделить в файл-менеджере сразу 16, кинуть их - и они по порядку аккуратно встали на страницу, потом ещё 16 и т.д. Или, может, есть какой-то другой инструмент для таких задач?

Sign up to leave a comment.

Articles