投稿

ラベル(LibreOffice)が付いた投稿を表示しています

文章の一部を自動生成して置き換えたい (LibreOffceのCalc(表計算)を使用)

イメージ
文章の一部を自動生成して置き換えたい 何をしたいのか簡単に説明すると 「今日(2020年9月13日)の出来事」 の年月日の部分を自動生成して、その自動生成したものを元の文章に置き換えようというもの。今日は9月13日を指定、明日は9月14日を指定、1ヶ月後は…、というのを出来るだけ簡略化したい。   ワープロソフトやテキストエディタの置換機能でその都度自分で置き換えることが出来ますが、それを数回作業をするだけならともかく頻繁に行う場合は面倒。   いろいろ方法はありますが、今回は表計算ソフト(LibreOffice Calc)を使ってやってみることにします。 (方法自体は単純な部類なので、MS Excelでもほぼ同じように出来るでしょう)   置き換えたい部分を自動生成 これは表計算のオートフィルで作ります。今回は単なる日付を生成するだけなので、オートフィルで作ります。   定形的部分を作成 文章の中でそのまま利用したい部分をセルに書いておきます。 今回の場合は日付前の 「今日の(」 と日付後の 「)の出来事」 をそれぞれ別のセルに書いておきます。   concat関数でテキストを連結 文章の必要な部分が揃ったので、最後にCalcのconcat関数でテキストを連結して完成させます。定形部分は固定セルとして指定するので、関数の指定方法は以下のようになります。  =CONCAT($C$2,B2,$C$3) この数式のセルを日付部分のセルに合わせてオートフィルしてやります。   ですが、この指定方法では日付部分が以下のようにおかしなことになります。  これは日付のフォーマット指定が解除された状態で連結されてしまっているからです。   日付部分をtext関数で文字列に変換 Calcなど表計算ソフトでは日付は内部で数値として扱われているので、この場合には任意のフォーマット指定をした文字列へと変換する必要があります。 こういうときは...

表計算ソフトで独自定義の変数が使えないかな?と思った話

イメージ
表計算ソフト(ExcelやLibreOffice Calcなどなど)を使って計算しているときに、何か特定の数値を計算に使いたい時がよくあります。数値としては家計簿として使ってる場合は消費税計算だったり、科学計算としては物理定数だったり。 まぁ適当なセルに数値を入力して、そこのセル番号を計算に用いればいいだけの話なのですが、 これにも一つ難点が。 何が難点かというと、特定の数値のセルが表にポツンとあると表のレイアウト上統一感が無くなってしまいます。セル幅を調節するときにも邪魔になったり。そのへんも数値のセルの置き場所を工夫したり、別のシートに書いておくなりすれば済みますがいささかスマートとは言い難いです。 で、表計算ソフトなのだからプログラミング言語みたいに自分で変数を指定してそこに数値を入れて使えるのではないだろうか?と思った次第。で、ネットで検索してみると、「名前」という機能が用意されている模様です。 「名前」(英語だと「Names」)はちょっとこれだけだとなんの機能なんだかよく分からないですが、簡単に説明すると、セルやセル範囲、計算、数値に別名を付けて管理して使えるようにする機能だそうな。 LibreOffice Calcでは 「挿入」 →「名前の表現」→「指定」 で、新規に名前を登録することが出来ます。 登録時のダイアログは上のスクリーンショットでして、まず名前に変数名を入れてやります。次にその下の欄に好きな数値を入れます。三番目の欄の範囲というのはその名前が有効とされる範囲です。 (最後の参照範囲オプションはよく分からなかったので説明は飛ばします) 例として aaa = 56.45 という変数を作りたい場合は名前を「aaa」、2番目の欄を「56.45」として新規作成してやればよいです。その変数を計算で使いたい場合は、セルで関数を書くのと同じように指定して使うことが出来ます。上の例だと適当なセルで「=aaa」と入力すると56.45がそのセルに展開されます。 さて、今回のブログの趣旨としては特定の数値を入れた変数を用いるということなので、ほぼこれで目的は達せられました。一応、「名前」の他の機能についても書いておくと、まずセル番地に別名を付けて管理して使うことも出来ます。その場合はもっと簡単な呼び出し方法があって 上のス...

