現在のテーブル結合機能を次のように拡張してください。
テーブルの縦方向に同じ文字列が連続したとき、自動でセルを結合する書式指定を可能とする。
例えば以下のテーブルがあったとき
|A|
|B| //←ここBが連続してる
|B| //←ここBが連続してる
|C|
以下のように読み替えて表示する
|A|
|B|
|~| //←ここをB→チルダに解釈してセル結合表示にする。
|C|
ただし実体はあくまで前記の通りBは2行に渡って記述されており、ソートなどは実体を読み取って行われることとする。
またソートで順序が入れ替わった後も同じルールに従う。
例えば以下のテーブルがあったとき
#tablesort(){{
|x|y|h
|1|A|
|2|B| //Bは分離してる
|4|C| //x列は順序良く並んでおらず4
|3|B| //Bは分離してる
}}
x列でソートすると以下のように並び変わり
#tablesort(){{
|x|y|h
|1|A|
|2|B| //Bが連続になる
|3|B| //Bが連続になる
|4|C| //x列でソートされたので後ろに移動した
}}
|x|y|h
|1|A|
|2|B|
|3|~| //チルダに解釈して結合する
|4|C|
上記動作を以下のような記述で可能とする。
書式指定でROWSPAN:を記述したとき、上部と結合可能であれば結合する。
結合できない場合は結合しない。
|ROWSPAN:|c //ここで自動結合を定義する。
|A| //上部が書式行あるいはヘッダーの場合判定しない
|B|
|B| //上部がBで連続しており結合する
|C|
個別セルでの記述も可能とする
#tablesort(){{
|x|y|h
|1|A|
|2|ROWSPAN:B| //こう書いてあったとき結合可能な条件を満たせば結合させる
|4|C|
|3|ROWSPAN:B| //こう書いてあったとき結合可能な条件を満たせば結合させる
}}
理由
tablesort
現在チルダ結合セルを含むをソートで順番を変えると表示がおかしくなる。例えば以下のテーブルはソートできない。
#tablesort(){{
|x|y|h
|1|A|
|2|B|
|3|~|
|4|C|
}}includex
テーブルから任意の行を抜き出してフィルターするとき、チルダ結合してると上手くいかない。
例えば以下の表から#includex(filter=B)のようにしてBを含む行だけ抜き出したいとき、x列の3の行はマッチしないので抽出できない。
|x|y|h
|1|A|
|2|B|
|3|~|
|4|C|
以下のように書けばx列2と3が抽出できるが、結合表示と両立しない。
|x|y|h
|1|A|
|2|B|
|3|B|
|4|C|テーブル作成時自動で結合してもらいたい
前述のとおりソートやincludeなどで当初の並びから変化した場合など状況に応じて自動で結合してもらいたい場合の他、
大きな表を手書きするとき一つ一つ結合を記述する場合の手間削減。
特にスプレッドシートなどで機械的にデータ処理した表をwikiに展開するときなど。