Elikkä yritetään selittää.
taulukossa on kohdissa A1-A10 kirjaimia ja kohdissa B1-B10 numero. Tarkoituksena olisi saada haettua satunnaisesti esim. soluun d1 joku A1-A10 solun kirjain ja soluun E1 samalta riviltä vastaava B sarakkeen arvo. Mitenkähän tämän saisi toteutettua makrona?
taulukossa on kohdissa A1-A10 kirjaimia ja kohdissa B1-B10 numero. Tarkoituksena olisi saada haettua satunnaisesti esim. soluun d1 joku A1-A10 solun kirjain ja soluun E1 samalta riviltä vastaava B sarakkeen arvo. Mitenkähän tämän saisi toteutettua makrona?
Vastaukset 4
Vanhimmat
D1 kaava
=SIIRTYMÄ(A1;SATUNNAISLUKU.VÄLILTÄ(0;9);0)
E1 kaava
=PHAKU(D1;A1:B10;2;0)
nyt aktivoit jonkun tyhjän solun ja painat Delete, excel arpoo aina uuden kirjaimen.
SATUNNAISLUKU.VÄLILTÄ funktio toimii vain jos analyysityökalut-apuohjelma on asennettu.
Siis lähinnä tarvitsisi saada tehtyä makro, joka hakee satunnaisesti jonkun A-sarakkeen arvon tiettyyn soluun ja vierestä vastaavan B-sarakkeen arvon toiseen soluun.
Ja en ole ikinä käyttänyt suomenkielistä Exceliä, joten jos vastaukset tulee Englanninkieliseen sopivassa muodossa, niin pääsen nopeammin jyvälle.
Tässä nämä eilliset kaavat englanninkieliseen, vaikka eipä niistä taida paljon apua olla jos makron haluat.
=OFFSET(A1;RANDBETWEEN(0;9);0)
=VLOOKUP(D1;A1:B10;2;0)
Varsinaista makroa tuosta en osaa vääntää, mutta jos arpoo makrolla satunnaisluvun johonkin soluun ja käyttää sitä Offset funktion rivisiirtymänä.
Sub Makro1()
Range("H1").Select
Selection.FormulaR1C1 = "=ROUND(RAND()*9,0)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Ja D1 kaava
=OFFSET(A1;H1;0)
E1 kaava pysyy samana
tässä makro joka saattais toimia
Sub Makro1()
r = 9 * Rnd
[D1] = [A1].Offset(r, 0)
[E1] = [A1].Offset(r, 1)
End Sub