Calc(LibreOffice) : 1つのセル内において改行で分けられているデータを2つのセルに分離する方法

イメージ
表計算のデータで、1つのセル内に改行で分けられている2つのデータが入っているというケースがあります。 例えば以下のような地図データの緯度経度が一緒になっているケース。 (例として分かりやすく1つだけ抜き出し、フォントも大きくして見やすくしてあります) このままでは計算や他にデータを使いたい場合に取り回しが悪いので、これを「緯度」と「経度」で2つのセルにそれぞれを分離したいと思います。 LibreOfficeのCalcにはデータを分離する「テキストをデータへ」という機能があります。それを用いると一応分離は出来るのですが、分離後は一つ下のセルに分離されたデータが移行します。この例のようにセル一つだけ扱う場合は特に問題はないですが、これが縦にデータがいくつも並んでいるケースでは都合が悪いです。出来れば対象のセルの右側のセルに分離したデータを移行したいので、ここではその方法について解説していきます。 なお、ここで用いるLibreOffice Calcのバージョンは5.1.6.2です。 まず「テキストをデータへ」という機能ですが、区切りに見なす記号として改行記号「\n」を入力してもそれでは分離されないようです。(なぜか縦のセルにすることは出来る模様) そこで、手順を変えて別の方法で分離することを考えます。 Calcには文字の検索・置換機能があるので、まずこれを利用します。以下のスクリーンショットのように 検索する文字列に「\n」 置換後の文字列に「 」(スペース1つ) を入力します。 置換を実行すると以下のようになります。ここでは単に改行記号をスペースに置き換えただけなので、この段階では1つのセルに2つのデータが入ったままです。 次に「テキストをデータへ」を用います(メニューバーの「データ」から選択)。ここで以下のスクリーンショットのように、 「次の記号で区切られたフィールド」を選択して「スペース」にチェックを入れます。 OKを押すと以下のようにちゃんと右側のセルに2つ目のデータを分離して移行させることが出来ます。 もし右側のセルに空きが無い場合は、「列の挿入」で空きセルの列を増やしてやればよいでしょう。 とりあえず、話としては 改行記号をスペースに置換する スペースを区切りとして2つのセル...

Calc(LibreOffice)で日時データを日付、時間(時や分)に分離する手順

イメージ
・何をしたいのか? 日時データ(例 : 2017/11/6 8:10)が含まれるデータファイルの解析で、日付や時間を分離しておきたい。 例えば、以下に気象庁のサイトからダウンロードしてきた東京の最近1ヶ月の毎時気温データがあります。 ここから毎日の10時のときの気温だけを抜き出したい場合に、日付と時間が一つのセルに一緒に入っていると扱いが面倒。そこで表計算ソフトの機能を使って、セルの中の日付データを分離したいというわけです。 データとしてはここに示した気象庁からダウンロードしてきたものに限らず、日時を扱う場合に汎用的に使える方法を示していきます。 使用する表計算ソフトはLibreOfficeのCalcです。 ・手順としては2つ 日時を分離する方法は2つあります(もっとあるかも知れないけれど今回はこの2つ)。 1つ目は特定の記号でデータを分離する方法。 2つ目は関数で欲しいデータのみを抜き出す方法。 ・手順1 記号で識別して分離する方法 とりあえずサンプルデータとして次の日時データを用います。 2017/11/6 8:10:00  これをセルの書式設定で調べると、以下の書式コードとなっています。 さてこのデータを分離していくわけですが、Calcの機能としては「テキストから列へ(X)…」を用います。メニューバーの「データ(D)」を開くと見つけられます。  クリックすると以下のウィンドウが開きます。 ここで「区切りのオプション」を指定することで、任意の記号でデータを分離していくことが出来ます。ここでは日付(201711/6)と時刻(8:10)を分離するため、スペースで区切るよう指定しています。 分離すると以下の画像のようにB列に日付、C列に時刻に分かれます。B列の日付に0:00と時刻がくっついてきてしまっていますが、これは書式設定で時刻を含まないように指定しましょう。  ここまでで整理すると以下の画像のようになります。 次にC列の時刻の分離をしていきます。手順としては先ほどと同様。時刻の入っているセルを選択して「テキストから列へ(X)…」を用います。 さっきは区切りオプションはスペースで分離しましたが、時刻はコロン「:」でそれぞれ分離出来る...

