Skip to main content
news

Re: spreadsheet ergonomics

Snit
SubjectRe: spreadsheet ergonomics
FromSnit
Date04/08/2017 08:12 (04/07/2017 23:12)
Message-ID<D50DCD49.9DB1D%usenet@gallopinginsanity.com>
Client
Newsgroupscomp.os.linux.advocacy
Followsowl
Followupsowl (11m) > Snit

On 4/7/17, 10:57 PM, in article ahvu003.ak3@rooftop.invalid, "owl" <owl@rooftop.invalid>wrote:

Snit
Here, maybe this will help you:

<http://n-t-roff.github.io/sc.1.pdf> ----- Next, it reads the options from the command line, and finally, it reads in the file or files specified on the command line and presents the data in a table organized as rows and columns of cells. ----- A table. Not a set of ranges we call tables.

----- If invoked without a file argument, the table is initially empty, unless it is running in a pipeline, in which case it will read its data from the standard input. ------ A table. Not a set of ranges we call tables.

----- The rest of the screen forms a window looking at a portion of the table. The total number of display rows and columns available, hence the number of table rows and columns displayed, is set by curses(3) and may be overridden by setting the LINES and COLUMNS environment variables, respectively. ----- A table. Not a set of ranges we call tables.

----- If a number is given, sc will search for a cell containing that number. Searches for either strings or numbers proceed forward from the current cell, wrapping back to a0 at the end of the table, and terminate at the current cell if the string or number is not found. ----- Yeah, it wraps back to the start of the table. The full table. Not the range (though you might have an option to limit it to a range, a range is not generally the full table -- though it can be).

But maybe that is not clear enough for you. So let us look at what a range is: ----- Built-in Range Functions

These functions return numeric values. The @sum, @prod, @avg, @count, @max, @min, and @stddev functions may take an optional second argument which is an expression that is to be evaluated for each cell in the specified range to determine which cells to include in the function. Only those cells for which the expression evaluates to true (non-zero) will be used in calculating the value of the function. ----- Hey, the SUM function you are using does not use the whole table but a range (and it likely cannot get a sum of itself so that range cannot be the whole table).

----- Range Commands

Range operations affect a rectangular region on the screen defined by the upper left and lower right cells in the region. ----- Yeah... those ranges you call tables in your ONE table... they are ranges in your ONE table.

OK, did more research and found a bit of a middle ground in the use of the word table. Excel actually lets you set a range into a "table" within a sheet. I wish they had used a different term, say a sub-table or, as you called it, a "pseudo-table"... and in the past they used to call this a "list", which also works, I suppose (though it is not very clear).

But they did not keep the name list, they went with table -- though for their current naming this makes some sense: the whole page (the sheet) is not deemed a table. In sc, of course, it is.

Still, this "pseudo-table" or "list" or, now, Excel table has a lot of things that make it work as a unit in the way a range (which is how you are using the term "table") does not.

owl
Note the use of "table" in the below excerpts from sc's manpage. @nval() and @sval() use absolute row number and column name indexing, and warn you to "be sure the table doesn't move unexpectedly." You use the @index() function like this: @index(blah,1,3) to refer to row 1, column 3 of named range blah, wherever that table appears in the file. In other words, the row and column numbers are relative to "blah" itself and have nothing to do with whatever row and column it is in the file (the outer table).

The "outer table"?

Remember: ----- The spreadsheet calculator sc is based on rectangular tables much like a financial spreadsheet. When invoked it presents you with a table organized as rows and columns of cells. -----

It provides you with "a table"... not a set of tables or a selection of tables or a sheet that can hold tables or, well, anything else. It provides you with *A* table. One.

Though it can be more than two-dimensional.

You can sort the rows of these tables

It only provide you with ONE table. When they talk about movement of the table I think it is poorly worded... maybe they mean deleting columns or rows which move parts of the table? Does sc not correct for that? Maybe they mean like the movement of the ocean... which does not mean the ocean itself is moving from one spot to another.

But what we know is sc provides you with *A* table. The table has rows and columns and cells... and you can select ranges in those.

independently of their absolute row numbers, etc. In other words, the sorting does not affect any data outside the table. You can also sort portions of the table and not affect other areas within the table.

Right... you can sort RANGES. ----- @index(e,r)

Use the value of the expression e to index into the range r. The numeric value at that position is returned. The value 1 selects the first item in the range, 2 selects the second item, etc. R should be either a single row or a single column. -----

-- Personal attacks from those who troll show their own insecurity. They cannot use reason to show the message to be wrong so they try to feel somehow superior by attacking the messenger.

They cling to their attacks and ignore the message time and time again.

<https://youtu.be/H4NW-Cqh308>

owl (11m) > Snit