行数を制限して、行数を超えたら自動的に次の列へ

(先の質問はスレッドを荒らしてごめんなさい。質問ができなかったので)

画像は、質問用に作りました。
例えばですが、6行で止めたい。
7行目は次の列(指定した列)に移動とかできるでしょうか?


この場合、最初に1列で、下行むかって入れました。
漢字と次の列にフリガナです。
鯵からはじまって、鮪まで入力を終えて、6行でまとめたいので
7行目からを切りとって(フリガナの列も)、次の列(C1)へ移動しました。
C6まで達したので、次の列(E1)へ移動しました。
あとで、追加があった時に困りました。
この質問用では、鮟鱇(あんこう)です。
ふりがなをつけて、あいうえお順にならべて6行目で次の列へ切り上げています。
フリガナ順にならべるとき、A2とA3の間に鮟鱇を入れたい。
(A3が鮟鱇で、A4が烏賊、A6だった蟹はC1へ、押し出すように鰤がE1へ移動してE1だった鮪は、E2へ。
なんてことができるでしょうか?
出来ないとすれば、A3(B3もいっしょに)上に1行増設してそこへ
鮟鱇を入力(コピペで)して、
A列からはみ出た蟹をB列の頭に、B列のはみ出しはE列へ
実際もっと多いと大変作業で実質的に無理です。
方法があれば、教えてください。

今、作成中のリストで、魚ではないですが名前(ネットの知り合い)を並べて
そのまま同じ列では、長すぎて一目でわからないので(スクロールしないと)
行を降り貸して、質問用のようにしています。
あとから追加するときに、え?困った。ってなっております。
よろしくお願いいたします。

>そのまま同じ列では、長すぎて一目でわからないので(スクロールしないと)
行を降り貸して、質問用のようにしています。

可能ですけど、考え方としては誤っていると思います。

というのはEXCELにはデータとして扱うための
ルールがあって同一項目は同一列であるべきなんです。
でないと、フィルターやピボットテーブルなどの
本来EXCELに備えられた多くの機能を自らなくしてしまいます。

横に並べたいというだけなら、単純に表示の問題だけなので
元データが如何に縦長でも簡単に関数で複数列表示は
可能です。

例えばsheet2のA1セルに
=OFFSET($Sheet1.$A1,INT((COLUMN()-1)/2)*6,IF(MOD(COLUMN(),2),0,1))
とすれば、6行ずつでちゃんと右に並びますよね。
これはSheet1で挿入や並べ替えを行っても無関係に
ちゃんと追従します。

元データと表示はこのように分離されるべきと考えます。

その方向にシフトされることを強くお勧めします。

2 Likes

ありがとうございます。
関数式をみても、よくわからないけど、すごいです。
()な使い方ってあるのですね。
どういう意味なのか、わたしには、わからないのだけど

質問の後、自分でもそれから試行錯誤をしてたら、分離になりました。、Sheet1に縦に並べて入力して、
sheet2のA1に =Sheet1.A1としてA6までドラッグして、
sheet2のB1に =Sheet1.B1としてB6までドラッグして、
Sheet2のC1に =Sheet1.A7としてC6までドラッグして、
sheet2のD1に =Sheet1.B7としてD6までドラッグして、
・・・・
と繰り返してとりあえず、出来たけど、これだと、増えたらその都度、追加しないといけないので、不便でした。

オートフィルを書き忘れました。
済みません。
都度追加ではなく予め横長に広くオートフィルしておき
セルの書式で、数値の表示形式に#をユーザー定義の
書式コード欄に設定しておけば0が表示されないので
問題ないと思います。

1 Like

YOKOMAYA3さんの数式を入力しても思うような感じにならなかったとしたら、どこかが間違っていたのかも知れません。
私もよくやるのですが、,や)の位置がずれてたりします

関数の簡単な説明と要点。
セルの指定($A1)はその数式をコピーした時に動いてほしくないセルの固定として$を入力します。(F4キーを押すといろいろ変化します)

OFFSET関数(基準セル,行,列)
基準のセルからx行y列移動したセルを参照します。
COLUMN関数(参照)
列番号を返します。Aなら1、Cなら3。
参照セルを省略した場合は、数式が入力されているセルの列番号を返します。
INT関数()
より小さい整数にします。(RoundDownと違うところ)
MOD関数(数字,除数)
数字÷除数のあまりを求めます。
IF関数(条件式,真の場合,偽の場合)
条件分岐です。TRUE=1のようなので
MOD(COLUMN(),2)=1を省略して書かれてあります。

1 Like

どうでもいい補足

INT関数()
より小さい整数にします。(RoundDownと違うところ)

INT関数に関するヘルプ
数値を四捨五入して整数にします。
https://help.libreoffice.org/7.5/ja/text/scalc/01/04060106.html?DbPAR=CALC#bm_id3159084
は珍しい誤訳です。


IF関数(条件式,真の場合,偽の場合)
条件分岐です。TRUE=1のようなので
MOD(COLUMN(),2)=1を省略して書かれてあります。

従って

ISEVEN(COLUMN())

と書くこともできます。

3 Likes

只今、Weblate上でマスタを修正し、採用してもらいました。

2 Likes

YOKOMAYA3さん

教えていただいた数式でとても便利になりました。
未入力部分には、0が付いておりましたが、自分用で
ユーザーの区分けするためだったので、公開してだれかに
見せるものでもないので問題なかったです。
余談ですが、オートフィル(この言葉が思い出さずに、ドラッグとか書いていました。年のせいか?忘れっぽいです)という単語が思い出さすに、ドラッグとか書いていました。

