Hi Errol,

Many thanks for the example.  I will play with this over the weekend to see
how it works.  I will drop a note (probably next week) to let you know how
it goes.  I've been blogging about my project here and there, so maybe this
will be another step I can blog about.  My post about connecting LOBase to
PostgreSQL is still the top-ranked story on my site, so hopefully I can add
some more LO action.  :-)


On Fri, Aug 2, 2013 at 6:23 AM, Errol Goetsch <er...@xe4.org> wrote:

> On 2013/08/01 11:31 AM, Don Parris wrote:
>
>> Unfortunately, one bank throws everything except for the date and the
>> amount into a single "description" column.  It would still be simpler if
>> they did not include the actual transaction date in that column, as it
>> means the description changes... well... daily.  Grrrr....
>>
>>
>> On Thu, Aug 1, 2013 at 12:27 AM, Brian Barker <b.m.bar...@btinternet.com>
>> **wrote:
>>
>>  At 21:35 31/07/2013 -0400, Don Parris wrote:
>>>
>>>  Again, I just need to figure out how to extract that bit from the bank's
>>>> description.  Any thoughts on that?
>>>>
>>>>  As I mentioned, that depends on the precise possibilities in the bank
>>> data.  If the relevant data is always in the same columns of the relevant
>>> records, you can probably extract it using MID(); otherwise you may need
>>> to
>>> do a more complicated search through the text.
>>>
>>>
>>> Brian Barker
>>>
>>>  --
> On 2013/08/01 11:31 AM, Don Parris wrote:
>
>> Unfortunately, one bank throws everything except for the date and the
>> amount into a single "description" column.  It would still be simpler if
>> they did not include the actual transaction date in that column, as it
>> means the description changes... well... daily.  Grrrr....
>>
>>
>> On Thu, Aug 1, 2013 at 12:27 AM, Brian Barker <b.m.bar...@btinternet.com>
>> **wrote:
>>
> yes, left() or mid() is quicker if the contents are fixed. In Don's worse
> case scenario, where the bank's records have descriptions that are random,
> unpredictable in length and sequence, and change daily, but at least have
> predictable strings (eg store name) somewhere in them, try
>
> =IF(ISERR(FIND(LOWER(VLOOKUP(**D$3,List1,2)),Data.$D4))=1,"",**D$3)
>
> The key elements in the formula are *find *(to tag the transaction) and
> *vlookup *(to return the entity), with if(), iserr() and lower() acting in
> support.
> where
> a) the formula is repeated for each string in a table alongside the
> transaction, with each column "trying it's luck" and the last column
> identifying the ID (by summing the row of possible ID's where non-responses
> =0)
>
> b) iserr()=1 is used to identify if the transaction contains the key
> entity (if the field lacks the text, the cell blanks out, if it has the
> text, it returns the ID of the entity)
> c) if() is used to tag the transaction with the entity's code
> d) lower() is used because find() is case sensitive, and ties to the
> instruction to lower-casify the descriptions in sheet 2 (data) (equally use
> upper(), though it makes for wider description fields)
> e) find() is used to see if the description contains the text or not (the
> actual position of the text is irrelevant)
> f) vlookup() refers to List1, which is the table of entities and their code
> g) d$3 is the entity ID at the head of the column, where multiple columns
> apply their own string to the description
>
> _Working example__
> _https://docs.google.com/file/**d/**0B6LXy9sguZVkcXRBbGUxQVVvT1k/**
> edit?usp=sharing<https://docs.google.com/file/d/0B6LXy9sguZVkcXRBbGUxQVVvT1k/edit?usp=sharing>gives
>  a working example for 1000 transactions and 31 strings
> 1. Enter the text string in sheet 1 (summary) - the example allocates the
> entity ID and allows for 31 entities, where the first 7 are colour coded
> 2. Drop the bank data in sheet 2 (data)*. Remember to **|format|change
> case => lower case the descriptions* - the example allows for 1000
> transactions
> 3. See the processing in sheet 3 (analysis) - the 1000 transactions are
> auto-tagged for 31 texts, the 1st 7 are also colourised
>
> 4. Back to sheet 1 (summary), where the entitles are totalled for debits
> and credits in the month you choose and their frequency counted.
>
> The summary page sub-totals the transactions using dsum
> =IF($H4=0,"",DSUM(Result,F$3,$**C3:$C4))
> There are some embellishments, such as |validation (to show or hide
> non-key entities and to limit the summary to a month or not)
>
> The sheets are protected against changes but there is no password. To
> edit, just undo the protection.
> I hope this helps
>
>
>
> --
> To unsubscribe e-mail to: 
> users+unsubscribe@global.**libreoffice.org<users%2bunsubscr...@global.libreoffice.org>
> Problems? http://www.libreoffice.org/**get-help/mailing-lists/how-to-**
> unsubscribe/<http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/>
> Posting guidelines + more: http://wiki.**documentfoundation.org/**
> Netiquette <http://wiki.documentfoundation.org/Netiquette>
> List archive: 
> http://listarchives.**libreoffice.org/global/users/<http://listarchives.libreoffice.org/global/users/>
> All messages sent to this list will be publicly archived and cannot be
> deleted
>
>


-- 
D.C. Parris, FMP, Linux+, ESL Certificate
Minister, Security/FM Coordinator, Free Software Advocate
http://dcparris.net/
<https://www.xing.com/profile/Don_Parris><http://www.linkedin.com/in/dcparris>
GPG Key ID: F5E179BE

-- 
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to