Skip to main content
news

Re: spreadsheet ergonomics

owl
SubjectRe: spreadsheet ergonomics
Fromowl
Date04/08/2017 07:57 (04/08/2017 05:57)
Message-ID<ahvu003.ak3@rooftop.invalid>
Client
Newsgroupscomp.os.linux.advocacy
FollowsSnit
FollowupsSnit (14m) > owl

Snit <usenet@gallopinginsanity.com>wrote:

Snit
On 4/7/17, 8:46 PM, in article D50DAB41.9DAA9%usenet@gallopinginsanity.com, "Snit" <usenet@gallopinginsanity.com>wrote:

On 4/7/17, 7:11 PM, in article 0hjz030ga.by@rooftop.invalid, "owl" <owl@rooftop.invalid>wrote:

...

owl
Any set of tabular data can be considered a table. When you create a table in Numbers, if you do not use the entire maximum column and row limits, do you say that it is not a table?

Snit
Do I say the table is not a table? Um, no. That would be silly. But I do not claim that different parts of the same table are different tables, as you do.

Do you see why your question here showed your ignorance of what a table is? If a table has data only in a certain range that does not make the rest of the table cease to be a table.

owl
Of course you don't.

Snit
Right: I call a table a table, not a range in a table a table.

Did you even understand this? Do you understand the difference between a range in a table and a table?

owl
But how can it be a table if you're not maxing it out?

Snit
A shoe is a shoe even when your foot is not in it. A sole of a shoe does not become a shoe, though, even if you reference it as one.

owl
That seems to be what you're saying.

Snit
Not even slightly. I mean, really, it is not even remotely connected to anything I said. Hey, I said you said something about rows you did not (though understandably I was confused by your lack of proper terminology)... here you are claiming I am saying something I never did. OK. Good test to see if you are as honest as I am.

Do you see why what you claimed it "seemed" like I was saying was not at all what I was saying?

owl
So given that it *is* still a table without using the all the cells, how does that subset of the maximum cells anchored at A0 differ from any other subset?

Snit
Assuming you mean: Given it is a table how does one range differ from another? If so it is because they are different ranges... in the case of what you are referring to they are not even overlapping ranges.

If that is NOT what you mean then I would need you to explain what you are even trying to say.

owl
You seem to have a density problem.

<quote> From WordNet (r) 3.0 (2006) [wn]:

table n 1: a set of data arranged in rows and columns; "see table 1" [syn: {table}, {tabular array}]

</quote>

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.

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). You can sort the rows of these tables 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.

<quote>

g Go to a cell. sc prompts for a cell's name, a regular expres‐ sion surrounded by quotes, or a number. If a cell's name such as ae122 or the name of a defined range is given, the cell cur‐ sor goes directly to that cell. If a quoted regular expression such as " Tax Table " or " ^Jan [0-9]*$ " is given, sc searches for a cell containing a string matching the regular expression. See regex(3) or ed(1) for more details on the form of regular expressions.

....

@index(e1,r) @index(r,e1) @index(r,e1,e2) Use the values of expressions e1 and (optionally) e2 to index into the range r. The numeric value at that position is returned. With two arguments, the range should be either a single row or a single column. An expression with the value 1 selects the first item in the range, 2 selects the second item, etc. With three arguments, the range must come first, and the second and third arguments will then be interpreted as row and column, respectively, for indexing into a two-dimensional table.

@stindex(e1,r) @stindex(r,e1) @stindex(r,e1,e2) Use the values of expressions e1 and (optionally) e2 to index into the range r. The string value at that position is returned. With two arguments, the range should be either a single row or a single column. An expression with the value 1 selects the first item in the range, 2 selects the second item, etc. With three arguments, the range must come first, and the second and third arguments will then be interpreted as row and column, respectively, for indexing into a two-dimensional table.

....

@nval(se,e) Return the numeric value of a cell selected by name. String expression se must evaluate to a column name (``A''-``AE'') and e must evaluate to a row number (0-199). If se or e is out of bounds, or the cell has no numeric value, the result is 0. You can use this for simple table lookups. Be sure the table doesn't move unexpectedly! See also @sval() below.

...

@sval(se,e) Return the string value of a cell selected by name. String expression se must evaluate to a column name (``A''-``AE'') and e must evaluate to a row number (0-199). If se or e is out of bounds, or the cell has no string value, the result is the null string. You can use this for simple table lookups. Be sure the table doesn't move unexpectedly!

</quote>

Snit (14m) > owl