Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 17:54 10.07.25 
Компютри и Интернет
   >> Електронни таблици
*Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема Още един въпроснови  
Автор Eжko_ (бодли_дрешко)
Публикувано20.04.10 11:46



Христос възкресе, приятели

Имам още едно питане, ако е възможно, помагайте

В екселска таблица нанасям стойности в клетки - по редове - в ареалаите, примерно:

от A1 до N1 ,
после от A2 до N2,
после от A3 до N3
после от A4 до N4 и т.н.

На всеки ред, обаче, нанасяните стойности не изпълват ареала - примерно, в 1-я ред съм нанесъл 5 стойности -(от A1 до Е1) във 2-я - 8 (от A2 до H2), в 3-я - 14 (максимума - до N3), в 4-я - 10 (от A4 до J4) и т.н. и т.н. Искам - ако е възможно - в следващата на реда клетка - О1, О2, О3, О4 и т.н. - да ми се извлича информация само от последната клетка от съответния ареал - в която има стойност - и към нея да прибавям числото 120.

Благодаря

Наско



Редактирано от Eжko_ на 20.04.10 16:38.



Тема Стана, работатанови [re: Eжko_]  
Автор Eжko_ (бодли_дрешко)
Публикувано21.04.10 10:50



Един приятел ми помогна - това, което ми предостави, работи успешно.

Формулата е:

=INDIRECT(CONCATENATE(CHAR(75+COUNT(L4:Y4));4))+120

Функцията COUNT(L4:Y4) преброява числата в масива L4:Y4.

Преброявайки колко са числата в този масив и изхождайки от предпоставката, че те са плътно подредени от началото му, вече знаем с колко клетки е отместено последното число от първата клетка на масива - Disp. Ако в някоя от клетките има нещо, което е различно от число, формулата ще дава грешен резултат.

Функцията CHAR(64+Disp) преобразува число в буква - Sign. Sign в случая може да бъде буква от L до Y. Ако отместиш края на масива по-надясно от колона Z формулата няма да работи. 64 съответсвтва на колона А, към него добавяме отместването. Т.е. ако нашият масив започва от колона B, числото трябва да е 65. За колона L - това, което на мен лично ми трябва - числото е 75.

Функцията CONCATENATE(Sign;4) обединява буквата Sign със знака 4. Резултатът е дума от порядъка L4-Y4, което е адреса на последната пълна клетка на масива.

Функцията INDIRECT(Adres) връща стойността от клетката, посочена като Adres.

"Обърни внимание", казва накрая моя приятел - "че формулата, която съм ти дал не е универсална. Не можеш да разпъваш или променяш вида и мястото на масива и тя да ти дава верни резултати. Тя работи вярно само в конкретния случай и в никой друг. Ако искаш универсална формула, задачата става доста сложна."

Да му благодарим всички за положеното старание.




Редактирано от Eжko_ на 21.04.10 10:51.



Тема Re: Още един въпроснови [re: Eжko_]  
Автор ql^2/8 (да питам аз..)
Публикувано21.04.10 10:54



Не че съм от разбиращите но смятам че ако в клекта O1 напишеш...

=INDEX(A1:N1;1;COUNT(A1:N1))+120

...може да се получи нещо.. после тая формула я размножи по колона "O"



Тема Re: Още един въпроснови [re: ql^2/8]  
Автор TRN ()
Публикувано22.04.10 07:53



Това е малко по-добро. Дава резултат, дори ако има незапълнени клетки или текстова информация, като ги игнорира.
=INDEX(A1:N1;MATCH(1E+30;A1:N1))+120



Тема Re: Още един въпроснови [re: TRN]  
Автор ql^2/8 (да питам аз..)
Публикувано22.04.10 11:10



Наистина предложеното от TRN работи!..
Чудя се защо според документацията на Excel би трябвало данните да са във възходящ ред, за да работи коректно. Очевидно достатъчно е да няма стойност по-голяма от търсената (1Е+30 е доста голяма) за да стигне до края и да върне последния числов елемент.



Тема При мен не вървинови [re: TRN]  
Автор Eжko_ (бодли_дрешко)
Публикувано22.04.10 12:19



Прочених формулата, понеже трябва да прибавя числото 120 към всяко друго число от 1 до 60, без 60. По точно казано, ако се случи числото да е 60, търсеният резултат трабвя да е =120, а това може да се случи, като се прибави още 60.

=IF(INDIRECT(CONCATENATE(CHAR(64+COUNT(A1:N1)),1))=60);+60;INDIRECT(CONCATENATE(CHAR(64+COUNT(A1:N1)),1))+120

Този вариант при мен работи, както и предишният по-горе.

Вашият, за съжаление, не върви при мен, и не знам каква е причината. Видимо е по-простичък и ще улесни копирането на формулата в следващите клетки. В моя вариант, при копиране адреса на масива се променя автоматично, но не и номера на реда, който в случая е 1 (в червеното)




Тема Re: При мен не вървинови [re: Eжko_]  
Автор ql^2/8 (да питам аз..)
Публикувано22.04.10 18:16



Надявам се, че не си направил каша със скобите, а също и със разделителите, както си го написал тук...

Всеки от символите ";" и "," може да е разделител (list separator) но не и двата едновременно.
И все пак ако искаш да получиш 120 ако проверката излезе трябва да напишеш 120 (а не +60)...



Тема Re: При мен не върви [re: ql^2/8]  
Автор Eжko_ (бодли_дрешко)
Публикувано23.04.10 18:58



В отговор на:

Надявам се, че не си направил каша със скобите, а също и със разделителите, както си го написал тук...




Не разбирам, какво съм направил - онова, което представих, работи и ми върши чудесна работа - ето го пак:

=IF(INDIRECT(CONCATENATE(CHAR(64+COUNT(A1:N1)),1))=60);+60;INDIRECT(CONCATENATE(CHAR(64+COUNT(A1:N1)),1))+120

То есть: там, където последната клетка от масива има стойност, = на 60, към нея се прибавя 60, за да се получи 120. Там, където стойността е различна от 60, се прибавя 120.

Формулата на TRN копирах едно към едно - пробвах и с разделител "," - пак същото.




Тема Благодарение на вас, намерих най-добрият вариантнови [re: Eжko_]  
Автор Eжko_ (бодли_дрешко)
Публикувано31.05.10 15:12



=IF(INDEX(A1:N1,1,COUNT(A1:N1))=60,"120",INDEX(A1:N1,1,COUNT(A1:N1))+120




Тема още по-доброто е и това:нови [re: Eжko_]  
Автор Eжko_ (бодли_дрешко)
Публикувано31.05.10 15:18



=IF(INDEX(L8:Y8,1,COUNT(L8:Y8))=60,"120",INDEX(L8:Y8,MATCH(1E+30,L8:Y8))+120





Страници по тази тема: 1 | 2 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.