Just nu i M3-nätverket
Gå till innehåll

Villkor i excel!


Tobias434343

Rekommendera Poster

Nu börjar det bli lite avancerat ...

 

Men säg att:

- en artikel har formen av en låda (dvs ett rätblock) med sidorna a1, a2, a3

- en lagerplats är också en låda med sidorna l1, l2, l3

- alla artiklar packas med samma orientering, dvs har samma sidor åt samma håll

 

Då går det att stapla artiklarna på sex olika sätt och det maximala antalet artiklar som kan packas i en lagerplats ges av:

=max[

int(l1/a1)*int(l2/a2)*int(l3/a3),

int(l1/a1)*int(l2/a3)*int(l3/a2),

int(l1/a2)*int(l2/a3)*int(l3/a1),

int(l1/a2)*int(l2/a1)*int(l3/a3),

int(l1/a3)*int(l2/a1)*int(l3/a2),

int(l1/a3)*int(l2/a2)*int(l3/a1)]

 

Detta ger åtminstone en uppskattning av vad som är möjligt och fångar mitt kub-exempel ovan. Det kan dock finnas smartare sätt att stapla genom vrida och vända på enskilda artiklar. Vill du ta hänsyn till detta får du ett betydligt mer komplext problem som troligen måste lösas med någon form av optimeringsalgoritm. (Påminner om ett klassiskt "kappsäcks"-problem.)

 

mvh

/Johan

 

Länk till kommentar
Dela på andra webbplatser

Tja, det beror på hur du vill jobba med ditt ark - vad som är indata och utdata. Jag har fortfarande inte klart för mig var antalet av en viss artikel kommer in. Är det förutbestämt, eller bestämmer du det och vill att XL ger förslag? Om det senare är fallet går det kanske att stoppa ett antal artiklar i en viss lagerplats och fler artiklar i en annan, vad bestämmer vilket som är bäst?

 

/Johan

 

Länk till kommentar
Dela på andra webbplatser

Antalet av en viss artikel är förutbestämt. Så det jag gör är aatt klista in informationen artnr, mått och antal, för att utifrån detta bestämma lagerplatstyp. ETT artnr EN plats! En artikel kan alltså inte ligga på flera lagerplatser.

 

MVH

 

Tobias

 

Länk till kommentar
Dela på andra webbplatser

Hej igen,

 

Nu ger åtminstone jag upp att bara använda formler ...

 

Följande funktion har inparameterarna:

 

- en lista med dimensioner för lagerplatser (3 värden per rad)

- en rad med artikeldimensionerna (också 3 värden)

- antalet artiklar

 

och returnerar radnumret i listan för den lagerplats där alla artiklarna får plats med minsta spillutrymme.

 

Funktionen bygger på resonomanget i mitt tidigare inlägg och beroende på lagerplatsernas och artikelns geometrier kan kanske artiklarna packas smartare i en mindre lagerplats, men du får åtminstone en garanterad plats.

 

(Funktionen klistras in i en VBA-modul.)

Function Lagerplats(l_dim As Range, a_dim As Range, a_antal As Integer)

 

'Återställning

Lagerplats = 0

With Application.WorksheetFunction

optVolym = .Large(l_dim, 1) * .Large(l_dim, 2) * .Large(l_dim, 3)

End With

 

'Artikeldimensioner

a = a_dim.Cells(1, 1)

b = a_dim.Cells(1, 2)

c = a_dim.Cells(1, 3)

 

'Kolla mot alla lagerplatser

For i = 1 To l_dim.Rows.Count

 

'Dimensioner för lagerplats i

x = l_dim.Cells(i, 1)

y = l_dim.Cells(i, 2)

z = l_dim.Cells(i, 3)

v = x * y * z

 

'Uppskattning av antal artiklar på lagerplats i

maxAntal = Application.WorksheetFunction.Max( _

Int(x / a) * Int(y / B) * Int(z / c), _

Int(x / a) * Int(y / c) * Int(z / B), _

Int(x / B) * Int(y / c) * Int(z / a), _

Int(x / B) * Int(y / a) * Int(z / c), _

Int(x / c) * Int(y / a) * Int(z / B), _

Int(x / c) * Int(y / B) * Int(z / a))

 

'Möjlig lagerplats

If maxAntal >= a_antal And v < optVolym Then

optVolym = v

Lagerplats = i

End If

 

Next i

 

End Function

 

I exempelarket används följande namngivna områden:

lagerdimensioner = B3:E7

lagertyper = A3:A7

lagervolymer = E3:E7

 

De relevanta cellernas innehåll är

M3: =Lagerplats(lagerdimensioner;G3:I3;J3)

N3: =IF(M3=0;"Ej plats";INDEX(lagertyper;M3))

O3: =IF(M3=0;"---";K3/INDEX(lagervolymer;M3))

 

mvh

/Johan

 

[bild bifogad 2006-01-30 09:24:56 av Pejo]

799716_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Ha ha... du dribblar med mig :) Går det att få en exempelfil? Lättare att analysera vad du gjort då.

 

Tack för din tid!

 

MVH

 

Tobias

 

Länk till kommentar
Dela på andra webbplatser

Ha ha... du dribblar med mig :)

Det var inte meningen att förvirra dig, fråga gärna om något är oklart. (Alltid svårt att veta hur mycket en annan person kan.) Men visst kan du få ett ark också (skickat till din hotmail), postningen är mest för allmänhetens eventuella intresse.

 

Egendefinierade funktioner ger möjligheten att skapa avancerade funktioner för användning i ark. Nackdelar är att användaren måste tillåta makron, vilket kan utgöra en säkerhetsbrist, samt att funktioner i VBA aldrig kan bli lika snabba som XL:s färdiga funktioner.

 

mvh

/Johan

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...