数の書式コードを#にしたら、0が消えました。
これ、便利そうです。
色々ありがとうございます。

sabr0さん
YOKOMAYA3さんの数式を入力して、念願のようになりました。
質問などで、数式を教えてもらったら、その関数を数式欄の左にあるfxをクリックして、関数タブを開いて、その関数が
どういうことをしているのか、見ています。
自分で調べることができるといいのですが、関数の説明文がよくわからないことが多くて、教えてもらった関数の説明文をみてもわからないこともありますが、わからなくてもなんとなく、なるほどって納得しています(返すとか引数とか、まだ、よく理解できないです)。
昔、プログラムができたら楽しいだろうなぁーって
おもったけど、どうしてその記号を使うの?その意味は?
って疑問が山積して匙投げました。
今まで教えてもらったことなどから、$の意味を数年前にやっとわかるようになりました。
オートフィルをすると、連動してずれてくる。
別の時に教えてもらった数式とくらべてみたりして
$を使う意味と効果を知りました。
この意味が分かったので、オートフィルが便利になりました。
まだ、わからない事ばかりですが、覚えてもしばらくしたら忘れていることもあり(あれ、なんだっけかなって、やったことあるはずだけどと)、過去のodsファイルを開いて、数式をコピーして、開いたファイルをみて、なるほど、そうやってたのか!って思いだしてる始末です。
質問したスレッドのURLはブラウザのブックマークに登録しています。
たとえば単語だけ知っていても文法を知らないと文章にならないけど、日本語も十分ではないと思ってますが(日本語は難しい)、通じる程度の文法は理解してると思っていますが、英語は文法が違うということまでは学校の授業できいた範囲で知ってたのですが、日本語は主語→述語かな?英語では述語→主語みたいなことを先生が言ってたと記憶しますが、これは民族性の違いかなって思っています。前置きを書いて本題に入る、誤解を招くトラブルを避けたい日本人は主語からはじまる。英語圏(外国)では、結果がすべて、回りくどいことはいいから先に結果(述語)をいうということなのかな?と中学の時思っていました。
脱線しました。
数式もプログラムも関数などをしるだけでは、だめで文法のようなルールが理解できていないと、単語だけ知ってても英語が喋れないようなもので、そこがいまだに、まだ
不明な部分が多いです。
皆様、ほんとすごいなっておもっております。
回答をいただいて感謝しております。
ありがとうございます。

今回、YOKOMAYA3さんから教えてもらった数式で
初めての使い方を見て、まだ理解できないのですが(今やりたいことは解決したので問題はないのですが)
((COLUMN()-1)/2) のNのあとの()も理由があるのですね。
(と)は最終的に同数になるのはわかってきましたが、
最後に))とか)))で終わる数式をよく見るので。

F4キー試してみました。
こんなことができるのですね。
びっくりしました。
関数を分かりやすく説明していただいてありがとうございます。

nobuさん

ヘルプのURLをみました。
より小さい整数にします。と四捨五入では違いますよね。
ヘルプを見たりしますが(日本語の)、ヘルプだけでは
なかなか解決できない私でございます。

MOD(COLUMN(),2)=1、色々難しくなってきました。
学生時代、成績もわるかったので。。。
MODの関数の説明を読んで、
除数ってなに?こんなレベルな私です。
今はネットで検索すれば意味が分かりから、学生時代、勉強して
無かった私でも、なんとかなっています。
除数って、割り算で割る方の数値のことだった。

ISEVEN の関数説明が英語だった。。。
関数ウイザードの説明文がコピペできるとよいですね。
コピーできない文字列をコピーするソフトでもコピーして
拾えなかった。
OCRなど使えば(Googleの)できるとおもうけど、工程が面倒なので、ISEVENで検索しました。

hidemuneさん
グッジョブです。

絶対参照、相対参照は判ったんですよね。
ただ、この肝心の絶対参照相対参照という
語彙が示されていないのが多少気になりますけど。

私は思うんですけど、 gggcccさんは説明文で判ると
お考えじゃないでしょうか?

関数や数式に限らず、説明だけで判る人は天才です。

読み慣れてくると、多少改善されますけど、ボキャブラリーが
最初は圧倒的に不足してますものね。説明をしてくれてる方と
説明を受けてる方の、単語力が全然違うのが、一点目。

次に、実際に使うことで初めて人間の頭の中での理解という
ものが産まれます。読んで判った積もりになるのは簡単ですけど
それは大きな勘違いで、実際には自分で使わないと、使い方も含めた
その物事の機能や効力を本当に判ることは出来ません。

この時にとても大事なのは、反芻です。繰り返し使ってみることで
よりちゃんと理解できるんです。同時に少し理解できてきたら
説明文を読み返すこともとても大事です。当初なんとなくしか
理解できていなかったことが、機能を使えるようになって
読んでみると、より説明がちゃんと飲み込めます。

この時に、肝となる語彙を叩き込むのも大切です。
折角絶対参照の$を理解したのに、肝心の絶対参照、相対参照が
出てないのは、ここの振り返りが、足りていないことを
示していると思うのです。

そして、繰り返し使ってみるプロセスが足りてないんじゃないか
と私は思うのです。

少し学びかけたことは自分で積極的に使ってみるようにしているでしょうか?
得た知識を、何度くらい繰り返し使おうとしていますか?

本当に判るには、10回位は繰り返し使うことをお勧めしたいと
思います。ちゃんと理解するにはそれぐらい掘り下げることが
必要と思いますので。