Frage

Nehmen wir an, es gibt einen Bericht Gebühren für Anpassungen zu vergleichen, die in Excel ausgibt, so dass jede Reihe die folgenden Felder hat:

  • Kontonummer
  • Ladedatum
  • Original Artikelnummer
  • Adjusted Artikelnummer
  • Original Menge
  • Bereinigtes Menge
  • Original Menge
  • Bereinigtes Betrag
  • Original Post date
  • Bereinigtes Post date

Ich brauche ein Benutzer zu helfen, eine Ansicht in Excel erstellen, die sie Änderungen in jedem Datensatz vor Ort hilft. Sie will, dass es jeden Datensatz in zwei Reihen so zeigen:

Account  |  Date  |  O. Item  |  O. Qty  |  O. Amount  |  O. Post
         |        |  A. Item  |  A. Qty  |  A. Amount  |  A. Post             

Gibt es etwas in Excel integriert Sie wie diese Gruppe Datensätze zu ermöglichen? VBA ist keine Option in diesem Fall.

Es ist in Ordnung, wenn die Zellen unter Konto und Datum, diese Werte duplizieren, wenn das es einfacher macht. Bonuspunkte, wenn Sie irgendeine Art bekommen Reihe Effekt abwechselnd die jeden Datensatz hilft begrenzen (der Teil ich später in meinem eigenen in vba tun können, wenn ich muss).

War es hilfreich?

Lösung

Es ist ein wenig schwierig, aber machbar. Ich suche in dieser Zeit, stehen.

Okay, die Idee dieser ist.

Sie haben den folgenden Aufbau:

/|    A    |    B    |    C    |    D    |    F    |
-+---------+---------+---------+---------+---------+
1| Acc No. |  Data1  |  Data1' |  Data2  |  Data2' |
2|       1 |      10 |      11 |    a    |    b    |
3|       2 |     100 |     108 |    a    |    a    |
4|       3 |      50 |      55 |    f    |    g    |
Machen Sie

ein zweites Blatt:

/|  A  |  B  |    C                        |    D                        |
-+-----+-----+-----------------------------+-----------------------------+
1| A/O | Ref |  Data1                      |  Data2                      |
2|   A |   2 | =INDIRECT("Sheet1!B" & $B2) | =INDIRECT("Sheet1!D" & $B2) |
3|   O |   2 | =INDIRECT("Sheet1!C" & $B3) | =INDIRECT("Sheet1!E" & $B3) |
4|   A |   3 | =INDIRECT("Sheet1!B" & $B4) | =INDIRECT("Sheet1!D" & $B4) |
5|   O |   3 | =INDIRECT("Sheet1!C" & $B5) | =INDIRECT("Sheet1!E" & $B5) |

Spalten "A / 0" und "Ref" ist Handbuch, in meinem aktuellen Modell. Wahrscheinlich gibt es eine Möglichkeit, sie zu automatisieren, aber ich wollte es einfach halten. Füllen unten eine beliebig lange Eingabetabelle in Sheet1 decken funktionieren würde.

Andere Tipps

Eine einfache Abhilfe könnte sein, verwenden Bedingte Formatierung (Richtungen sind für Office 2007 ):

  1. Markieren Sie die „bereinigte“ -Spalte (nehme an, es ist Spalte D und die Vorlage war Spalte C)
  2. Klicken Sie auf "Bedingte Formatierung"
  3. Klicken Sie auf "Neue Regel ..."
  4. Klicken Sie auf das letzte Element „Usa eine Formel, um zu bestimmen, welche Zellen formatieren“
  5. Geben Sie C1 <> D1
  6. Wählen Sie eine Formatierung Stil.

Regel anwenden, und alle Einträge, wird nicht im Stile hervorgehoben werden Sie ausgewählt haben.

Ich habe auch dies mit Indirect. Meine Formeln auf dem zweiten Blatt in etwa so aussehen:

= INDIREKT ( "source! A" & INT (ROW () / 2) + 1)

Sie werden hart Code der Brief die Spalte Quelle, um anzuzeigen, und dann wird die Berechnung automatisch aus der richtigen Zeile wählen. Sollte so weit nach unten kopieren, wie Sie benötigen.

Ich denke, dass es nur möglich ist mit der Programmierung (hey, das ist eine Programmierbezogene Website).

Wenn VBA ist keine Option, ist es erlaubt VB.Net oder C # verwenden?

Bedingte Formatierung kann beiden Jobs tun, weil Sie bis zu 3 Bedingungen pro Zelle haben können

  1. Sie können (sagen wir) verwenden rot fett gedruckten Text alle Zellen zu markieren, die verschieden sind, eine Validierungsformel wie dies mit

    z = (DataA! C8 <> DataB! C8)

  2. können Sie Schatten abwechselnden Reihen eine Formel wie folgt (wie in Zelle C8 verwendet)

    z = (MOD (CELL ( "Zeile", C8), 2) = 0 ist)

das wird Schatten geraden Zeilen. Um Schatten ungeraden Zeilen statt, natürlich, verwendet = 1 am Ende der Formel anstelle von = 0

Ich habe vor ein paar Jahren in VBA genau dies getan und es funktionierte großartig, ich denke, Sie Samething C # mit Interops mit tun könnten?

Ich kann sagen, was wurde hinzugefügt, entfernt und geändert. Es erstellen einen Bericht in dem Ende, das zu sortieren war einfach und filtert.

Gibt es einen Grund, warum VBA keine Option? Und welche anderen Optionen stehen zur Verfügung?

könnten Sie auch Querverweis die Daten Excel-Funktionen verwenden, aber das kann sein ziemlich kompliziert für jemanden, der nicht ein Excel-Power-User sind. allgemeine Hilfe in Excel-Formeln

Edit: Sie Funktionen benötigen wie finden Index VLookup Spiel Offset, das alles getan werden, können sie durch die Kombination. Der einzige Nachteil ist, dass es eine Grenze für die Formel Länge ist. Wenn diese Grenze erreicht ist, spaltete die Logik in mehreren Spalten oder Zeilen.

Edit: Sie die VBA in einer einzelnen Arbeitsmappe intergrate könnten, und haben die Vorlage gespeichert. jedes Mal, wenn sie wünschen, vergleichen sie diese Vorlage verwenden, um die comparisson auszuführen. Auf diese Weise ist kein Einsatz erforderlich. sie müssen einfach die Datei kopieren und verwenden.

Edit: Die Lösung von Tomalak vorgeschlagen, da kann nicht funktionieren, wenn Datensätze hinzugefügt oder entfernt werden, wir haben keine Kontrolle darüber, wo diese Datensätze werden positioniert. Sie wird die Zeile mit einem Schlüssel Spiel und von dort aus arbeiten.

finden müssen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top