LibreOffice Calcで描けるグラフの種類 (メモとして)

イメージ
LibreOffice Calcで描けるグラフの種類を簡単にまとめてみました。 確認に使ったLibreOfficeのバージョンは5.1.6.2です。 (Ubuntu16.04.2 LTSのため、若干LibreOfficeのバージョンは古いです) 簡単なデータを元にいくつかのグラフを作成してみました。

Org-modeでODTファイルを出力する方法

目次 1. ODTファイルとは 2. なぜOrg-modeから変換するのか 3. あらかじめ必要な設定 4. 変換するときの操作方法 5. その他のツール 6. 最後に 1 ODTファイルとは ODTファイルとはOpenDocument Textファイルのことで、LibreOffice、Apache OpenOfficeなどで使われるワープロソフトのファイル形式と言えば分かりやすいと思います。 これはODF(OpenDocument Format)という仕様で規格化されているので、仕様通りに記述すればやろうと思えばメモ帳で書いてZIP圧縮出来さえすれば作れると思います(たぶん)。 まぁそれには仕様を把握する必要があるので、普通はオフィスソフト使って書きます。 そして仕様が公開されているので、その他のファイル形式から変換するツールがいろいろと出ています。今回紹介するOrg-modeからの変換もその一つです。 (その他にHTML、LaTeX、Markdownなど軽量マークアップ言語から変換するツールがいろいろと出ています) 2 なぜOrg-modeから変換するのか さて、Wordファイルを書くなら最初からLibreOfficeなどオフィスソフトを使って書けばいいです。特に理由がなければわざわざOrg-modeで書いてから変換して作るとかまどろっこしいことをする必要はないでしょう。その疑問に答えるとしたら Q: なぜOrg-modeからODTファイルを作るのか? A: そこにOrg-modeがあるから まぁ「何言ってんだ?」と思われるでしょうけど、個人的には理由としてはこれに尽きると思います。 それだけではなんなので具体的に理由を書いていくと Org-modeで書いていったのをそのままODTファイルに出来る ODTやHTMLなど各種ファイルを複数出力する場合に便利 Webサイト用ファイルに合わせて配布用ファイルを作るときなど Emacsによる編集機能が使える Org-modeの簡易記述表記が使える 執筆作業の取っ掛かりをテキストファイルベースに出来る あたり。 まったくデメリットが無いというわけでもなくて、 変...

クイズ : グラフ間違い探し

イメージ
クイズ : Twitterで「いいね!」をもらった数をグラフにしようとして以下の表を作りました。 日付 いいね!の数 06/01 5 06/02 3 06/05 7 06/20 9 この表からグラフを作成しましたが、次の2つのグラフが出来ました。 グラフ1 グラフ2 【問】 さて、この2つのグラフは同じデータから作られていますが、何が原因で違う形になってしまっているでしょうか? (正解はこのページの下に記載) 【答え】 両者のグラフは横軸(x軸) の取り扱いに違いがあります。 グラフ1は日付は単なる項目(テキスト)として認識させて作りました グラフ2は横軸に日付フォーマットを認識させて作りました このように横軸のフォーマットをどう指定するかで、出来上がるグラフは違うものとなります。自分がどんなグラフを作りたいか考えて作らないと、求めるグラフは作ることは出来ません。 グラフソフトや表計算のグラフ作成機能におまかせで簡単にグラフは作れますが、ちゃんと考えて作らないと作りたいものとは違ったグラフが出来てしまっているかも知れません。 グラフから何らかの結論を導くとき、これが原因で間違った結論が出てきてしまう恐れがあるので気をつけたいですね。 【参考リンク】 総務省統計局の「なるほど統計学園」というページに各種グラフについて簡単な説明があります。 統計局ホームページ 統計をグラフにあらわそう(種類と特徴)|なるほど統計学園

