![]() ![]() |
5.12.2015г. в 16:51ч.
Коментар:
#1
|
|
|
Новак ![]() Група: Потребители Съобщения: 5 Дата на регистрация: 5.12.2015г. Потребител # 24 564 |
Здравейте. След много писане на формули и много четене и аз допрях да търся помощ. МОжеше да пусна снимка ,но не ми позволява системата. Ще го нарисувам с думи ужас - втора редакция . на третата успях --А B C 1 1 X 2 2 3 3 4 4 X 5 5 6 6 X Искам в клетка в колона C , формулата да събира числото от А на същия ред със числото от А намиращо се нагоре при първия Х който се срещне. Пример в клетка С6 формулата трябва да пресметне В6-В4 За тази цел ми трябва формула търсеща за символ Х нагоре по редовете ,спираща се на първия резултат. Използвайки Lookup функция тя дири отгоре надолу- не става. Match пък търси съвпадение ама не и последното. Може да стане с някакъв масив и в него да се дири последния резултат ,но все още не мога да го осмисля как. Това съобщение е било редактирано от tiratron на 5.12.2015г. в 16:56ч. |
|
|
5.12.2015г. в 18:29ч.
Коментар:
#2
|
|
|
Новак ![]() Група: Потребители Съобщения: 5 Дата на регистрация: 5.12.2015г. Потребител # 24 564 |
Ееееех , така става като е недъгава работата. Какво му имаше на сайта postimage, та сте го забранили?
Не можах да сложа една снимка а се мъча като .... Ами грешка имам в обясненията. Примерът е "Пример в клетка С6 формулата трябва да пресметне A6-A4" Или казано с прости думи - как да намеря последния хикс в колоната. Туй е въпроса. Без цикли. Макар че е лесно, но е мизерен метод. Това съобщение е било редактирано от tiratron на 5.12.2015г. в 18:33ч. |
|
|
5.12.2015г. в 22:44ч.
Коментар:
#3
|
|
|
Новак ![]() Група: Потребители Съобщения: 5 Дата на регистрация: 5.12.2015г. Потребител # 24 564 |
Така... формулата вече я намерих - работи.
=OFFSET(А2, MAX(IF(NOT (ISBLANK(B2:B25)), ROW(B2:B25),0))-ROW(А2),0) Намира последната пълна клетка и ми вади съответната стойност в колона А Работи като масив. Сега обаче друга пречка . Задължително му слагам един IF ,който да оставя празна клетката ,ако на същия ред няма записи. Този IF , обаче, не работи добре със масив и като резултат имам #VALUE Някакви идеи как да накарам IF да проработи вътре в масива? |
|
|
5.12.2015г. в 23:19ч.
Коментар:
#4
|
|
|
Новак ![]() Група: Потребители Съобщения: 5 Дата на регистрация: 5.12.2015г. Потребител # 24 564 |
Съжалявам че поствам нови мнения, времето за редакция е малко и изтича
Пуснах Calculation Step и се оказва , че IF не е проблема. Проблема е в момента в който функцията OFFSET трябва да пресметне . Уж всичко и е наред - има си клетка,има си стъпка ,обаче изпада във VALUE. Странно е , защото като махна IF и всичко се смята коректно. Но самият ексел ми показва че OFFSET греши. Даже си преведох IF във форма с която може да работи в масивите. |
|
|
6.12.2015г. в 00:00ч.
Коментар:
#5
|
|
|
Новак ![]() Група: Потребители Съобщения: 5 Дата на регистрация: 5.12.2015г. Потребител # 24 564 |
Отново намерих грешката и не знам защо въобще е грешка това.
Има разлика между двата реда =OFFSET(А2, MAX(IF(NOT (ISBLANK(B2:B25)), ROW(B2:B25),0))-ROW(А2),0 =OFFSET(А2, MAX(IF(NOT (ISBLANK(B2:B25)), ROW(B2:B25),0))-2 ,0) паузата я оставям за по-лесно да се види (по дяволите, оправете го тоя форум. Защо не мога да оставя няколко интервала един след друг??ами няма да има пауза значи) Вторият ред работи. Първият не. При постъпковото калкулиране стойността на ROW(A2) e {2} , което е така. Не знам защо не го признава. Реално цялата формула която пиша е следната =IF(B53<>"";(D53-(OFFSET($D$51;MAX(IF(NOT(ISBLANK($E$52:E52));ROW($E$52:E52);0))-51;0)));"") А2 е сменено със D51 Изумен съм ... даже IF си работи нормално а уж не работеше в масиви.Защо обаче не му хареса ROW(D51) нямам идея. Това съобщение е било редактирано от tiratron на 6.12.2015г. в 00:02ч. |
|
|
![]() ![]() |