Hoppa till innehåll

Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

Datavalidering i flera steg

#1
Medlem är utloggad   jaebes 

  • Nykomling
  • Pip
  • Grupp: Medlemmar
  • Inlägg: 5
  • Gick med: 2012-06-12

Skrivet 12 jun 2012, 09:14

Visa inläggMonshi, den 08 sep 2011, 15:26, sa:

ta fram namnhanteraren och du finner där formeln ifråga. Precis som du har definierat namn som refererar till celler använder jag namn för att definiera en formeln som refererar till celler.
Bilagor namnhanteraren.PNG

Notera som sagt den olåsta referensen i formeln. Att ha olåsta referenser i namn är oftast ett bra sätt att be om problem men om man hanterar dem varsamt, dvs rör sig rätt på bladet vid redigering, kan det gå vägen.
med en olåst referens blir formeln relativ.
Säg att du står på rad 10 och skapar namnet
=$A2
skriver du detta namn på rad 10 kommer den mycket riktigt ge värdet i A2 som svar
Skriver du den på rad 11 får du värdet i cell A3
Skriver du den på rad 7 får du ett felvärde för cellen A-1 finns inte.

båda filerna borde fungera likadant, bara att Indirekt-versionen har en lite kortare formel som dock kräver lite mer arbete i att definiera listorna från din sida.


Hej!

Hittade denna tråd och den hjälpte mig en bit på vägen. Jag skulle dock behöva kunna bygga ut med flera "understeg" typ BB, BB-1, BB-1-1, BB-1-1-1 o.s.v. men förstår inte hur jag ska gå till väga.

Inägget/tråden utbruten ur
http://eforum.idg.se...e__pid__1580598

Inlägget är redigerat av Monshi: 12 jun 2012, 09:18.

0

#2
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 532
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 12 jun 2012, 09:53

Denna fråga har jag svarat förr på... letar lite i datorn och hittar en exempelfil med de två metoder som finns.

Där används Litsrutor istället men principen är densamma om man använda datavlidering eller ej.

metod a:
Skapa områden på bladet som listan hämtar värden ifrån. Uppdatera värdena i denna område via formler.

Metod b:
Skapa dynamiska referenser i namn som räknas om att referera till rätt område. Använd namnet som källa för din lista.

Metod a passar om man har listor med fix storlek.
Metod b fungerar bra om man har listor med varierande storlek då de kan räknas om och inkludera nya värden.

Vill man ha flera steg är det bara att bygga vidare på samma sätt som man skapar steg ett.


Se om du kan reda ut vad jag gjort i denna fil

Bifogade filer


Inlägget är redigerat av Monshi: 12 jun 2012, 09:54.

0

#3
Medlem är utloggad   jaebes 

  • Nykomling
  • Pip
  • Grupp: Medlemmar
  • Inlägg: 5
  • Gick med: 2012-06-12

Skrivet 19 jun 2012, 09:18

Visa inläggMonshi, den 12 jun 2012, 09:53, sa:

Denna fråga har jag svarat förr på... letar lite i datorn och hittar en exempelfil med de två metoder som finns.

Där används Litsrutor istället men principen är densamma om man använda datavlidering eller ej.

metod a:
Skapa områden på bladet som listan hämtar värden ifrån. Uppdatera värdena i denna område via formler.

Metod b:
Skapa dynamiska referenser i namn som räknas om att referera till rätt område. Använd namnet som källa för din lista.

Metod a passar om man har listor med fix storlek.
Metod b fungerar bra om man har listor med varierande storlek då de kan räknas om och inkludera nya värden.

Vill man ha flera steg är det bara att bygga vidare på samma sätt som man skapar steg ett.


Se om du kan reda ut vad jag gjort i denna fil


Tack för hjälpen. Jag lyckades lösa det genom att använda Indirekt i andra ledet och Förskjutning i det tredje. Är inte hundra på hur formlerna fungerar men det fungerar i alla fall som jag tänkt. Jag fick dock inte till det med den formel som tog bort tomma rader. I den bifogade filen är det så som jag vill ha det med undantag för detta.

Bifogade filer

  • Bifogad fil  test.xls (128Kb)
    Antal nedladdningar: 9

0

#4
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 532
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 19 jun 2012, 09:36

uppdatera formeln i steg tre till
=FÖRSKJUTNING(codes!$A$31;1;PASSA(Avvikelser!$C3;codes!$A$31:$FM$31;0)-1;ANTALV(FÖRSKJUTNING(codes!$A$31;1;PASSA(Avvikelser!$C3;codes!$A$31:$FM$31;0)-1;15));1)
så ska det fungera.
0

#5
Medlem är utloggad   jaebes 

  • Nykomling
  • Pip
  • Grupp: Medlemmar
  • Inlägg: 5
  • Gick med: 2012-06-12

