Невъзможна формула

15 отговора 576 прегледа
#1

Невъзможна формула

Здравейте,
От 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).

Така мислия че идеята е ясна.
Благодаря на всички.

Отговор
в отговор на kras4ik #2

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)

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

Отговор
в отговор на f(x)dx #3

Re: Невъзможна формула

Здравей,
Значи всичко което си написал е така. Проблема (което отчитам като мой пропуск в обясненията) е че ти си направил алгоритъма за изчисление на 1 клетка. Ако искаш обаче да го приложиш за 1000 клетки то за всяка последващя клетка трябва да правиш по една помощна колона, която да сумираш. Ето това е проблема в действителност, който ме затруднява и не мога да измисля.
Иначе това с алгебричната прогресия е много елегантно решение. Аз го направих, но малко по сложно и тромаво.
Така че въпроса все още остава отворен.
Поздрави!

Отговор
в отговор на kras4ik #4

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, но се оказва много дълга и Ексел отказва да я приеме.

Отговор
в отговор на kras4ik #5

Re: Невъзможна формула

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

Отговор
в отговор на kras4ik #6

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 се потвърждава при всяка редакция на формулата.

Успех и пиши дали върши работа.

Отговор
в отговор на zhitov #7

Re: Невъзможна формула

Корекция на горната формула, за да работи в клетка C10:

{=SUM(OFFSET(C10;(-1*B1+1);-2;B1;1)*ROW(OFFSET(B1;0;1;B1;1))/((1+B1)/2*B1))}

Тъй като ползвам offset, формулата от предишния ми пост ще работи коректно само в клетка "А16"

Отговор
в отговор на f(x)dx #8

Re: Невъзможна формула

Най-точно е да напиша формулата, но ми е малко сложно тука, но все пак ще се опитам:
Сума (Рi*(i/k);
Р - стойността в клетките по колона А;
i - индекс, който се движи от 1 до n
к=сумата от 1 до n,
n - цяло число, което е променливо и да речем стои в В1
По колона С трябва да се приложи тази формула (във всички клетки до които има стойности по колона А, а това са доста клетки).
Ако се промени стойността на n, което е клетка В1 в случая формулата да може да прихваща новата стойност и да коригира изчислението. или това значи ако имаме 5 стойност на n на смята за 5 клетки ако го сменим на 10 да смята 10 клетки по описаната формула.
Сега е по пълно описанието не знам дали е по-ясно.
Сега ще погледна останалите какво са написали да видя дали става по техния начин и ако става ще кажа по-после.
Благодаря!

Отговор
в отговор на zhitov #9

Re: Невъзможна формула

Здравей zhitov
Формулата която си дал работи перфекто. Точно това е резултата който търсех. Направо гениално. Все още не мога да разбера как точно работи, но проверката показа че работи. сега трябва да я разучавам, че не обичам нещата да ми са черна кутия:)
Благодаря отново на всички които се включиха в дискусията. Когато комуникрам с Вас и виждам колко много има да уча още.

Отговор
в отговор на kras4ik #10

Re: Невъзможна формула

Радвам се, че съм успял да помогна. Трябва само да имаш предвид, че използването на Array Formulas върху големи таблици може силно да забави работата на ексела - може да се наложи да минеш на ръчно изчисление (Tools-> Options->Calculation->Manual).

Аз пък благодаря на f(x)dx за опреснителния курс по аритметични прогресии, че училищния курс по математика ми се губи малко назад във времето...

Редактирано от zhitov на

Отговор
в отговор на zhitov #11

Re: Невъзможна формула

ами какво да ви кажа и на двамата. по принцип това е форум за ексел и инфото, което си обменяме е на добра воля и безплатно.
за уроци по математика май ще трябва да черпите

Отговор
в отговор на zhitov #12

Re: Невъзможна формула

Здравей zhitov,
От вчера съм в тоя форум и много се кефя. Благодаря ти за тази страхотна функция, която предложи - досега не бях я забелязал (липсва ми печатно издание на подробен справочник за Ексел, а четенето от екран много ми затормозява очите). Мисля, че може да ми свърши ценна работа в някои таблици. Бих се радвал, ако някой ми предложи проверено (а не разводнено) издание на пълен справочник за функциите (не за макросите) в Ексел.

Отговор
в отговор на plavy #13

Re: Невъзможна формула

Аз ползвам Excel 2003 Bible от John Walkenbach, на английски (уточнявам, защото не съм ползвал българското издание - много полезни иначе книги са развалени с калпав превод).
Нещата са представени с конкретни примери - настройки на ексел, формули, функции и т.н. Само да имаше кой да ги чете по-подробно...
А печатен справочник с функциите на ексел и на мен не ми е попадал.

Отговор
в отговор на f(x)dx #14

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))))}

върши същата работа

Отговор
в отговор на zhitov #15

Re: Невъзможна формула

о дааааа, пътища до Рим много
за това го харесвам ексел
изглежда и аз трябва да черпя
юая,е3уиш33

а това последното го написа првата производна на f(x). тя е само на осем месеца, но проявява голям интерес към клавиат юлрчв0д
з

Отговор
в отговор на f(x)dx #16

Re: Невъзможна формула

"првата производна на f(x)"


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

.xls
Отговор