Обновить

Комментарии 21

Задумчиво глядя на монстро-формулу с рис. 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. впр и гпр в одной формуле.

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

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации