|
|
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
Я по сути для себя решение уже придумал, но решил, иожет есть и лучше варианты. Есть массив состоящий из цифр и строк типа ="" необходимо вернуть массив, содержащий вместо "" - 0 Цифры в массиве есть как положительные, так и отрицательные, как с дробной частью, так и без оной. Всё это в формуле Exel мой вариант С указанной точностью: =ЗНАЧЕН(ТЕКСТ(A1:A100;"0,0####")&0) С точностью исходных данных =ЗНАЧЕН(ПОДСТАВИТЬ(A1:A100&",0";",";"";2)) Буду благодарен за любую помощь, в том числе и за указание на возможные ошибки. То что в региональных параметрах разделитель запятая должна быть понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:01:34 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
DeggasadЯ по сути для себя решение уже придумал, но решил, иожет есть и лучше варианты. Есть массив состоящий из цифр и строк типа ="" необходимо вернуть массив, содержащий вместо "" - 0 Цифры в массиве есть как положительные, так и отрицательные, как с дробной частью, так и без оной. Всё это в формуле Exel мой вариант С указанной точностью: =ЗНАЧЕН(ТЕКСТ(A1:A100;"0,0####")&0) С точностью исходных данных =ЗНАЧЕН(ПОДСТАВИТЬ(A1:A100&",0";",";"";2)) Буду благодарен за любую помощь, в том числе и за указание на возможные ошибки. То что в региональных параметрах разделитель запятая должна быть понятно. если числа не ввиде текста, то наверное лучше и быстрее так (но может я чего не понял): =ЕСЛИ(A1:A100<>"";A1:A100;0) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 19:52:50 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
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)) Не слишком ли я замудрил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 20:08:52 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
А не лучше ли поправить формулы возвращающие ="" ? ;-) Есть конечно решения для твоей задачи, но это будет "Пиррова победа", т.к. потери в скорости будут значительными, да и летучесть прибавится :-( KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 23:09:10 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
KL (XL)А не лучше ли поправить формулы возвращающие ="" ? ;-) Есть конечно решения для твоей задачи, но это будет "Пиррова победа", т.к. потери в скорости будут значительными, да и летучесть прибавится :-( KL [MVP - Microsoft Excel] Формул ссылающихся на этот диапазон не так уж и много (порядка десятка, может два десятка). Тем более уже очень много сделано под такой вариант, я было хотел поменять на нули сначала, но в красоте сразу проиграл, т.к. либо хвост весь нулями светится, либо если не отображать нулевые значения там где надо они не показываются. Тем более сразу много других косяков вылазит, условные форрматы по другому думать, модули смотреть - менять. Поэтому я решил так оставить. А какие есть варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 07:51:55 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
Можно, конечно не заморачиваться формулу массива написать да и всё! Что-то вроде этого: =СУММ(ЕСЛИ($BA$1:$IV$1="";0;ЕСЛИ(МЕСЯЦ(BA$1:$IV$1)<>МЕСЯЦ($E$1);0;ЕСЛИ($BA$3:$IV$3="";0;$BA$3:$IV$3)) Но вчера времени на это потратил довольно много, поэтому хотелось бы узнать какие варианты есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 09:37:02 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
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] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 10:41:16 |
|
||
|
Подменить в массиве пустые строки на 0
|
|||
|---|---|---|---|
|
#18+
KL (XL) если так не нравятся формулы массива, то засунь след выражения в имена (Вставка-Имя-Присвоить...): массив1 = ЕСЛИ($BA$1:$IV$1<>"";$BA$1:$IV$1) массив2 = ЕСЛИ($BA$3:$IV$3<>"";$BA$3:$IV$3) и используй наздоровье с СУММПРОИЗВ() KL [MVP - Microsoft Excel] Прикольно! Для общего развития и в частности для решения задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 11:27:07 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34593083&tid=2182789]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 375ms |

| 0 / 0 |
