Excel Frage


Indurus

Recommended Posts

Top-Schriftsteller

@lx99

Beispiel für Indikatoren:

- Anzahl an Posts im ASB
- Anzahl an Besuchen pro Tag im ASB

Weiter unten im Excel-sheet möchte ich dann jene "Indikatoren" automatisch gelistet haben, für die in der Nebenspalte ein Wert eingetragen wurde.

Danke!

bearbeitet von Santiago82

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Surft nur im ASB

Ich hoffe, ich interpretiere deine Anforderung richtig...

Im Beispielcode ist rngSource der Bereich im Tabellenblatt, der auf Eingaben überwacht werden soll. Ändert sich ein Wert im überwachten Bereich, wird der Zielbereich (rngTarget) gelöscht und neu aufgebaut.

Der folgende Code muss im VBA Editor beim zu überwachenden Tabellenblatt eingefügt werden (vorher natürlich Parameter anpassen):

Option Explicit

Dim rngSource As Range
Dim rngTarget As Range

Private Sub Worksheet_Change(ByVal Target As Range)

Set rngSource = Range("B1:B10")
Set rngTarget = Range("A21:A30")

If Not Intersect(Target, rngSource) Is Nothing Then
    Call genList
End If

End Sub

Sub genList()

Dim intLnSource As Integer
Dim intLnTarget As Integer

'Daten aus Zielbereich löschen
rngTarget.Cells.Clear

'Zielzeile setzen
intLnTarget = rngTarget.Row

'Alle Zeilen aus Quellbereich durchlaufen und auf Inhalt in Spalte B prüfen.
'Wenn Inhalt gefunden wird, wird der Wert aus Spalte A in die nächste freie
'Zeile des Zielbereichs geschrieben.
For intLnSource = rngSource.Row To rngSource.Row + rngSource.Rows.Count - 1
    If Range("B" & intLnSource).Value <> "" Then
        Range("A" & intLnTarget).Value = Range("A" & intLnSource).Value
        intLnTarget = intLnTarget + 1
    End If
Next intLnSource

End Sub

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Top-Schriftsteller

Wow. Danke. Werd ich mir gleich näher anschauen @lx99

Ich hab das inzwischen so probiert:

Zitat

Sub test_eins()

    Dim Zeile As Long, neue_Zeile As Long

    For Zeile = 1 To 35
         If Cells(Zeile, 1).Value <> "" Then
            If Cells(Zeile, 2).Value <> "" Or Cells(Zeile, 3).Value <> "" Then
                neue_Zeile = neue_Zeile + 1
                Cells(neue_Zeile, 6).Value = Cells(Zeile, 1).Value
            End If
        End If
    Next
End Sub

Wie würde ich hier die Position verändern, an der die generierte Liste ausgegeben wird? Ich schaff es nicht, im Code eine andere Zeile zu definieren.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Surft nur im ASB
Santiago82 schrieb vor 37 Minuten:

Wie würde ich hier die Position verändern, an der die generierte Liste ausgegeben wird? Ich schaff es nicht, im Code eine andere Zeile zu definieren.

Indem du vor der For...Next Schleife der Variablen neue_Zeile einen Startwert zuweist. Wenn du die generierten Daten ab Zeile 40 ausgeben willst, muss neue_Zeile den Startwert 39 haben.

Also einfach "neue_Zeile = 39"

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

  • 3 months later...
Postinho
lois schrieb vor 21 Minuten:

Will einen Zeitstrahl in Kalenderform erstellen. Nach dem Motto der Gegenstand wurde von Jänner 2014 bis März 2015 ausgeliehen. Dieser Gegenstand von Februar 2015 bis April 2015 usw

So dass man relativ gut sieht wenn sich eine Perosn zwei Gegenstände gleichzeitig ausgeliehen hat.

:ratlos:

Zeitstrahl.xlsx

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

  • 3 weeks later...
hold your colour

Bevor ich da ewig rumprobier, meine Frage an euch:

 

Tabelle:

Spalte A Spalte B

20          BLAU
20          BLAU
20          BLAU
23          ROT
23          ROT
27          ROT
29         BLAU
29         BLAU
11         ROT
12         BLAU
21         ROT

 

Ich hätte gerne per Formel wie oft der Wert BLAU vorkommt, ABER wenn Blau zB bei Spalte A und "20" drei Mal vorkommt, sollte es nur einmal zählen.

