Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подменить в массиве пустые строки на 0 / 8 сообщений из 8, страница 1 из 1
13.06.2007, 16:01:34
    #34592277
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
Я по сути для себя решение уже придумал, но решил, иожет есть и лучше варианты.

Есть массив состоящий из цифр и строк типа ="" необходимо вернуть массив, содержащий вместо "" - 0
Цифры в массиве есть как положительные, так и отрицательные, как с дробной частью, так и без оной.

Всё это в формуле Exel

мой вариант
С указанной точностью:
=ЗНАЧЕН(ТЕКСТ(A1:A100;"0,0####")&0)

С точностью исходных данных
=ЗНАЧЕН(ПОДСТАВИТЬ(A1:A100&",0";",";"";2))

Буду благодарен за любую помощь, в том числе и за указание на возможные ошибки.
То что в региональных параметрах разделитель запятая должна быть понятно.
...
Рейтинг: 0 / 0
13.06.2007, 19:52:50
    #34593083
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
DeggasadЯ по сути для себя решение уже придумал, но решил, иожет есть и лучше варианты.

Есть массив состоящий из цифр и строк типа ="" необходимо вернуть массив, содержащий вместо "" - 0
Цифры в массиве есть как положительные, так и отрицательные, как с дробной частью, так и без оной.

Всё это в формуле Exel

мой вариант
С указанной точностью:
=ЗНАЧЕН(ТЕКСТ(A1:A100;"0,0####")&0)

С точностью исходных данных
=ЗНАЧЕН(ПОДСТАВИТЬ(A1:A100&",0";",";"";2))

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

если числа не ввиде текста, то наверное лучше и быстрее так (но может я чего не понял):

=ЕСЛИ(A1:A100<>"";A1:A100;0)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
13.06.2007, 20:08:52
    #34593104
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
KL (XL)

если числа не ввиде текста, то наверное лучше и быстрее так (но может я чего не понял):

=ЕСЛИ(A1:A100<>"";A1:A100;0)

KL
[MVP - Microsoft Excel]

Да, наверное недостаточно информации в вопросе!

Мне без формулы массива нужно, чтобы подставить в суммпроизв() без ошибки
Например

=СУММПРОИЗВ(($BA$1:$IV$1<>"")*(МЕСЯЦ(BA$1:$IV$1)=МЕСЯЦ($E$1))*ЗНАЧЕН(ПОДСТАВИТЬ($BA$3:$IV$3&",0";",";"";2))

Не слишком ли я замудрил?
...
Рейтинг: 0 / 0
13.06.2007, 23:09:10
    #34593286
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
А не лучше ли поправить формулы возвращающие ="" ? ;-) Есть конечно решения для твоей задачи, но это будет "Пиррова победа", т.к. потери в скорости будут значительными, да и летучесть прибавится :-(

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
14.06.2007, 07:51:55
    #34593489
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
KL (XL)А не лучше ли поправить формулы возвращающие ="" ? ;-) Есть конечно решения для твоей задачи, но это будет "Пиррова победа", т.к. потери в скорости будут значительными, да и летучесть прибавится :-(

KL
[MVP - Microsoft Excel]

Формул ссылающихся на этот диапазон не так уж и много (порядка десятка, может два десятка). Тем более уже очень много сделано под такой вариант, я было хотел поменять на нули сначала, но в красоте сразу проиграл, т.к. либо хвост весь нулями светится, либо если не отображать нулевые значения там где надо они не показываются. Тем более сразу много других косяков вылазит, условные форрматы по другому думать, модули смотреть - менять. Поэтому я решил так оставить. А какие есть варианты?
...
Рейтинг: 0 / 0
14.06.2007, 09:37:02
    #34593651
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
Можно, конечно не заморачиваться формулу массива написать да и всё!

Что-то вроде этого:
=СУММ(ЕСЛИ($BA$1:$IV$1="";0;ЕСЛИ(МЕСЯЦ(BA$1:$IV$1)<>МЕСЯЦ($E$1);0;ЕСЛИ($BA$3:$IV$3="";0;$BA$3:$IV$3))

Но вчера времени на это потратил довольно много, поэтому хотелось бы узнать какие варианты есть.
...
Рейтинг: 0 / 0
14.06.2007, 10:41:16
    #34593850
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
DeggasadМожно, конечно не заморачиваться формулу массива написать да и всё!

Что-то вроде этого:
=СУММ(ЕСЛИ($BA$1:$IV$1="";0;ЕСЛИ(МЕСЯЦ(BA$1:$IV$1)<>МЕСЯЦ($E$1);0;ЕСЛИ($BA$3:$IV$3="";0;$BA$3:$IV$3))

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

если так не нравятся формулы массива, то засунь след выражения в имена (Вставка-Имя-Присвоить...):

массив1 = ЕСЛИ($BA$1:$IV$1<>"";$BA$1:$IV$1)
массив2 = ЕСЛИ($BA$3:$IV$3<>"";$BA$3:$IV$3)

и используй наздоровье с СУММПРОИЗВ()

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
14.06.2007, 11:27:07
    #34593992
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подменить в массиве пустые строки на 0
KL (XL)

если так не нравятся формулы массива, то засунь след выражения в имена (Вставка-Имя-Присвоить...):

массив1 = ЕСЛИ($BA$1:$IV$1<>"";$BA$1:$IV$1)
массив2 = ЕСЛИ($BA$3:$IV$3<>"";$BA$3:$IV$3)

и используй наздоровье с СУММПРОИЗВ()

KL
[MVP - Microsoft Excel]

Прикольно! Для общего развития и в частности для решения задачи.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подменить в массиве пустые строки на 0 / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]