Спасибо. Но с этого сайта я уже все четыре версии Attestat пробовал – ни одна не запускается. Точнее у одной устанавливается огрызок меню с одним разделом анализа из примерно 20, которые там были.
Надстройка Attestat для статистического анализа - как запустить на современной Excel (64b), Надстройка Attestat для статистического анализа - как запустить на современной Excel (64b)
Надстройка Attestat для статистического анализа - как запустить на современной Excel (64b), Надстройка Attestat для статистического анализа - как запустить на современной Excel (64b)
Нужна UDF для удаления одного указываемого элемента из текста (списка элементов)
13.07.2017 23:13:35
Еще раз большое спасибо всем участникам обсуждения.
Проверил все опубликованные решения (в том числе дополненные для обработки частных случаев) в Excel 2010. To Был неправ. Формула, предложенная Вами, работает, в том числе, правильно дает пустоту, если исходная строка состоит из одного элемента (без запятых) и он же задается в качестве удаляемого, то есть, если первый аргумент "4", и второй – тоже "4". Более того, она дает пустоту даже если первый аргумент "4," или ",4", а второй – "4". И только если строка это ",4,", а удалить надо "4", то в ответе остается одинокая запятая. Но это уже совсем невероятный случай. По-видимому, на машине, где я ее смотрел первый раз (не моя), стояла какая-то неполноценная Excel 2003. Вообще трудно не восхититься, увидев такую формулу – 1386 знаков ! И все работает. Да ее прочитать только, – и то трудно, не то, что отладить. Респект. Однако в моей рабочей книге предполагается последовательная обработка многих строк со списком элементов через запятую. На каждом шаге будет удаляться какой-то следующий (не по порядку) элемент на основе экстремальности некоторого критерия. Всего исходное число элементов списка – несколько десятков, может быть пару сотен. Не исключено, что потребуется рекуррентная обработка строк в одной ячейке Тогда в каждом месте, где в этой формуле встречается первый аргумент – исходная строка-список элементов (а всего их 36! ), придется вставить еще одну такую же формулу. А это уже полный завал. Увы. Поэтому, скорее всего, поблагодарив Вас за помощь,я склоняюсь к варианту функции на VBA. To Предложенная Вами функция DelNumber не компилировалась у меня днем на машине с, вероятно, некорректно установленной Excel 2003. Сейчас на Excel 2010 она компилируется и запускается без замечаний. Функция (речь идет об исправленной Вами функции) даже правильно обрабатывает экзотические частные случаи, если исходная строка (первый аргумент) это "4," или ",4", а второй (удаляемый элемент) – "4". И лишь если строка это ",4,", а удалить надо "4", то в ответе (как и при помощи формулы уважаемого Однако штатный частный случай, если исходная строка состоит из одного элемента (без запятых) и он же задается в качестве удаляемого, то есть, если первый аргумент "4", и второй – тоже "4" Ваша функция не удаляет его, и в ответе та же строка "4". Кроме того, она не совсем удачно обрабатывает другой частный случай – если по какой-то причине второй аргумент – удаляемый элемент – окажется пустым. В этом случае, казалось бы, исходная строка должна остаться без изменений. Но функция DelNumber удаляет первую запятую в строке – между первым и вторым ее элементами и "склеивает их" в один несуществующий номер. Поэтому, хотя во своему виду Ваша функция мне нравится больше иных предложенных решений, придется использовать другую. To Дополненная Вами функция УДАЛИТЬСИМВОЛ (хотя название, похоже, не соответствует функционалу – удаляется не символ, а элемент списка, в том числе несколько символов) в ходе моей проверки корректно обрабатывает все рабочие и частные случаи. Так что, скорее всего, пака я попробую использовать именно ее. Однако меня несколько смущает оператор On Error Resume Next. Насколько я понимаю, его смысл примерно таков : "Наплюй на любую ошибку и дуй дальше". Если эта команда (статус) простирается на всю дальнейшую работу программы, то ошибки могут накапливаться и приводить к непредсказуемым результатам. Как Вы думаете, нельзя ли обойтись без столь рискованной (на мой взгляд) команды? P.S. Ко всем: Друзья, а надо ли спорить, кого ребенок любит больше, маму или папу? |
|
|
Нужна UDF для удаления одного указываемого элемента из текста (списка элементов)
13.07.2017 13:43:35
Спасибо всем за участие. Два комментария.
1. Я попал сейчас только на машину, где установлен Excel 2003. Поэтому функция уважаемого Формула уважаемого ![]() ![]() Функция уважаемого 2. Оба проверенных варианта, однако, не обрабатывают крайний частный случай (который, правда, совсем не упоминался в исходном вопросе) : если заданная строка-список элементов с разделителем-запятой состоит всего из одного элемента и, поэтому, в ней вообще нет ни одной запятой. А такое, хоть редко, но может быть. И как самый редкий случай – она может оказаться пустой. По-видимому, нужно еще чуть-чуть дописать. Заранее большое спасибо |
|
|
Нужна UDF для удаления одного указываемого элемента из текста (списка элементов)
Приписать к исходной матрице слева столбец из единиц
22.11.2015 21:53:18
JayBhagavan, Спасибо. Понял.
|
|
|
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
19.11.2015 21:27:14
Chonard, да. Специального ПО много. Просто хотелось сделать все "прозрачно" в Excel. Известный минус всех спецПО в том, что большинство расчетов они делают как в черном ящике – никогда точно неизвестно, как именно они там считают. Часто разные ПО дают разные ответы для одних и тех же данных. Простейший пример, если на каждом шаге некоторого алгоритма происходит разветвление в зависимости от минимального или максимального значения в наборе значений, то если экстремальное значение встречается несколько раз, какое именно выбирают для следующего шага, как правило, неизвестно. Даже если пишут "первое встреченное" (или последнее) – то в каком порядке они были для просмотра, неясно. В Excel можно все определить однозначно, конкретно.
Изменено: |
|
|
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
19.11.2015 19:24:39
|
|||
|
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
19.11.2015 15:46:20
justirus, Спасибо за ссылку, очень близко. Плюс хорошо, когда люди не ленятся всюду в теле программы-функции писать множество комментариев.
Правда авторы, все время подчеркивают, что их функция только для парной регрессии, то есть для регрессии с одним фактором X. У меня же должны использоваться десятки, а может и сотни факторов. Формулы для расчета параметров множественной линейной регрессии гораздо более громоздки, чем для парной – это не просто добавить всюду встроенные или объемлющие циклы, а совсем другой расчет. Попробую разобраться, но вопрос о готовой функции именно для расчета параметров множественной линейной регрессии не снимается.
Изменено: |
|
|
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
19.11.2015 13:17:29
Но, главное замедление вызывают даже не сами функции – именно по справочнику их и можно найти, а то, что пока у меня не набита рука эффективно писать разные обслуживающие операторы, например, "определения" типа Dim, ReDim, и т.д. Поэтому хотелось бы найти где-нибудь готовую функцию, чтобы разобрать "по полочкам" и использовать как образец. Спасибо |
|||
|
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
19.11.2015 12:40:15
Вот, если интересно, выкладываю картинки формулы в двух вариантах записи – матричной и скалярной. Там верхний штрих означает операцию транспонирования матрицы, прямая черта над переменной – ее среднее значение, а "y с крышкой" – расчетные значения зависимой переменной y . n – это число строк данных.
Изменено: |
|||
|
Нужна функция расчета R^2 множественной линейной регрессии с числом факторов > 16 (как у ЛИНЕЙН), преобразовать имеющуюся формулу в UDF функцию
18.11.2015 22:09:20
Требуется рассчитать параметры множественной линейной регрессии методом наименьших квадратов в прямом матричном представлении (например, коэффициенты регрессии, стандартные ошибки, остаточную дисперсию и др.) .
Как известно, встроенные в Excel средства – Пакет анализа и функции типа ЛИНЕЙН – работают не более, чем с 16 факторами-регрессорами (по крайней мере в версиях до Office2007), а у меня как минимум десятки факторов (по максимуму – сотни). Поэтому я составил формулу для расчета, например, коэффициента детерминации R^2 множественной линейной регрессии прямым матричным методом, которая вводится в одну ячейку как формула массива {=СУММКВ(МУМНОЖ(XInput;МУМНОЖ(МУМНОЖ(МОБР(МУМНОЖ(ТРАНСП(XInput);XInput));ТРАНСП(XInput));YInput))–СРЗНАЧ(YInput))/СУММКВ(YInput–СРЗНАЧ(YInput))} Формула вполне работает с десятками показателей-факторов. Однако, если попытаться "нагрузить" ее естественными проверками корректности входных данных, например таким образом {=ЕСЛИ(ЧСТРОК(XInput)=ЧСТРОК(YInput);ЕСЛИ(МОПРЕД(МУМНОЖ(ТРАНСП(XInput);XInput))>ЕСЛИ(ЕЧИСЛО(MdetMin);MdetMin;0.01); СУММКВ(МУМНОЖ(XInput;МУМНОЖ(МУМНОЖ(МОБР(МУМНОЖ(ТРАНСП(XInput);XInput));ТРАНСП(XInput));YInput))–СРЗНАЧ(YInput))/СУММКВ(YInput–СРЗНАЧ(YInput));"Исходная матрица факторов X вырождена");"Число строк в данных X и Y не совпадает")} то Excel начинает ругаться о превышении лимита количества вложенных функций. Вариант "размазать" сложную формулу по нескольким ячейкам по частям не устраивает. Кроме того, если входной столбец YInput передается в формулу непосредственно, как есть, то в соответствии с методом наименьших квадратов к исходной матрице факторов X необходимо слева приписать столбец из единиц, и таким образом, образовать рабочую матрицу XInput, которая подается на вход формулы. А это добавит в структуру данной формулы, как минимум, еще один "этаж", да в нескольких местах. Представляется, что преодолеть эти и другие трудности можно при помощи соответствующей пользовательской функции VBA. Вопрос. 1) Не встречал ли кто-нибудь готовую (свободную для использования) UDF функцию Excel для расчета параметров множественной линейной регрессии (коэффициент детерминации R^2 и др.), работающую с десятками факторов? (Встроенные функции ЛИНЕЙН и т.п. не годятся – у них число факторов <=16). Если да, то можете ли поделиться ссылкой? 2) Если Вы способны писать на языке VBA так же свободно, как и по-русски, не заглядывая в справочник-словарь, как я, то не могли бы Вы преобразовать приведенные выше формулы в пользовательские функции Excel, которые я мог бы использовать в качестве образца для создания других функций для расчета всех необходимых параметров? На всякий случай, позволю себе привести формулу в более принятом матричном виде R^2=SUMM[(X(X'X)^(-1)X'Y–Yср)^2]/SUMM[Y–Yср)^2]. Здесь верхний штрих означает транспонирование. Спасибо
Изменено: |
|
|
Приписать к исходной матрице слева столбец из единиц
18.11.2015 19:37:43
JayBhagavan, 2-й вопрос, если позволите, по-видимому, вызван недостаточным знакомством с VBA:
Зачем нужен временный массив arr_tmp? Почему нельзя везде, где он используется, сразу поставить массив arr – аргумент функции? То есть сделать так
Изменено: |
|||
|
Приписать к исходной матрице слева столбец из единиц
18.11.2015 19:21:17
Если позволите,
Не будет ли лучше (и считать быстрее), если избежать проверки по IF на каждом шаге присвоения (число раз выполнения IF здесь равно числу строк, умноженному на число столбцов новой матрицы), а вынести присвоение единиц из внутреннего цикла непосредственно во внешний, и начать внутренний сразу с 2-х? То есть, примерно так
Простите, модератор, не знаю, как сделать удобную вкладку.
Изменено: |
|||
|
Приписать к исходной матрице слева столбец из единиц
18.11.2015 17:40:44
Спасибо, JayBhagavan, только вернулся к машине, не сразу ответил.
Боюсь сглазить, но похоже, что это то, что нужно. Хотя и не формула (как было в первоначальном вопросе), а функция, но так, насколько я понимаю, даже лучше – нечаянно испортить на листе сложнее, да и считает быстрее. Спасибо, за помощь. Буду разбираться. |
|
|
Приписать к исходной матрице слева столбец из единиц
18.11.2015 14:51:20
JayBhagavan, Спасибо, что откликнулись
Вопрос же не в том, чтобы получить эти два числа – эти две проверочные формулы я предложил только для того, чтобы убедиться, что основная Нужная формула массива будет работать не только НА ЛИСТЕ, но и будучи введенной как часть более сложной формулы массива В ОДНУ ЯЧЕЙКУ. (Как я писал ранее, это будут расчеты параметров множественной линейной регрессии. Там эту матрицу придется транспонировать, умножать, инвертировать и т.д.) Таким образом, в случае Вашей формулы все было бы хорошо, если бы подставив ее в {=ЧИСЛСТОЛБ(Нужная формула)} ВМЕСТО слов Нужная формула то есть введя в ячейку {=ЧИСЛСТОЛБ(ЕСЛИ(СТОЛБЕЦ(ДВССЫЛ("1:"&ЧИСЛСТОЛБ(Матрица_исходная)+1))=1;1;ИНДЕКС(Матрица_исходная;СТРОКА(ДВССЫЛ("1:"&ЧСТРОК(Матрица_исходная)));СТОЛБЕЦ(ДВССЫЛ("1:"&ЧИСЛСТОЛБ(Матрица_исходная)+1))-1)))} мы получали бы правильный ответ. Увы...Представленное выражение дает число 256. Пока, правда, я не разобрался, почему. |
|
|
Приписать к исходной матрице слева столбец из единиц
18.11.2015 13:35:59
JayBhagavan,Спасибо за попытку.
Как формула массива НА ЛИСТЕ Ваша формула вполне работает. Однако если подставить ее в проверочные ячейки M27 с формулой {=ЧИСЛСТОЛБ(Нужная формула)} и в M29 с формулой {=СУММ(Нужная формула)} вместо слов Нужная формула, то ЧИСЛСТОЛБ дает 256, а СУММ – #Н/Д. Буду разбираться. |
|
|
Приписать к исходной матрице слева столбец из единиц
18.11.2015 12:44:05
{=ВЫБОР({1;2;3;4};1;ИНДЕКС(Матрица_исходная;;1);ИНДЕКС(Матрица_исходная;;2);ИНДЕКС(Матрица_исходная;;3))} Соответственно в проверочных ячейках следует записать {=ЧИСЛСТОЛБ(ВЫБОР({1;2;3;4};1;ИНДЕКС(Матрица_исходная;;1);ИНДЕКС(Матрица_исходная;;2);ИНДЕКС(Матрица_исходная;;3)))} и это даст 4, {=СУММ(ВЫБОР({1;2;3;4};1;ИНДЕКС(Матрица_исходная;;1);ИНДЕКС(Матрица_исходная;;2);ИНДЕКС(Матрица_исходная;;3)))} и это даст 2239.49 Основной, и для меня достаточно серьезный, недостаток этого решения в том, что это решение действительно ТОЛЬКО ЧАСТНОЙ ЗАДАЧИ – структура формулы хотя и не содержит ни адреса исходной матрицы, ни числа ее строк, но явным образом использует число столбцов этой матрицы. Поэтому общее решение, по-видимому, требует текстовой формулы для нужного числа повторений элемента ";ИНДЕКС(Матрица_исходная;;1)" да еще и с изменяемым номером столбца в каждом повторении. Буду признателен за любые предложения по доработке. |
|||
|
Приписать к исходной матрице слева столбец из единиц
17.11.2015 18:14:01
Ну что же – этого я и опасался, когда в первоначальном вопросе не сообщал подробностей, для чего это нужно. Народ резко потерял интерес к теме.
Воистину, многие знания – многие скорби и умножающий знание умножает печаль. Впрочем, мне уже удалось найти решение приведенной мной частной задачи приписывания единичного столбца слева к заданной матрице и именно в виде формулы массива В ОДНОЙ ЯЧЕЙКЕ. Спасибо всем участникам дискуссии. Но раз это никому более не интересно, что ж ... |
|
|
Приписать к исходной матрице слева столбец из единиц
15.11.2015 10:48:07
(Ничего смешного – это действительно очевидно, так как это единственный случай во всех различных разделах высшей математики, который мне встретился, когда применяется этот прием – приписать к исходной матрице слева столбец из единиц). Дело в том, что встроенные в Excel средства – Пакет анализа и функции типа ЛИНЕЙН – работают не более, чем с 16 факторами-регрессорами (по крайней мере в версиях до Office2007), а у меня как минимум десятки факторов (по максимуму – сотни). Вот для того, чтобы использовать прямое матричное представление метода наименьших квадратов нужно к исходной матрице факторов приписать слева столбец из единиц. Затем эта расширенная слева на один столбец из единиц исходная матрица подается на вход различных формул, каждая из которых реализует расчет какого-либо параметра(ов) множественной линейной регрессии (например, коэффициентов регрессии, стандартных ошибок, остаточной дисперсии и др.) Почему не годится расчет с построением матрицы с дописанным единичным столбцом НА ЛИСТЕ буквально как в моем файле примера – да потому, что это легко для одного-двух расчетов, а предполагается выполнить расчеты для большого количества подмножеств исходных факторов – столбцов матрицы данных (десятки и сотни расчетов). Каждый раз заводить листы с матрицами с дописанным единичным столбцом, согласитесь, весьма обременительно. (Кстати с помощью участников форума я уже научился строить сами подматрицы столбцов матрицы данных – по вектору отбора показателей. Теперь надо научиться к каждой такой подматрице приписывать слева столбец из единиц.) Я не писал ранее об этом, так как полагал, что не нужно задуривать людям голову лишними деталями и отвлекать от самого вопроса – как внутри формулы массива, размещенной в одной ячейке, приписать слева к исходной матрице – ее основному, а скорее всего и единственному аргументу – столбец из единиц. Если Вы полагаете, что знание этого может помочь ответить на вопрос, извольте.
Изменено: |
|||
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 23:15:43
СТОЛБЕЦ()=МИН(СТОЛБЕЦ()) Введите, пожалуйста, формулу {=СТОЛБЕЦ()} в какой-нибудь диапазон, например, A11:D11 (по CSE, разумеется). И увидите строку 1 2 3 4 Теперь введите формулу {=МИН(СТОЛБЕЦ())} в диапазон A12:D12 тоже как формулу массива (по CSE, разумеется). И увидите строку 1 1 1 1 Теперь, введите формулу {=СТОЛБЕЦ()=МИН(СТОЛБЕЦ())} в диапазон A13:D13 тоже как формулу массива. И увидите строку ИСТИНА ЛОЖЬ ЛОЖЬ ЛОЖЬ Все правильно. Формула МИН(СТОЛБЕЦ()), введенная в диапазон как формула массива, дает номер самого левого столбца этого диапазона, в который она сама введена!
Изменено: |
|||
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 22:53:35
{=ЕСЛИ(СТОЛБЕЦ()=МИН(СТОЛБЕЦ());1;ИНДЕКС(Матрица_исходная;;{0;1;2;3}))} введена в диапазон P11:S20. При этом ее часть СТОЛБЕЦ()=МИН(СТОЛБЕЦ()) дает истину только в ячейках P11:P20, так как в них СТОЛБЕЦ()=16 и МИН(СТОЛБЕЦ())=16. А в остальных ячейках этого диапазона по-прежнему МИН(СТОЛБЕЦ())=16, а СТОЛБЕЦ()=17 в ячейках Q11:Q20, СТОЛБЕЦ()=18 в ячейках R11:R20, СТОЛБЕЦ()=19 в ячейках S11:S20. Таким образом, условие СТОЛБЕЦ()=МИН(СТОЛБЕЦ()) дает ИСТИНА только в ячейках P11:P20, и туда по функции ЕСЛИ записывается столбец из единиц, а в остальные ячейки – соответствующие элементы исходной матрица по функции ИНДЕКС. То есть НА ЛИСТЕ – в диапазоне P11:S20 моего файла-примера – задача решена: к исходной матрице слева приписан столбец из единиц. А требуется сделать это в тексте формулы массива В ОДНОЙ ЯЧЕЙКЕ, а не в диапазоне, например, в ячейках M27 с формулой {=ЧИСЛСТОЛБ(Нужная формула)} и в M29 с формулой {=СУММ(Нужная формула)} То есть вопрос, что нужно написать в них вместо слов Нужная формула, используя только имя(диапазон) исходной матрицы, чтобы получить правильный ответ (в M27 – 4, в M29 – 2239.49) Еще раз спасибо за терпение.
Изменено: |
|||
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 22:12:53
столбец() дает номер текущего столбца, а мин(столбец()) дает номер первого столбца диапазона, в который введена эта формула массива. В данном случае в ячейке, например, P11, столбец() равен 16, и мин(столбец()) равен 16, тогда по функции ЕСЛИ туда записывается 1, а вот в ячейке Q11 столбец() равен 17, а мин(столбец()) равен по-прежнему 16 ! и тогда по функции ЕСЛИ туда записывается первый элемент исходной матрицы ИНДЕКС(Матрица_исходная;;1), Условие СТОЛБЕЦ()=МИН(СТОЛБЕЦ() совершенно не бредовое. Я, признаюсь, был в восторге, когда его придумал. Это ответ на мой более ранний вопрос, как во внутренних ячейках диапазона, в который введена формула массива, указать левый верхний угол этого самого диапазона, в частности, первый столбец этого диапазона. Да это очень легко проверить. Введите формулу {=СТОЛБЕЦ()=МИН(СТОЛБЕЦ())} в какой-нибудь диапазон, например, A11:H14 (по CSE, разумеется). И увидите строки ИСТИНА ЛОЖЬ ЛОЖЬ ЛОЖЬ Но увы, это решение не годится для формулы массива, вводимой не в диапазон, а в одну ячейку, как мне нужно сейчас. Спасибо за терпение и понимание.
Изменено: |
|||
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 21:34:00
{=ЕСЛИ(СТОЛБЕЦ()=МИН(СТОЛБЕЦ());1;ИНДЕКС(Матрица_исходная;;{0;1;2;3}))} . Однако будучи введенной в одну ячейку в составе внешней формулы, например {=ЧИСЛСТОЛБ(ЕСЛИ(СТОЛБЕЦ()=МИН(СТОЛБЕЦ());1;ИНДЕКС(Матрица_исходная;;{0;1;2;3})))} {=СУММ(ЕСЛИ(СТОЛБЕЦ()=МИН(СТОЛБЕЦ());1;ИНДЕКС(Матрица_исходная;;{0;1;2;3})))} она не работает. В этом и прошу помощи. |
|||
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 21:20:17
(Понятно, что не хотелось бы впустую потратить много лишнего времени). Однако иногда бывает, что то, что казалось невозможным, случается. Так недавно на этом форуме мне помогли составить формулу, которая как раз априори казалась почти невозможной. Даже вот эта формула, приведенная мной выше {=ЕСЛИ(СТОЛБЕЦ()=МИН(СТОЛБЕЦ());1;ИНДЕКС(Матрица_исходная;;{0;1;2;3}))} для решения этой же задачи, но НА ЛИСТЕ – то есть с явным созданием рабочей матрицы с приписанным слева к исходной матрице столбцом из единиц – вначале я не представлял, как это можно сделать, однако с помощью знатоков это удалось. Кстати до сих пор не совсем понимаю, как в ней работает часть ИНДЕКС(Матрица_исходная;;{0;1;2;3}) Ведь в справке к функции ИНДЕКС написано, что:
Не нужно каждое предложение отделять пустой строкой [МОДЕРАТОР] |
|||||
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 14:49:44
Сергей, Спасибо за попытку.
Ваша формула в желтой ячейке, точнее формула в определении переменной "край" не годится хотя бы потому, что результат – сумма всех чисел в желтой ячейке не совпадает с ожидаемым. Там просто просуммированы все числа исходной матрицы БЕЗ добавленного слева столбца из единиц. Да его – этого столбца из единиц – я просто и не нашел в Вашей формуле. Извините. Может быть, Вы попробуете взглянуть на мою формулу НА ЛИСТЕ, в которой явным образом к исходной матрице приписывается слева столбец из единиц, {=ЕСЛИ(СТОЛБЕЦ()=МИН(СТОЛБЕЦ());1;ИНДЕКС(Матрица_исходная;;{0;1;2;3}))} и подскажете как преобразовать ее в Нужную формулу массива, чтобы ввести ее только В ОДНУ ЯЧЕЙКУ, не получая предварительно выходную матрицу на листе, как в моем файле. То есть, представьте, что на листе есть ТОЛЬКО исходная матрица и две ячейки с формулами {=ЧИСЛСТОЛБ(Нужная формула)} {=СУММ(Нужная формула)} Что написать вместо (Нужная формула), чтобы получить ожидаемый результат. Простите за "мудрение".
Изменено: |
|
|
Приписать к исходной матрице слева столбец из единиц
14.11.2015 14:25:29
Спасибо всем ответившим. Прошу прощения за, возможно, нечетко сформулированный вопрос.
Речь не о том, чтобы НА ЛИСТЕ приписать к матрице слева столбец из единиц. Этого нового массива с добавленным слева столбцом из единиц ВООБЩЕ не должно быть НА ЛИСТЕ. Поэтому, Catboyun, ни о каком протягивании или заполнении по CSE и речи нет. Выходной массив в файле я привел только для того, чтобы показать, чтО должно образовываться в памяти при вычислении нужной формулы массива, ВВЕДЕННОЙ В ОДНУ ЯЧЕЙКУ. Он должен образовываться только в формуле, НЕ НА ЛИСТЕ. И использоваться внутри более сложной расчетной формулы массива. Поэтому у этого выходного массива нет никакого адреса, у него есть только содержимое в том виде, который я показал, то есть число строк – такое же как у исходной матрицы, число столбцов – на один больше, чем у исходной матрицы. Я привел два простых примера этой "более сложной" расчетной формулы: {=ЧИСЛСТОЛБ(Нужная формула)} {=СУММ(Нужная формула)} Итак, снова вопрос: Что нужно написать вместо (Нужная формула), ничего не добавляя НА ЛИСТЕ и ссылаясь ТОЛЬКО на исходную матрицу по ее имени, то есть не указывая конкретного адреса. Спасибо
Изменено: |
|
|
Приписать к исходной матрице слева столбец из единиц
13.11.2015 18:17:19
Требуется приписать к исходной матрице слева столбец из единиц.
Нужна формула Excel, возвращающая единый массив, в котором к столбцам исходного диапазона приписан слева столбец из единиц. Нужная формула будет частью более сложной расчетной формулы, расположенной В ОДНОЙ ЯЧЕЙКЕ и введенной как функция массива. В файле я привожу возможный вариант формулы массива НА ЛИСТЕ. В составе более сложной расчетной формулы массива в одной ячейке этот вариант не работает. Спасибо
Изменено: |
|
|