Fylle ut skjemaene med data fra tabellen

Formulering av problemet

Vi har en database (liste, tabell – kall det hva du vil) med informasjon om betalinger på et ark Data:

Oppgave: skriv raskt ut en kontantkvittering (betaling, faktura ...) for enhver ønsket oppføring valgt fra denne listen. Gå!

Trinn 1. Lag et skjema

På et annet ark av boken (la oss kalle dette arket Form) opprette et tomt skjema. Du kan gjøre det selv, du kan bruke ferdige skjemaer, hentet for eksempel fra nettsidene til Chief Accountant magazine eller Microsofts nettsted. Jeg fikk noe sånt som dette:

Fylle ut skjemaene med data fra tabellen

I tomme celler (Konto, Beløp, Mottatt fra etc.) vil hente data fra betalingstabellen fra et annet ark – litt senere skal vi behandle dette.

Trinn 2: Klargjør betalingstabellen

Før du tar data fra tabellen for skjemaet vårt, må tabellen moderniseres litt. Sett inn en tom kolonne til venstre for tabellen. Vi vil bruke til å skrive inn en etikett (la det være den engelske bokstaven "x") på motsatt side av linjen som vi vil legge til data i skjemaet:

Trinn 3. Koble sammen tabellen og skjemaet

For kommunikasjon bruker vi funksjonen VPR(VISNING) – du kan lese mer om det her. I vårt tilfelle, for å sette inn nummeret på betalingen merket "x" fra dataarket i celle F9 på skjemaet, må du angi følgende formel i celle F9:

=OPSLAKK(“x”,Data!A2:G16)

=SØK OPP(“x”;Data!B2:G16;2;0)

De. oversatt til "forståelig", skal funksjonen finne i området A2: G16 på dataarket en linje som begynner med tegnet "x" og gi oss innholdet i den andre kolonnen på denne linjen, dvs. betalingsnummer.

Alle andre celler i skjemaet fylles ut på samme måte - bare kolonnenummeret endres i formelen.

For å vise mengden i ord brukte jeg funksjonen Egen fra PLEX-tillegget.

Resultatet skal være følgende:

Fylle ut skjemaene med data fra tabellen

Trinn 4. Slik at det ikke er to "x" ...

Hvis brukeren skriver inn "x" mot flere linjer, vil VLOOKUP-funksjonen kun ta den første verdien den finner. For å unngå slik tvetydighet, høyreklikk på arkfanen Data og deretter Kildetekst (Kildekode). I Visual Basic-redigeringsvinduet som vises, kopierer du følgende kode:

Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long Dim str As String If Target.Count > 1 Then Exit Sub If Target.Column = 1 Then str = Target.Value Application.EnableEvents = False r = Cells(Rows.Count) , 2).End(xlUp).Row Range("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

Denne makroen hindrer brukeren i å skrive inn mer enn én "x" i den første kolonnen.

Vel, det er alt! Nyt!

  • Bruk av OPSLAKK-funksjonen for å erstatte verdier
  • En forbedret versjon av VLOOKUP-funksjonen
  • Beløp i ord (Propis-funksjon) fra PLEX-tillegget

 

Legg igjen en kommentar