Domanda

Diciamo che c'è un rapporto di confrontare le tasse, con le regolazioni che uscite di excel, in modo tale che ogni riga contiene i seguenti campi:

  • Numero Di Conto
  • responsabile data
  • Numero di articolo originale
  • Regolato numero di Articolo
  • Originale Qty
  • Regolato Qty
  • Importo originale
  • Importo rettificato
  • Post originale data
  • Regolato data di pubblicazione

Ho bisogno di aiutare l'utente a creare una view in Excel che consente loro di individuare i cambiamenti in ogni record.Lei vuole mostrare ogni record in due righe come questa:

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

C'è qualcosa di costruito in Excel per consentire al gruppo di dischi come questo?VBA non è un'opzione in questo caso.

Va bene se le cellule sotto il conto e la data di duplicati di quei valori, se il che rende tutto più facile.I punti di Bonus se si può ottenere un qualche tipo di fila alternata effetto che aiuta a delimitare ogni record (la parte che posso fare la mia in vba poi se devo).

È stato utile?

Soluzione

È un po ' difficile, ma fattibile.Sto cercando in questo attualmente in stand by.

Ok, l'idea è questa.

Si ha la seguente struttura:

/|    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    |

Fare un secondo strato:

/|  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) |

Le colonne "A/0" e "Ref" sono manuali, nel mio modello attuale.Probabilmente c'è un modo per automatizzare ma ho voluto mantenere le cose semplici.Riempimento verso il basso per coprire uno arbitrariamente lunga tabella di input Foglio1 avrebbe funzionato.

Altri suggerimenti

Una soluzione semplice potrebbe essere quella di utilizzare Formattazione Condizionale (le indicazioni sono per Office 2007):

  1. Evidenziare il "Regolata" colonna (supponiamo, è la Colonna D e l'Originale è stato la colonna C)
  2. Fare Clic Su "Formattazione Condizionale"
  3. Fare Clic Su "Nuova Regola..."
  4. Fare clic sull'ultima voce "Usa una formula per determinare le celle da formattare"
  5. Inserire C1 <> D1
  6. Scegliere uno stile di formattazione.

Applicare la regola, e tutte le voci che non corrispondono sarà evidenziato in stile selezionato.

Ho fatto anche questo Indiretta.Il mio formule sul secondo foglio cercare qualcosa di simile:

=INDIRETTO("fonte!UN" & INT(RIGA()/2)+1)

Sarà difficile-codice la lettera per indicare la colonna di origine, e quindi il calcolo viene automaticamente scegliere la riga corretta.Dovrebbe copiare verso il basso, per quanto è necessario.

Credo sia possibile solo con la programmazione (hey, questo è relativo alla programmazione del sito).

Quando VBA non è un'opzione, è consentito utilizzare VB.Net o C#?

La formattazione condizionale può fare entrambi i lavori, perché si può avere fino a 3 condizioni per cella

  1. si può (dire) utilizzare in rosso il testo in grassetto per evidenziare le celle che sono diversi, utilizzando una formula di convalida come questo

    eg =(DataA!C8 <> Applicaz!C8)

  2. è possibile ombra righe alternate, utilizzando una formula come questa (come quello usato nella cella C8)

    eg =(MOD(CELLA("Riga",C8),2)=0)

che ombra anche le righe.All'ombra righe dispari invece, naturalmente, utilizzare =1 alla fine della formula, invece di =0

Ho fatto esattamente questo in VBA un paio di anni fa e ha funzionato alla grande, credo che si potrebbe fare il samething utilizzando C# con Interops?

Mi potrebbe dire a cosa è stato aggiunto, rimosso e cambiato.Creare un report alla fine è stato semplice ordinare e filtrare.

C'è un motivo per cui VBA non è un'opzione?E quali altre opzioni sono disponibili?

si potrebbe anche riferimento incrociato i dati con le funzioni di Excel, ma questo può essere un po ' complicato per qualcuno che non è un excel power user. aiuto generale nelle formule di excel

Edit: avrete bisogno di funzioni come Trovare l'Indice di Offset VLookup Partita, tutto questo può essere fatto mediante la combinazione di essi.l'unico inconveniente è che c'è un limite alla formula di lunghezza.Quando viene raggiunto questo limite dividere la logica in più colonne o righe.

Edit: si potrebbe integrare il VBA in una singola cartella di lavoro, e sono il modello salvato.ogni volta che si desidera confrontare utilizza questo modello per eseguire il comparisson.in questo modo non è richiesta una distribuzione.hanno semplicemente bisogno di copiare il file e utilizzarlo.

Edit: La soluzione proposta da Tomalak potrebbe non funzionare fin quando i record vengono aggiunti o rimossi, non abbiamo alcun controllo su dove questi record saranno posizionati.avrete bisogno di trovare la riga con una chiave a corrispondenza e lavorare da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top