タグ: calc

  • Calcの日付フォーマット – LibreOffice

    「自由に使えるオフィススイート」https://ja.libreoffice.org/

    Calcのセルに日付データがある場合のフォーマットについてメモ書きです。
    例えば、セルの内容が次のような場合。

    A B
    1 2015-10-02 10:47 =TEXT(A1, “M月D日”)

    上記のようにB1セルに =TEXT(A1, “M月D日”) と書くと、
    10月2日
    と表示することができます。

    LibreOfficeヘルプ
    TEXT関数
    数の書式コード

  • CSVファイルの数値と指数表示について – LibreOffice Calc

    先日、CSV形式のデータを編集していてトラブルになりかけましたので整理しておきます。

    問題になったのはCSV形式の顧客データで、利用者が希望のユーザIDを登録できるものでした。アルファベットのみやアルファベットと数字の組み合わせであれば良いのですが、数字のみのIDで桁数が多いと Excel や Calc の仕様によって指数表示に変換されてしまう場合があります。

    画面内でスクロールなしで見渡せる程度であれば気がつくかもしれませんが、データ件数が多い場合は知らないまに数値が指数表示に変換されて、しかも指数表示のままテキストデータとして保存されてしまいます。
    そのような問題を回避するには、数字のみの列を「テキスト」列として扱う必要があります。

    テストのために、次のようなサンプルのCSVファイルを用意しました。

    サンプルCSV

    これをLibreOffice Calc(またはExcel)で開くと、テキストインポートのダイアログが表示されます。

    テキストのインポート

    まずは「OK」ボタンをクリックしてそのままインポートしてみます。

    インポート結果

    桁数が多いセル(16桁以上)が指数表示になります。
    これを、そのまま上書き(CSV形式)で保存してみます。
    ※選択した書式を保持をクリック

    CSV形式で保存

    保存したCSVファイルをテキストエディタで開いてみると、16桁以上の行が指数表示のまま文字列として保存されています。

    テキストエディタで確認

    例えば、クレジットカード番号のような数字をIDとして登録していると、CSV形式で編集を行う際にデータを壊してしまう可能性があるということです。
    このような問題を回避するには次のようにします。

    テキストのインポート

    先ほどの「テキストのインポート」ダイアログで問題となる列を選んで列の種類を「標準」から「テキスト」に変更して「OK」ボタンを押します。

    インポート結果

    前回とは違って指数表示がなくなり、すべての桁が表示されています。
    適当に編集して上書きで保存してみます。

    上書き保存
    CSV形式で保存

    保存したCSV形式ファイルをテキストエディタで開いてみます。

    テキストエディタで確認

    16桁以上の行が指数表示に変換されることなく保存されています。
    そして「テキスト」形式の列にはダブルクオートが付いています。
    ここで、テキスト列のダブルクオートを外したい場合は、「名前を付けて保存」->「フィルタ設定を編集する」として、

    名前を付けて保存

    「テキストファイルのエクスポート」ダイアログで「テキストの区切り記号」を空にして保存します。

    テキストファイルのエクスポート

    出来上がったCSVファイルをテキストエディタで開いてみます。

    テキストエディタで確認

    以上です。

    ※下記のページを参考にさせていただきました。
    「Excel:指数表示にされてしまった数値を一気に直す」
    [XL2002]セルの数値が指数表示になる条件

  • LibreOffice Calc で CSVファイルを扱う

    LibreOfficeのCalcでCSVを編集して保存する際に区切り文字や
    クオートが思うようにならない場合があったので調べてみました。

    サンプルのCSV(メモ帳)

    このような、カンマ区切り、ダブルクオートなしのテキストファイルを用意します。

    ファイルのアイコンをマウス右クリックでCalcから開きます。

    「テキストのインポート」のダイアログが表示されます。

    インポートするCSVのフォーマットに合わせて「区切りのオプション」を
    適宜変更します。
    今回はカンマ区切りでクオートなしなので「テキストの区切り記号」を
    空にしておきます。

    OKボタンでファイルを開くとCalcのスプレッドシートにCSVの
    内容が表示されます。

    スプレッドシートの内容を編集します。

    編集が完了したら上書き保存して一旦ファイルを閉じます。
    そしてメモ帳で開いてみます。

    問題なさそうです。

    では次にCSVを読み込む際のオプションを変えてみます。

    ここでは区切りのオプションを「タブ」、「コンマ」、
    そしてテキストの区切り記号を「”」(ダブルクオート)
    にしました。

    そして同様にCSVファイルを開いて適当に編集し、上書き保存します。

    ODF形式ではない場合の確認ダイアログが表示されました。

    「選択した書式を保持」で保存します。

    メモ帳で開いてみると、タブ区切りでテキスト項目が引用符(ダブルクオート)で
    囲まれています。

    ファイルを開く際の「区切りのオプション」の選び方によって
    保存する際のCSVのフォーマットが変わってしまうようです。

    ということで、CSVファイルを開く際の「区切りのオプション」を正しく
    選んでおくとよさそうです。
    それと、CSVファイルを開いたときの状態がわからない場合は、
    上書き保存ではなくて「名前を付けて保存」として、
    さらに「フィルタ設定を編集する」をチェックしておけば、

    保存時に「区切りのオプション」を調整することができます。

    参考)LibreOffice Help CSV ファイルのインポートとエクスポート

  • オートフィル – 連続データの作成

    LibreOfficeのCalcで連続データを作る場合。
    参考)http://help.libreoffice.org/Calc/Automatically_Calculating_Series

    CTRLキーを押しながら、フィルハンドル(セルの右下)をドラッグすると、
    同じ値で埋めることができます。

    複数のセルで増分のパターン(数値)を作れば、その増分のパターンを自動生成
    することができます。

    文字列による順序リスト(日、月、火、水、木、金、土)をカスタマイズしたい場合は、
    「ツール」->「オプション」->「LibreOffice Calc」->「順序リスト」で作ることができます。

    例えば、A1に1月とにゅうりょくして、A12までオートフィルします。
    次に、B1とC1に適当な値を入力して、フィルハンドルをダブルクリックすると、
    B1:C12の範囲に、増分1の値を自動入力することができます。

    あるいは「連続データ」を使う方法。

    値を埋めたいセルを選択して、
    「編集」->「連続データ」->「連続データの作成」を開きます。
    そして、開始値、停止値、増分値を適宜入力して実行すると、
    選択範囲が自動入力されます。

  • Calc で カウント – OpenOffice.org, countif

    Calcで集計する際の関数の使い方についてメモ書きです。

    COUNTIF(範囲; 条件)

    条件には、正規表現が使えます。

    (参考)OpenOffice.org Q&A
    検索条件に一致するセルの個数を返す関数は?