LibreOffice CalcでWebページのデータを取り込む方法が変更していた件

イメージ
LibreOffice CalcでWebサイトからデータを外部データとしてそのままインポートしようとしましたが、ヘルプに記述されている方法が若干変更されていました(おそらくバージョン5.1から)。またWebで検索しても調べた範囲では変更されていると記述されているサイトもなかったので、ここにまとめておきます。   確認した環境 LibreOffice version 5.1.3.2 OS : Ubuntu 16.04 LTS 結論 ヘルプではWebサイトからデータをインポートする場合は [メニューバー] → [挿入] → [外部データ] という手順が示されているが、実際には [メニューバー] → [シート] → [外部データへのリンク] という手順になっているのでこの機能を使う場合は注意した方がいいです。後述するように以前の操作方法に戻すことはできます。 この件は公式のフィードバックには報告されているので、 そのうち修正されるでしょう。手順変更がヘルプに反映されていないだけなのですぐに直るのではないでしょうか。 "Linking to external data" on libreoffice calc - Ask LibreOffice [挿入]には[外部データへのリンク]はないが このように[シート]には存在します。 補足 過去のバージョンで確認してみると LibreOffice version 5.0.2.2 (仮想マシン Ubuntu15.10上で確認) ではヘルプで示された方法通りに[挿入]メニューに[外部データの挿入]が存在します。 (このスクリーンショットを見ると、この頃には[シート]というメニューは存在しないようです) version 5.1のリリースノートを読むと、以下のように[シート]に関する記述があるのでこのバージョンから変更されたと思われます。 LibreOffice 5.1: Release Notes - The Document Foundation Wiki Organize sheet level context menus. 以前の方法に戻す LibreOfficeにはメニューのカスタマイズ機能があるので、従来の操作方法に戻すことも出来ます。 [ツール] ...

LibreOfficeの数式エディタで、余白が狭くて数式が表示しきれていない場合の対処法

イメージ
例えば   hat H と入力すれば、本来ならHの上に「^」が付いて表示されるはずだが、どうも余白が狭くて と出力されてしまう。 ということで、どうやら数式を表示する余白が狭いことが原因のようなので、余白を広くしてみる。 書式 → 間隔 → 分類 → 余白 と選ぶ(下の画像参照)。 「分類」をクリック ↓   リストの中から一番下の「余白」を選択 ↓ で、この画面の「上」となっているところを広げてやればよい。例えば1.00mmと設定してやれば とちゃんと「^」が付いた状態で表示される。

LibreOfficeの数式エディタで入力したまま出力する方法

イメージ
LibreOfficeの数式エディタで   int x dx と入力すると、intが変換されて  と出力される。 ここでintを変換させないで、そのまま出力してもらいたい場合は、出力したい部分を「"」で囲ってやればよい。   "int" x dx と入力すれば と出力される。 intをイタリックにしたければ   ital "int" x dx と入力すれば となる。 intのフォントがsansになっているようでバランスが悪いが、これは書式の設定でテキストに割り当てられているフォントを変更してやればよい。

LibreOffice Calcで時刻を24時以降で表示する

LibreOffice Calc(3.5.4.2)でセルに時刻を入力するとき、例えば午前2時を26時と入力したい場合、そのまま   26:00 と入力すると、   26:00:00 と表示される。秒単位まで表示する必要がないので【セルの書式設定】で   H:MM (時刻の書式設定の一番上) を指定すると、   2:00 と表示されてしまう。ここで、入力した通りに26:00と表示するには【セルの書式設定】のH:MMを編集して   [H]:MM のようにHを[ ]で囲むと、   26:00 と表示されるようになる。

スポンサーリンク