Невъзможна формула
15 отговора
576 прегледа
Невъзможна формула
Здравейте,
От 2 дена се мъча с тая формула и вече не издържам. Ако някои има някаква идея ще му бъда благодарен ако сподели.
По колона А са данните.
В1 е клетката в която се задават цели числа и обозначава броя на клетките които се използват в изчислението.
Ако в В1 е написано 5
Значи в С10 се изчислява следното
=A10*(5/15)+A9*(4/15)+A8*(3/15)+A7*(2/15)+A6*(1/15)
или започвайки от А10 назад се сумират 5 клетки всяка коригирана с тегло като на А10 теглото е 5/15(Стойността в В1 разделена на сумата от 1 до В1), в А9 теглото е 4/15 и така до 1/15.
Сега ако в В1 се промени числото на 7 да може да почне да смята в С10
=A10*(7/28)+A9*(6/28)+A8*(5/28)+A7*(4/28)+A6*(3/28)+А5*(2/28)+А4*(1/28).
Така мислия че идеята е ясна.
Благодаря на всички.
От 2 дена се мъча с тая формула и вече не издържам. Ако някои има някаква идея ще му бъда благодарен ако сподели.
По колона А са данните.
В1 е клетката в която се задават цели числа и обозначава броя на клетките които се използват в изчислението.
Ако в В1 е написано 5
Значи в С10 се изчислява следното
=A10*(5/15)+A9*(4/15)+A8*(3/15)+A7*(2/15)+A6*(1/15)
или започвайки от А10 назад се сумират 5 клетки всяка коригирана с тегло като на А10 теглото е 5/15(Стойността в В1 разделена на сумата от 1 до В1), в А9 теглото е 4/15 и така до 1/15.
Сега ако в В1 се промени числото на 7 да може да почне да смята в С10
=A10*(7/28)+A9*(6/28)+A8*(5/28)+A7*(4/28)+A6*(3/28)+А5*(2/28)+А4*(1/28).
Така мислия че идеята е ясна.
Благодаря на всички.
Re: Невъзможна формула
здрасти,
Налага се да те върна в 9-10 клас, когато учихме за аритметичните прогресии. Аритметична прогресия значи е редица от числа, в която всяко число се получава като към предходното се добави едно и също число. Това едно и също число се нарича "разлика на аритметичната прогресия" и обикновено се бележи с d. Аритметичната прогресия има първи член (А1), последен член (Аn) и брой на числата в редицата (N). Сумата на числата от аритметичната прогресия се означава с S и си изчислява по формулата:
(S = [(A1+An)/2]*N)
Съжалявам, ако кратката ми лекцийка ти се стори скучна или обидна, но просто исках да ти кажа, че всяко цяло число може да се разглежда като последен член на аритметична прогресия с първи член А1=1, разлика d=1 и брой на числата в редицата, равен на самото число.
В такъв случай сумата на числата от 1 до В1 в твоя пример може да се изчисли по горната формулка. Аз за удобство го направих в клетка С1, където написах следната формула: =((1+B1)/2)*B1
Дотук сме решили половината от твоята задачка. Както се вижда, явно има смисъл от математиката в училище
Втората половина, обаче малко ме озадачава. В смисъл, че така както го искаш ми е неясно, но ето какво направих все пак:
В клетка В2 въведох формулата =A2*(IF($B$1-8<0;0;$B$1-8)/$C$1)
В клетка В3: (=A3*(IF($B$1-7<0;0;$B$1-7)/$C$1)
Във В4: =A4*(IF($B$1-6<0;0;$B$1-6)/$C$1)
и така нататък до клетка В10: =A10*(IF($B$1<0;0;$B$1)/$C$1)
най-накрая в клетка С10 просто сумирах: =SUM(B2:B10)
Все пак у мен остава съмнението, че не точно това ти трябва, но се надявам да съм помогнал. Ако има нещо - пиши
Налага се да те върна в 9-10 клас, когато учихме за аритметичните прогресии. Аритметична прогресия значи е редица от числа, в която всяко число се получава като към предходното се добави едно и също число. Това едно и също число се нарича "разлика на аритметичната прогресия" и обикновено се бележи с d. Аритметичната прогресия има първи член (А1), последен член (Аn) и брой на числата в редицата (N). Сумата на числата от аритметичната прогресия се означава с S и си изчислява по формулата:
(S = [(A1+An)/2]*N)
Съжалявам, ако кратката ми лекцийка ти се стори скучна или обидна, но просто исках да ти кажа, че всяко цяло число може да се разглежда като последен член на аритметична прогресия с първи член А1=1, разлика d=1 и брой на числата в редицата, равен на самото число.
В такъв случай сумата на числата от 1 до В1 в твоя пример може да се изчисли по горната формулка. Аз за удобство го направих в клетка С1, където написах следната формула: =((1+B1)/2)*B1
Дотук сме решили половината от твоята задачка. Както се вижда, явно има смисъл от математиката в училище
Втората половина, обаче малко ме озадачава. В смисъл, че така както го искаш ми е неясно, но ето какво направих все пак:
В клетка В2 въведох формулата =A2*(IF($B$1-8<0;0;$B$1-8)/$C$1)
В клетка В3: (=A3*(IF($B$1-7<0;0;$B$1-7)/$C$1)
Във В4: =A4*(IF($B$1-6<0;0;$B$1-6)/$C$1)
и така нататък до клетка В10: =A10*(IF($B$1<0;0;$B$1)/$C$1)
най-накрая в клетка С10 просто сумирах: =SUM(B2:B10)
Все пак у мен остава съмнението, че не точно това ти трябва, но се надявам да съм помогнал. Ако има нещо - пиши
Re: Невъзможна формула
Здравей,
Значи всичко което си написал е така. Проблема (което отчитам като мой пропуск в обясненията) е че ти си направил алгоритъма за изчисление на 1 клетка. Ако искаш обаче да го приложиш за 1000 клетки то за всяка последващя клетка трябва да правиш по една помощна колона, която да сумираш. Ето това е проблема в действителност, който ме затруднява и не мога да измисля.
Иначе това с алгебричната прогресия е много елегантно решение. Аз го направих, но малко по сложно и тромаво.
Така че въпроса все още остава отворен.
Поздрави!
Значи всичко което си написал е така. Проблема (което отчитам като мой пропуск в обясненията) е че ти си направил алгоритъма за изчисление на 1 клетка. Ако искаш обаче да го приложиш за 1000 клетки то за всяка последващя клетка трябва да правиш по една помощна колона, която да сумираш. Ето това е проблема в действителност, който ме затруднява и не мога да измисля.
Иначе това с алгебричната прогресия е много елегантно решение. Аз го направих, но малко по сложно и тромаво.
Така че въпроса все още остава отворен.
Поздрави!
Re: Невъзможна формула
Аз направих така: В клетка А1 записвам входящата стойност с най- голямо тегло, в А2 следващата и т. н. до Ах, в колона А.
В кл. В1 - по задание броя на степените (събираемите).
В колона Д1, Д2, .. Дх - събираемите по формулата
=A1*($B$1+1-ROW(A1))/($B$1*($B$1+1)/2), която от Д1 се копира надолу
с относително адресирани редове, до Дх.
В кл. С10 - по задание - търсената сума по формулата:
=SUMIF(D1:D10;">0";D1:D10) - тук областта всъщност трябва да се
направи Д1...Дх ! Във всяка колона след А можем да имаме брой коефициенти,
(вместо само в В1), сума (вместо само в С10) и под тях изчислени събираемите,
релативни на входните числа. Опитах се да направя единствена формула в С10, но се оказва много дълга и Ексел отказва да я приеме.
В кл. В1 - по задание броя на степените (събираемите).
В колона Д1, Д2, .. Дх - събираемите по формулата
=A1*($B$1+1-ROW(A1))/($B$1*($B$1+1)/2), която от Д1 се копира надолу
с относително адресирани редове, до Дх.
В кл. С10 - по задание - търсената сума по формулата:
=SUMIF(D1:D10;">0";D1:D10) - тук областта всъщност трябва да се
направи Д1...Дх ! Във всяка колона след А можем да имаме брой коефициенти,
(вместо само в В1), сума (вместо само в С10) и под тях изчислени събираемите,
релативни на входните числа. Опитах се да направя единствена формула в С10, но се оказва много дълга и Ексел отказва да я приеме.
Re: Невъзможна формула
ами виж сега, ако искаш да затворим въпроса възможно най-скоро, вземи обясни какво точно искаш да направиш и какъв проблем искаш да решиш с това изчисление. Възможно е например въобще да не се налага да правиш тази формула, а нещо друго.
Re: Невъзможна формула
Здрасти!
Ако правилно съм разбрал какво искаш, май няма да минеш без т.нар. Array Formula.
Мисля че следната формула е това, което ти трябва:
{=SUM(OFFSET(A16;-1*B1;0;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/((1+B1)/2*B1))}
Копирай примера, без фигурните скоби. "A16" се замества с асреса на клетката, в която пействаш формулата. Потвърждава се с Ctrl+Shift+Enter, за да я възприеме ексела като Array Formula, а не като обикновена формула. Пак с Ctrl+Shift+Enter се потвърждава при всяка редакция на формулата.
Успех и пиши дали върши работа.
Ако правилно съм разбрал какво искаш, май няма да минеш без т.нар. Array Formula.
Мисля че следната формула е това, което ти трябва:
{=SUM(OFFSET(A16;-1*B1;0;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/((1+B1)/2*B1))}
Копирай примера, без фигурните скоби. "A16" се замества с асреса на клетката, в която пействаш формулата. Потвърждава се с Ctrl+Shift+Enter, за да я възприеме ексела като Array Formula, а не като обикновена формула. Пак с Ctrl+Shift+Enter се потвърждава при всяка редакция на формулата.
Успех и пиши дали върши работа.
Re: Невъзможна формула
Корекция на горната формула, за да работи в клетка C10:
{=SUM(OFFSET(C10;(-1*B1+1);-2;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/((1+B1)/2*B1))}
Тъй като ползвам offset, формулата от предишния ми пост ще работи коректно само в клетка "А16"
{=SUM(OFFSET(C10;(-1*B1+1);-2;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/((1+B1)/2*B1))}
Тъй като ползвам offset, формулата от предишния ми пост ще работи коректно само в клетка "А16"
Re: Невъзможна формула
Най-точно е да напиша формулата, но ми е малко сложно тука, но все пак ще се опитам:
Сума (Рi*(i/k);
Р - стойността в клетките по колона А;
i - индекс, който се движи от 1 до n
к=сумата от 1 до n,
n - цяло число, което е променливо и да речем стои в В1
По колона С трябва да се приложи тази формула (във всички клетки до които има стойности по колона А, а това са доста клетки).
Ако се промени стойността на n, което е клетка В1 в случая формулата да може да прихваща новата стойност и да коригира изчислението. или това значи ако имаме 5 стойност на n на смята за 5 клетки ако го сменим на 10 да смята 10 клетки по описаната формула.
Сега е по пълно описанието не знам дали е по-ясно.
Сега ще погледна останалите какво са написали да видя дали става по техния начин и ако става ще кажа по-после.
Благодаря!
Сума (Рi*(i/k);
Р - стойността в клетките по колона А;
i - индекс, който се движи от 1 до n
к=сумата от 1 до n,
n - цяло число, което е променливо и да речем стои в В1
По колона С трябва да се приложи тази формула (във всички клетки до които има стойности по колона А, а това са доста клетки).
Ако се промени стойността на n, което е клетка В1 в случая формулата да може да прихваща новата стойност и да коригира изчислението. или това значи ако имаме 5 стойност на n на смята за 5 клетки ако го сменим на 10 да смята 10 клетки по описаната формула.
Сега е по пълно описанието не знам дали е по-ясно.
Сега ще погледна останалите какво са написали да видя дали става по техния начин и ако става ще кажа по-после.
Благодаря!
Re: Невъзможна формула
Здравей zhitov
Формулата която си дал работи перфекто. Точно това е резултата който търсех. Направо гениално. Все още не мога да разбера как точно работи, но проверката показа че работи. сега трябва да я разучавам, че не обичам нещата да ми са черна кутия:)
Благодаря отново на всички които се включиха в дискусията. Когато комуникрам с Вас и виждам колко много има да уча още.
Формулата която си дал работи перфекто. Точно това е резултата който търсех. Направо гениално. Все още не мога да разбера как точно работи, но проверката показа че работи. сега трябва да я разучавам, че не обичам нещата да ми са черна кутия:)
Благодаря отново на всички които се включиха в дискусията. Когато комуникрам с Вас и виждам колко много има да уча още.
Re: Невъзможна формула
Радвам се, че съм успял да помогна. Трябва само да имаш предвид, че използването на Array Formulas върху големи таблици може силно да забави работата на ексела - може да се наложи да минеш на ръчно изчисление (Tools-> Options->Calculation->Manual).
Аз пък благодаря на f(x)dx за опреснителния курс по аритметични прогресии, че училищния курс по математика ми се губи малко назад във времето...
Аз пък благодаря на f(x)dx за опреснителния курс по аритметични прогресии, че училищния курс по математика ми се губи малко назад във времето...
Редактирано от zhitov на
Re: Невъзможна формула
ами какво да ви кажа и на двамата. по принцип това е форум за ексел и инфото, което си обменяме е на добра воля и безплатно.
за уроци по математика май ще трябва да черпите
за уроци по математика май ще трябва да черпите
Re: Невъзможна формула
Здравей zhitov,
От вчера съм в тоя форум и много се кефя. Благодаря ти за тази страхотна функция, която предложи - досега не бях я забелязал (липсва ми печатно издание на подробен справочник за Ексел, а четенето от екран много ми затормозява очите). Мисля, че може да ми свърши ценна работа в някои таблици. Бих се радвал, ако някой ми предложи проверено (а не разводнено) издание на пълен справочник за функциите (не за макросите) в Ексел.
От вчера съм в тоя форум и много се кефя. Благодаря ти за тази страхотна функция, която предложи - досега не бях я забелязал (липсва ми печатно издание на подробен справочник за Ексел, а четенето от екран много ми затормозява очите). Мисля, че може да ми свърши ценна работа в някои таблици. Бих се радвал, ако някой ми предложи проверено (а не разводнено) издание на пълен справочник за функциите (не за макросите) в Ексел.
Re: Невъзможна формула
Аз ползвам Excel 2003 Bible от John Walkenbach, на английски (уточнявам, защото не съм ползвал българското издание - много полезни иначе книги са развалени с калпав превод).
Нещата са представени с конкретни примери - настройки на ексел, формули, функции и т.н. Само да имаше кой да ги чете по-подробно...
А печатен справочник с функциите на ексел и на мен не ми е попадал.
Нещата са представени с конкретни примери - настройки на ексел, формули, функции и т.н. Само да имаше кой да ги чете по-подробно...
А печатен справочник с функциите на ексел и на мен не ми е попадал.
Re: Невъзможна формула
Нямаш проблем с черпенето, но за да не се възгордяваш много ще ти кажа, че следната формула:
{=SUM(OFFSET(C10;(-1*B1+1);-2;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/SUM(ROW(OFFSET(B1;0;1;B1;1))))}
върши същата работа
{=SUM(OFFSET(C10;(-1*B1+1);-2;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/SUM(ROW(OFFSET(B1;0;1;B1;1))))}
върши същата работа
Re: Невъзможна формула
о дааааа, пътища до Рим много
за това го харесвам ексел
изглежда и аз трябва да черпя
юая,е3уиш33
а това последното го написа првата производна на f(x). тя е само на осем месеца, но проявява голям интерес към клавиат юлрчв0д
з
за това го харесвам ексел
изглежда и аз трябва да черпя
юая,е3уиш33
а това последното го написа првата производна на f(x). тя е само на осем месеца, но проявява голям интерес към клавиат юлрчв0д
з
Re: Невъзможна формула
"првата производна на f(x)"




да ти е жива и здрава и много да слуша

.xls
да ти е жива и здрава и много да слуша
.xls