» »

Računanje vrednosti iz tabele

Računanje vrednosti iz tabele

KoMit ::

Imam npr. naslednjo tabelo:
......A.....B.....C.....D
I.....4.....6.....3.....0
II....5.....0.....0.....5
III...3.....2.....0.....3
IV....0.....5.....3.....4
V.....0.....0.....6.....0
VI....5.....4.....4.....2

Iz te tabele bi rad izračunal največjo absolutno vrednost ob pogojih npr.:
- iz vsake vrstice lahko vzame samo eno vrednost (eno iz I, eno iz II,... eno iz VI),
- upoštevana mora biti vrednost iz vsake vrstice,
- iz stolpca A mora izbrati dve vrednosti,
- iz stolpca B mora izbrati dve vrednosti,
- iz stolpca C mora izbrati eno vrednost,
- iz stolpca D mora izbrati eno vrednost.

Poleg izračunane največje vrednosti bi potreboval tudi podatek katere vrednosti so bile izbrane (npr IA, IID,...).

Tabela lahko ima poljubno število stolpcev in vrstic.

Ali obstaja kakšen program, ki bi mi omogočal tak izračun?
  • spremenil: KoMit ()

joze67 ::

Največjo abs vrednost česa? Kaj bi bil rezultat pri tej tabeli?

KoMit ::

......A.....B.....C.....D
I.....4.....6.....3.....0
II....5.....0.....0.....5
III...3.....2.....0.....3
IV....0.....5.....3.....4
V.....0.....0.....6.....0
VI....5.....4.....4.....2

Ena od rešitev je:
6+5+3+5+6+5=30

Rad bi izračunal največjo vrednost (izkoristek) ob zgoraj navedenih pogojih.
Objekt I npr. daje za pozicijo A izkoristek 4, za pozicijo B izkoristek 6,...
Upam, da je sedaj dovolj jasno napisano.

Zgodovina sprememb…

  • spremenil: KoMit ()

win64 ::

ta dva pogoja sta nerazumna:
- iz stolpcev A in B mora izbrati dve vrednosti,
- iz stolpcev C in D mora izbrati eno vrednost.
si mislil napisati VSAJ dve vrednost?

KoMit ::

Bom bolj natančno napisal:
- iz stolpca A mora izbrati dve vrednosti,
- iz stolpca B mora izbrati dve vrednosti,
- iz stolpca C mora izbrati eno vrednost,
- iz stolpca D mora izbrati eno vrednost.

Sem tudi v prvem sporočilu popravil.

joze67 ::

Še vedno ni v redu. Kaj pa, če je vrstic več kot 6?

No, če so pogoji na vsaj (2xA, 2xB, 1xC, 1xD, ostalo poljubno), potem ti rešitev izračuna tudi Excel, ali pa zanka v Visual nekaj. Če pa so ti pogoji vezani na # vrstic ... potem stvar zanesljivo ni težja kot 0-1 (oz. celoštevilsko) linearno programiranje, za kar obstajajo variante (lp_solve in podobno).

KoMit ::

Bom napisal kar primer, ki se pojavi največkrat in sicer za točno določeno število vrstic:
- 10 vrstic (I, II, III,...X),
- 4 stolpce (A, B, C, D).

Iz te tabele mora izračunati največjo vrednost ob pogojih:
- iz stolpca A mora izbrati točno tri vrednosti,
- iz stolpca B mora izbrati točno tri vrednosti,
- iz stolpca C mora izbrati točno dve vrednosti,
- iz stolpca D mora izbrati točno dve vrednosti ter
- iz vsake vrstice lahko izbere samo eno vrednost.

Če se da to narediti v Excelu s katerimi ukazi oz. funkcijami to naredim?
Če bom to lahko naredil, bom lahko tudi za drugačno število vrstic to priredil.

No, če so pogoji na vsaj (2xA, 2xB, 1xC, 1xD, ostalo poljubno), potem ti rešitev izračuna tudi Excel, ali pa zanka v Visual nekaj.

Pogoji v tem primeru so bili fiksni 2xA, 2xB, 1xC, 1xD z zahtevo, da je lahko samo ena vrednost iz vsake vrstice.

joze67 ::

Rešitev v Excel-u bi bila malo nerodna, a bi šla.
Uporabiš pa dinamično programiranje.
Za vsako vrstico moraš izračunati 4x4x3x3=144 vrednosti - v tem je tudi vsa nerodnost, več kot je vrstic, več je dela. Zato samo osnutek: notacija (1,2,1,1) pomeni, da potrebujem še en A, 2 B, 1 C in 1 D. Na zadnji vrstici znam izračunati (1,0,0,0), ..., (0,0,0,1), ker je vsak abs. vrednost elementa v zadnji vrsti na tem mestu. V višjih vrsticah element (i,j,k,l) izračunaš tako, da poiščeš max po (i-1,j,k,l)+|A|, (i,j-1,k,l)+|B|, ..., (i,j,k,l-1)+|D|, kjer te četvorke jemlješ iz naslednje vrstice, A,B,C in D pa iz trenutne. Rezultat je, mislim, četvorka (4,4,3,3) v prvi vrstici. Ko enkrat nastaviš formule v predzadnji vrstici (jih je samo 144), skopiraš navzgor :-)

Ker pa ti problem "diha" s številom vrstic (če dodaš še eno vrsto, so šle formule v 3pm), ta pristop ni ne vem kako uporaben.

ta_ki_tke ::

- 10 vrstic (I, II, III,...X),
- 4 stolpce (A, B, C, D).
V Excelu lahko kvečjemu izračunamo, koliko je vseh kombinacij pri danih pogojih (za navedeni primer jih je npr. 25200). Da bi pa lahko izračunal tudi vrednost posamezne kombinacije in potem izbral najboljšo, bi jih moral prej tudi vse izpisati, tega pa po mojem Excel nima, tako da bo najbrž treba napisati kar poseben program.

joze67 ::

Da se, da. Samo praktično ni.

excel

Tukaj je samo polovica, samo izračuna rešitev (za manjši primer). Še eno tabelo bi potrebovali, narejeno po enakem principu, da bi si zapomnili (izračunali), katero vrednost smo vzeli iz vrstice (za vsako celico bi primerjal argumente max funkcije z izračunano vrednostjo in si zapomnil pač prvega enakega, ali zadnjega enakega)

KoMit ::

Opa. Hvala.

Ta tabela pa presega moje znanje Excela.

Za te manjše tabele mi bo pa vsekakor prišla prav. Tudi, če imam manj vrstic mi pride prav. V tisto vrstico napišem npr.1000 in iz rešitve odštejem 1000 in imam vrednost brez te vrstice. Se bom malo poglobil v to zadevo. Upam, da mi bo kaj jasno.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

pomoč excel (strani: 1 2 )

Oddelek: Programska oprema
587929 (3506) -JM-
»

EXCEL vgnezdenje dveh vlookup funkcij?

Oddelek: Programska oprema
101885 (1584) prtenjam
»

excel help

Oddelek: Pomoč in nasveti
152289 (2054) klemenSLO
»

Excel

Oddelek: Programska oprema
151448 (1097) karafeka
»

[excel] kako dobit ?

Oddelek: Programska oprema
51487 (1439) jky

Več podobnih tem