I had need to calculate column references for an Excel spreadsheet for
columns greater than 26. You know, so you can come up with the reference
like: A1:AG1.

Fun stuff.

Anyway, the scheme for this is deceptive. A -> Z is easy. But A # 0 or 1
strictly. It's tricky. I suspect this is one reason there are functions in
Excel specifically for doing this sort of thing.

However, we have to write our own. In the event someone else needs this
particular bit of code here is a solution I came up with. It could be used
in other contexts I suppose. You can set the base to something smaller. Try
3, for example.

====================================
$chars:="ABCDEFGHIJKLMNOPQRSTUVWXYZ"

$number:=2000
$base:=26
$reference:=""

If ($number=0)  // there is no zero
  $reference:=""
Else
  While ($number>0)
    $remainder:=$number%$base
    $number:=$number\$base

    If ($remainder=0)     // borrow base from number
      $remainder:=$base
      $number:=$number-1
    End if

    $reference:=$chars[[$remainder]]+$reference

    If ($number>0) & ($number<=$base)
      $reference:=$chars[[$number]]+$reference
      $number:=0
    End if

  End while
End if

ALERT($reference)
=================

Posting this in the hope all this nerdy time isn't completely wasted.

-- 
Kirk Brooks
San Francisco, CA
=======================

*We go vote - they go home*
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to