Also in dem Fall wären es 3x BLAU( bei 20,29 und 12)

 

Irgendwas mit Häufigkeit, Zählenwenn, Summenprodukt oder so :D

Und wenn es nicht sein muss, dann ohne Matrixformel bzw. indirekt.

 

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

hold your colour
grufi schrieb vor 7 Minuten:

ich würd die Summeüber eine Hilfsspalte machen wo beide Bedingungen zusammengefasst werden

oder noch einfacher: eine Pivot

Pivot ist keine Option, nachdem sich die Liste öfter ändert und das alles automatisiert werden soll.

In einer anderen Tabelle hab ich dann

 

BLAU:

ROT:

 

Und brauch eben dort die Anzahl.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

hold your colour
Splinta schrieb am ‎10‎.‎10‎.‎2017 um 11:56 :

Bevor ich da ewig rumprobier, meine Frage an euch:

 

Tabelle:

Spalte A Spalte B

20          BLAU
20          BLAU
20          BLAU
23          ROT
23          ROT
27          ROT
29         BLAU
29         BLAU
11         ROT
12         BLAU
21         ROT

 

Ich hätte gerne per Formel wie oft der Wert BLAU vorkommt, ABER wenn Blau zB bei Spalte A und "20" drei Mal vorkommt, sollte es nur einmal zählen.

Also in dem Fall wären es 3x BLAU( bei 20,29 und 12)

 

Irgendwas mit Häufigkeit, Zählenwenn, Summenprodukt oder so :D

Und wenn es nicht sein muss, dann ohne Matrixformel bzw. indirekt.

 

 

 

 

Push

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

hold your colour
Indurus schrieb vor 15 Minuten:

Sind die möglichen Ausprägungen in A und B vorgegeben? Wieviele verschiedene Zahlen können in A und wieviele Farben in B stehen?

Nein sind nicht vorgegeben.

In Spalte A können Werte von, ich sag Mal, 1-5000 stehen, inkl. Kommazahlen. In Spalte B etwa 15 verschiedene.

bearbeitet von Splinta

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Harry Wijnvoord Fußballgott
Splinta schrieb vor 24 Minuten:

Nein sind nicht vorgegeben.

In Spalte A können Werte von, ich sag Mal, 1-5000 stehen, inkl. Kommazahlen. In Spalte B etwa 15 verschiedene.

Ich würde es so machen:

8PGwSb4IKlFjQAAAAASUVORK5CYIIA

In Formeln:

OdBee97BNkwAAAAASUVORK5CYIIA

 

In Spalte G musst du dann halt dann händisch reinschreiben welche Farbe zu zählen möchtest, kannst aber genauso die Formel in H nach unten ziehen!

Wenn die Zahl der Zeilen variable werden sollte, wirst du um Indirekt nicht herumkommen fürchte ich.

bearbeitet von Indurus

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

hold your colour
lx99 schrieb vor 16 Minuten:

Ohne Matrixformel wirst du das wohl nicht hinkriegen. Beispiel für "BLAU":


=SUMMENPRODUKT((B$1:B$99="BLAU")/(ZÄHLENWENNS(A$1:A$99;A$1:A$99;B$1:B$99;B$1:B$99)+(B$1:B$99<>"BLAU")))

 

Danke, funktioniert einwandfrei. Die Matrix Formeln fordern nur meinen PC ziemlich. Die Liste hat über 3000 Zeilen...

Indurus schrieb vor 2 Minuten:

Ich würde es so machen:

8PGwSb4IKlFjQAAAAASUVORK5CYIIA

In Formeln:

OdBee97BNkwAAAAASUVORK5CYIIA

 

In Spalte G musst du dann halt dann händisch reinschreiben welche Farbe zu zählen möchtest, kannst aber genauso die Formel in H nach unten ziehen!

Wenn die Zahl der Zeilen variable werden sollte, wirst du um Indirekt nicht herumkommen fürchte ich.

Zwar nicht so elegant wie die andere Formel, aber eventuell probier ich das auch einmal, vor allem das es wohl ressourcenschonender ist.

 

Danke euch beiden!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...


  • Folge uns auf Facebook

  • Partnerlinks

  • Unsere Sponsoren und Partnerseiten

  • Wer ist Online

    • Keine registrierten Benutzer online.