Skrivet 19 jun 2012, 17:17

Visa inläggMonshi, den 19 jun 2012, 09:36, sa:

uppdatera formeln i steg tre till
=FÖRSKJUTNING(codes!$A$31;1;PASSA(Avvikelser!$C3;codes!$A$31:$FM$31;0)-1;ANTALV(FÖRSKJUTNING(codes!$A$31;1;PASSA(Avvikelser!$C3;codes!$A$31:$FM$31;0)-1;15));1)
så ska det fungera.


Fungerar perfekt!! Tack!

Försökte applicera principen på steg 2 också men fick det inte att fungera. Kan man använda Antalv på indirekt också? Jag provade nämligen detta enligt den modell du visat i ett annat exempel för förskjutning men får inte ihop det.

Provade också att ändra så att även steg två skulle köra förskjutning enligt följande:
=FÖRSKJUTNING(codes!$A$16;1;PASSA(Avvikelser!$A3;codes!$A$16:$M$29;0)-1;ANTALV(FÖRSKJUTNING(codes!$A$16;1;PASSA(Avvikelser!$A3;codes!$A$16:$M$29;0)-1;15));1)
men si det ville sig inte heller. Några idéer?
0

#6
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 532
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 20 jun 2012, 07:41

Passa söker genom vektorer, du ger den, i din sista formel, en matris.

Lite bättre med en liten ändring
=FÖRSKJUTNING(codes!$A$16;1;PASSA(Avvikelser!$A3;codes!$A$16:$M$16;0)-1;ANTALV(FÖRSKJUTNING(codes!$A$16;1;PASSA(Avvikelser!$A3;codes!$A$16:$M$16;0)-1;15));1)
0

#7
Medlem är utloggad   jaebes 

  • Nykomling
  • Pip
  • Grupp: Medlemmar
  • Inlägg: 5
  • Gick med: 2012-06-12

Skrivet 26 jun 2012, 09:10

Visa inläggMonshi, den 20 jun 2012, 07:41, sa:

Passa söker genom vektorer, du ger den, i din sista formel, en matris.

Lite bättre med en liten ändring
=FÖRSKJUTNING(codes!$A$16;1;PASSA(Avvikelser!$A3;codes!$A$16:$M$16;0)-1;ANTALV(FÖRSKJUTNING(codes!$A$16;1;PASSA(Avvikelser!$A3;codes!$A$16:$M$16;0)-1;15));1)


Tack! Fungerar perfekt. Nu ska jag bara läsa på så jag förstår vad du menar gällande vektorer och matriser ;-)

Dock fick jag en tom rad längst ner på samtliga ställen där jag använde denna kod. Ändrade till:
=FÖRSKJUTNING(codes!$A$16;0;PASSA(Avvikelser!$A3;codes!$A$16:$M$16;0)-1;ANTALV(FÖRSKJUTNING(codes!$A$16;0;PASSA(Avvikelser!$A3;codes!$A$16:$M$16;0)-1;15));1)

Jag förstår inte riktigt varför det fungerar men fungerar gör det. I steg 3 är dock det värdet 1 på motsvarande ställe i formeln.
0

#8
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 532
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 26 jun 2012, 09:33

Siffran du ändrar ger hur många rader ned från referensen du ger som nya referensen börjat på. Du får inte med rubrikraden nu?

Du kunde annars lagt en minus ett på resultatet av ANTALV
troligtvis.
Är alltid lite pill att få till dessa referenser rätt.

Inlägget är redigerat av Monshi: 26 jun 2012, 09:39.

0

#9
Medlem är utloggad   jaebes 

  • Nykomling
  • Pip
  • Grupp: Medlemmar
  • Inlägg: 5
  • Gick med: 2012-06-12

Skrivet 26 jun 2012, 09:55

Visa inläggMonshi, den 26 jun 2012, 09:33, sa:

Siffran du ändrar ger hur många rader ned från referensen du ger som nya referensen börjat på. Du får inte med rubrikraden nu?

Du kunde annars lagt en minus ett på resultatet av ANTALV
troligtvis.
Är alltid lite pill att få till dessa referenser rätt.



Jo jag fick med rubrikraden. Såg inte det först. Var bara glad över att sista raden var borta. Men när jag upptäckte att rubrikraden kom med förstod jag ju också vad den siffran gjorde :-) Ändrade som du skrev i ANTALV från 15 till 14 så löste sig även det andra.

Stort tack för hjälpen!
0
Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

1 besökare läser just nu den här tråden, varav 0 medlem(mar) och 1 gäst(er)
 
 
Senast obesvarade trådar
Prenumerera på nyheter

Missa inte våra nya
smarta nyhetsbrev

Läs mer om nyhetsbreven här!
Beställ direkt:


Extreme
PC för Alla-nätverket