JP6623754B2 - Tabular data processing program, method and apparatus - Google Patents

Tabular data processing program, method and apparatus Download PDF

Info

Publication number
JP6623754B2
JP6623754B2 JP2015523912A JP2015523912A JP6623754B2 JP 6623754 B2 JP6623754 B2 JP 6623754B2 JP 2015523912 A JP2015523912 A JP 2015523912A JP 2015523912 A JP2015523912 A JP 2015523912A JP 6623754 B2 JP6623754 B2 JP 6623754B2
Authority
JP
Japan
Prior art keywords
data
item
tabular data
processing
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015523912A
Other languages
Japanese (ja)
Other versions
JPWO2014208205A1 (en
Inventor
祐二 新井
祐二 新井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Maeda Corp
Original Assignee
Maeda Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2013134184A external-priority patent/JP5497948B1/en
Priority claimed from JP2013134183A external-priority patent/JP5497947B1/en
Priority claimed from JP2013212378A external-priority patent/JP6283190B2/en
Application filed by Maeda Corp filed Critical Maeda Corp
Publication of JPWO2014208205A1 publication Critical patent/JPWO2014208205A1/en
Application granted granted Critical
Publication of JP6623754B2 publication Critical patent/JP6623754B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、表形式データ処理プログラム、方法及び装置に関する。   The present invention relates to a tabular data processing program, a method and an apparatus.

顧客情報、営業情報、その他のあらゆる情報を管理するため、例えばRDB(Relational Database)が利用されている。RDBを利用する場合、正規化したテーブルを作成することにより、情報を一元的に管理し、不整合、損失、冗長を低減することができる。なお、1又は複数のテーブルから同一の実体に関するレコードを求めるため、「名寄せ」と呼ばれる処理を行うこともある。名寄せすることにより、例えば、同一人物が有する複数の口座を取りまとめて扱うことができるようになるため、集計結果がより精確になる。   In order to manage customer information, sales information, and any other information, for example, an RDB (Relational Database) is used. When an RDB is used, by creating a normalized table, information can be centrally managed and inconsistency, loss, and redundancy can be reduced. In order to obtain a record for the same entity from one or a plurality of tables, a process called “name matching” may be performed. By performing name identification, for example, a plurality of accounts owned by the same person can be collectively handled, so that the counting result becomes more accurate.

また、利用者が、セルと自動実行データとの関連付けの登録・削除・更新を行うことによって、内部データを意識することなく表計算プログラムを自動実行させる技術が提案されている(例えば、特許文献1)。また、設計書に基づいて、コンピュータプログラムのソースコードを自動生成するという技術も提案されている(例えば、特許文献2)。   In addition, a technique has been proposed in which a user registers, deletes, and updates the association between a cell and automatic execution data to automatically execute a spreadsheet program without being conscious of internal data (for example, Patent Document 1). 1). Further, a technique of automatically generating a source code of a computer program based on a design document has been proposed (for example, Patent Document 2).

特開平5−73589号公報JP-A-5-73589 特開2009−223843号公報JP 2009-223843 A 特開2005−135221号公報JP 2005-135221 A

RDBを利用するためには、テーブルの設計、レコードの登録及びメンテナンス等が必要である。さらに、サーバの構築、データ操作言語やRDBMS(Relational Database Management System)の使用等、専門的な技術が必要になる場合もある。そこで、RDBを利用することなく簡易的にデータを管理するため、CSV(Comma Separated Values)に代表されるテキストで記録された表形式データ(「Delimiter-Separated Values」、「Character-Separated Values」等とも呼ばれる)を利用する場合も少なくない。   In order to use the RDB, table design, record registration and maintenance are required. Further, specialized techniques such as construction of a server, use of a data manipulation language, and use of an RDBMS (Relational Database Management System) may be required. Therefore, in order to easily manage data without using RDB, tabular data ("Delimiter-Separated Values", "Character-Separated Values", etc.) recorded in text represented by CSV (Comma Separated Values) Is also often used.

しかしながら、上記のような表形式データを表計算ソフト等で処理する場合、RDBMSによって実行するようにテーブルを結合したり値を集計したりといったデータ操作をするためには、手間と時間がかかるという問題がある。また、取引先ごと、支社ごと、部署ごと等でそれぞれ異なるデータ構造の情報資産を保有している場合に、これらを統合して集計等するときには専用のシステムを開発する必要があった。   However, when such tabular data is processed by spreadsheet software or the like, it takes time and effort to perform data operations such as combining tables and compiling values to be executed by an RDBMS. There's a problem. In addition, when information assets having different data structures are held for each business partner, each branch office, each department, and the like, it is necessary to develop a dedicated system for integrating and tabulating the information assets.

そこで、本発明は、デリミター(Delimiter)区切りで表現された表形式データの操作を支援するための技術を提供することを目的とする。   Therefore, an object of the present invention is to provide a technique for supporting the operation of tabular data expressed by delimiters.

本発明に係る表形式データ処理装置は、複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを処理する装置であって、ユーザの操作に基づき、複数の表形式データにそれぞれ含まれる項目を対応付けて1つの表形式データを生成する縦結合処理を行う縦結合部と、ユーザの操作に基づき、生成された1つの表形式データに含まれる項目をキーとして当該1つの表形式データに含まれるレコードを集約する集約処理を行う集約部と、項目の構成が同一の表形式データに対して、縦結合処理及び集約処理を実行するための再実行情報として、項目の対応付けとキー項目とを少なくとも記憶装置に記憶させる制御部とを有する。   A tabular data processing device according to the present invention is a device that processes tabular data in which a plurality of records including a plurality of elements respectively corresponding to a plurality of items are registered. A vertical combining unit that performs a vertical combining process of generating one tabular data by associating the items included in the data with each other, and using the items included in the generated one tabular data as a key based on a user operation An aggregating unit that performs an aggregating process for aggregating records included in one tabular data, and an item as re-execution information for executing a vertical joining process and an aggregating process on tabular data having the same item configuration And a control unit for storing at least the key item and the correspondence in the storage device.

このようにすれば、表形式データの構成をユーザの操作に基づいて再構築することができる。また、同様の構成を有する表形式データに対し、同様の操作を実行するための情報を記憶させておくことができる。したがって、表形式データの操作を支援するための技術を提供することができる。   In this way, the structure of the tabular data can be reconstructed based on the operation of the user. Further, information for executing a similar operation can be stored for tabular data having a similar configuration. Therefore, it is possible to provide a technique for supporting operation of tabular data.

また、表形式データ処理装置は、ユーザの操作に基づき、同一概念の関係、又は上位概念及び下位概念の関係にある語句の登録を受け付ける辞書登録部をさらに有し、集約部は、キーとされた項目の要素が同一概念の関係にあるレコード、又は上位概念及び下位概念の関係にあるレコードを集約するようにしてもよい。このようにすれば、レコードを集約する際にユーザが設定した辞書に基づいて名寄せを行うことができるようになる。   In addition, the tabular data processing apparatus further includes a dictionary registration unit that receives registration of words having a relationship between the same concept, or a relationship between a superordinate concept and a subordinate concept, based on a user's operation. Records in which the elements of the items have the same concept relationship or records in which the superordinate concept and the subordinate concept have a relationship may be aggregated. This makes it possible to perform name matching based on a dictionary set by the user when aggregating records.

また、表形式データ処理装置は、ユーザの操作に基づき、再実行情報と、当該再実行情報に従って処理を実行する時刻とを少なくとも含むスケジュール情報を記憶装置に記憶させるスケジュール設定部と、スケジュール情報に基づいて、スケジュール情報に設定された時刻に再実行情報が規定する縦結合処理及び集約処理を行うバッチ処理部とをさらに有するようにしてもよい。このようにすれば、処理をスケジュールしておくことができるようになる。   A table setting unit configured to store, in a storage device, schedule information including at least re-execution information and a time at which a process is to be executed in accordance with the re-execution information, based on a user operation; And a batch processing unit that performs the vertical combination process and the aggregation process defined by the re-execution information based on the time set in the schedule information. In this way, the process can be scheduled.

また、表形式データ処理装置は、縦結合処理及び集約処理の実行順序をグラフィカルに表示するとともに、縦結合処理を実行するための設定である項目の対応付け、又は集約処理を実行するための設定であるキー項目、又は縦結合処理もしくは集約処理に入力される表形式データの項目の構成もしくは出力される表形式データの項目の構成を表示する表示部をさらに有するようにしてもよい。このようにすれば、ユーザは、実行される表形式データの操作を視覚的に確認することができる。   In addition, the tabular data processing device graphically displays the execution order of the vertical combination process and the aggregation process, and associates items that are settings for performing the vertical combination process or settings for performing the aggregation process. The display unit may further include a display unit that displays a key item that is or a configuration of an item of tabular data input to the vertical combination process or the aggregation process or a configuration of an item of tabular data to be output. In this way, the user can visually confirm the operation of the tabular data to be executed.

本発明の他の側面に係る表形式データ処理装置は、複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する。具体的には、複数の入力テーブルにそれぞれ含まれる項目と、出力テーブルに含まれる項目との対応付けの指定を受け付ける設定処理部と、出力テーブルに含まれる項目の一覧を表示する一覧領域と、集約に用いるキー項目を表示するキー指定領域とを表示する表示制御部と、一覧領域に表示された項目をキー指定領域へドラッグするユーザの操作により、キー項目の指定を受け付けるキー指定部と、指定されたキー項目の値が所定の条件を満たす入力テーブルのレコードを集約し、出力テーブルを生成する出力部とを有する。   A tabular data processing apparatus according to another aspect of the present invention includes table data in which a plurality of records including a plurality of elements corresponding to a plurality of items are registered in an input table which is input tabular data. Aggregate records and generate an output table that is tabular data to be output. Specifically, a setting processing unit that receives designation of the correspondence between the items included in the plurality of input tables and the items included in the output table, a list area that displays a list of the items included in the output table, A display control unit that displays a key designation area that displays key items used for aggregation, and a key designation unit that accepts designation of key items by a user operation of dragging an item displayed in the list area to the key designation area. An output unit that aggregates records of the input table in which the value of the designated key item satisfies a predetermined condition and generates an output table.

このようにすれば、ユーザはテキストでクエリを入力することなく、データ操作の要求を入力することができる。すなわち、表形式データの操作を支援するための技術を提供することができる。   In this way, the user can input a request for data operation without inputting a query in text. That is, a technique for supporting operation of tabular data can be provided.

また、表形式データ処理装置は、キー項目の各々について、レコードを集約するための条件の指定を受け付けるキー設定部と、条件が指定されたキー項目の表示態様を、条件の指定が完了したことを示す所定の表示態様に変更する第1表示変更部とをさらに有するようにしてもよい。このようにすれば、キー項目に対してデータ操作の要求に必要な設定が完了したか否かをユーザが視覚的に認識できるようになる。   In addition, the tabular data processing device is configured such that, for each of the key items, a key setting unit that receives specification of a condition for aggregating records, and a display mode of the key item for which the condition is specified, that the specification of the condition is completed. And a first display change unit for changing the display mode to a predetermined display mode. With this configuration, the user can visually recognize whether or not the setting required for the data operation request for the key item has been completed.

また、表形式データ処理装置は、表示ステップにおいて、集計対象の項目を表示する集計項目領域をさらに表示し、一覧領域に表示された項目を集計項目領域へドラッグするユーザの操作により、集計項目の指定を受け付ける集計項目指定部と、指定された集計項目に対して、集計方法の指定を受けつける集計方法指定部と、集計項目領域において、集計方法が指定された集計対象の項目の表示態様を、集計方法の指定が完了したことを示す所定の表示態様に変更する第2表示変更部とをさらに有するようにしてもよい。このようにすれば、ユーザはテキストでクエリを入力することなく、集計に関するデータ操作の要求を入力することができる。また、集計項目に対して必要な設定が完了したか否かをユーザが視覚的に認識できるようになる。   Further, the tabular data processing device further displays, in the display step, a tallying item area for displaying the tallying target item, and operates the tallying item by dragging the item displayed in the list area to the tallying item area. A tally item specification part that receives the specification, a tally method specification part that receives the specification of the tally method for the specified tally item, and a display mode of the tallying target item for which the tally method is specified in the tally item area. A second display change unit configured to change to a predetermined display mode indicating that the specification of the counting method has been completed may be further provided. In this way, the user can input a request for data operation related to aggregation without inputting a query in text. Further, the user can visually recognize whether or not the necessary setting for the tally item has been completed.

また、表形式データ処理装置は、集計項目指定部が、集計項目として、新たな項目の生成の要求を受け付けるとともに、集計項目領域において、集計項目を、順序を表す所定の方向に沿って一列に表示し、集計方法指定部が、新たな項目の集計方法として、一覧領域の項目及び集計項目領域において当該新たな項目よりも順序が先の集計項目の少なくともいずれかを用いて、当該新たな項目の要素を決定する計算式又は条件式の指定を受け付けるようにしてもよい。このようにすれば、ユーザは、順序が先の項目に係る集計結果を用いてさらに集計を行うための要求を入力できる。段階を追って入力することにより、ユーザは、複雑な集計の要求も容易に入力することができる。   In the tabular data processing device, the tabulation item designating unit receives a request to generate a new item as a tabulation item, and arranges the tabulation items in a row in the tabulation item area in a predetermined direction representing the order. The display method and the totaling method designating unit use the item in the list area and / or the totaling item area in the totaling item area as at least one of the totaling items in the order of the new item as the totaling method of the new item. The specification of a calculation expression or a conditional expression for determining the element may be accepted. In this way, the user can input a request for further counting using the counting result of the item whose order is earlier. By inputting step by step, the user can easily input a complicated tally request.

また、表形式データ処理装置は、キー指定部において、指定されたキー項目を、順序を表す所定の方向に沿って一列に表示するとともに、ユーザのドラッグ操作に応じてキー項目の順序を変更し、出力部において、キー項目の値が所定の条件を満たす、入力テーブルのレコードを、キー項目の順序にしたがって複数のキーによるソートを行い、出力テーブルを生成するようにしてもよい。このようにすれば、ユーザは、キー項目の指定を容易に行うことができる。   Further, the tabular data processing device displays the designated key items in a line along a predetermined direction indicating the order in the key designation unit, and changes the order of the key items according to the drag operation of the user. The output unit may sort the records of the input table in which the values of the key items satisfy a predetermined condition by a plurality of keys according to the order of the key items to generate an output table. In this way, the user can easily specify key items.

また、本発明の他の側面に係る表形式データ処理装置は、複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する。具体的には、入力テーブルに基づいて、項目の順序に対応付けられている要素を抽出し、表形式データにおけるレコードの順序と対応付けて項目ごとに保持する項目別データを生成する項目別データ生成部と、項目別データに含まれる要素を集約し、集約後の項目別データから出力テーブルを生成する出力テーブル生成部とを有する。   In addition, the tabular data processing device according to another aspect of the present invention may include a table format data in which a plurality of records including a plurality of elements corresponding to a plurality of items are registered. Aggregate the included records and generate an output table that is tabular data to be output. More specifically, based on an input table, an element associated with an item order is extracted, and item-specific data to be generated for each item to be retained for each item in association with a record order in tabular data. It has a generation unit and an output table generation unit that aggregates elements included in the itemized data and generates an output table from the aggregated itemized data.

このようにすれば、表形式データを項目ごとの単位で表す項目別データに分解して扱うことができる。項目別データに含まれる要素を集約するだけでなく、出力テーブルに出力する項目に応じて項目別データを結合することができる。すなわち、項目別データは、複雑な処理を行うのに適している。なお、集約処理としては、例えばテーブルの結合や集計を行うことができる。   In this way, tabular data can be decomposed into item-specific data expressed in units of items and handled. In addition to aggregating the elements included in the itemized data, the itemized data can be combined according to the items output to the output table. That is, the item-by-item data is suitable for performing complicated processing. In addition, as the consolidation processing, for example, table joining and tabulation can be performed.

また、表形式データ処理装置は、項目別データを用いて、所定の条件を満たす複数の要素に対応する、レコードの順序の集合を生成する順序集合生成部をさらに有し、出力テーブル生成部は、集合に属する順序に基づいて項目別データに含まれる要素を集約するようにしてもよい。このようにすれば、レコードの順序(換言すれば、順番を示す番号)の集合を用いて集約を行うことができるようになる。ここで、順序の集合を生成するためには、所定の条件を満たす、各要素が属すべき集合にレコードの順序を分類すればよい。集約のためにレコードを検索するような必要がなく、レコードの順序の集合を用いることで高速に処理を行うことができる。   In addition, the tabular data processing apparatus further includes an ordered set generating unit that generates a set of the order of records corresponding to a plurality of elements satisfying a predetermined condition using the item-by-item data, and the output table generating unit includes: Alternatively, the elements included in the itemized data may be aggregated based on the order belonging to the set. In this way, aggregation can be performed using a set of record orders (in other words, numbers indicating the order). Here, in order to generate a set of orders, the order of records may be classified into a set that satisfies a predetermined condition and to which each element belongs. There is no need to search for records for aggregation, and processing can be performed at high speed by using a set of record orders.

また、表形式データ処理装置は、複数の表形式データ間における項目の対応付けを表すデータに基づいて、複数の表形式データの項目別データの和集合を生成する縦結合部をさらに有し、順序集合生成部は、項目別データの和集合を用いて、レコードの順序の集合を生成するようにしてもよい。このようにすれば、複数の表形式データを対象として、データ操作を行うことができるようになる。   In addition, the tabular data processing device further includes a vertical combining unit that generates a union of the item-by-item data of the plurality of tabular data, based on the data representing the correspondence of the items among the plurality of tabular data, The order set generation unit may generate a set of the order of the records using the union of the item-by-item data. This makes it possible to perform data manipulation on a plurality of tabular data.

また、表形式データ処理装置は、集合に属する順序に基づいて集約される要素に異なる値が存在する場合、集約後の項目別データには、異なる値を結合した要素を登録するようにしてもよい。このようにすれば、所定の条件を満たすレコードを1つに集約して表示することができるようになる。   Further, the table format data processing device may register an element in which different values are combined in the itemized data after aggregation when elements that are aggregated based on the order belonging to the set have different values. Good. In this way, records satisfying the predetermined condition can be displayed collectively.

また、表形式データ処理装置は、集約後の項目別データを用いて、第2の所定条件を満たす複数の要素に対応する、レコードの順序の集合を生成する第2順序集合生成部をさらに有し、出力テーブル生成部において、第2順序集合生成部が生成した集合に属する順序に基づいて集約後の項目別データに含まれる要素をさらに集約し、集約後の項目別データから出力テーブルを生成するようにしてもよい。このようにすれば、例えば結合や集計のような集約処理を行った後の項目別データに対して、さらに集約処理を行うことができる。すなわち、段階を追って複雑なデータ操作を行うことができる。   In addition, the tabular data processing apparatus further includes a second ordered set generation unit that generates a set of the order of the records corresponding to the plurality of elements satisfying the second predetermined condition using the itemized data after aggregation. The output table generation unit further aggregates the elements included in the aggregated itemized data based on the order belonging to the set generated by the second ordered set generation unit, and generates an output table from the aggregated itemized data. You may make it. In this way, it is possible to further perform the aggregation processing on the itemized data after the aggregation processing such as the combination and the aggregation is performed. That is, complicated data operations can be performed step by step.

また、本発明の他の側面に係る表形式データ処理装置は、複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する。具体的には、所定の規則に基づいてグループに分類した、所定の項目に対応する要素の件数を、グループごとに集計し、集計結果を出力する集計部と、入力データから、集計結果におけるグループのいずれかに分類された要素を含むレコードを抽出して出力する出力部と、出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更する修正部とを有する。   Further, a tabular data processing device according to another aspect of the present invention processes tabular data in which a plurality of records including a plurality of elements respectively corresponding to a plurality of items are registered as input data. Specifically, the number of elements corresponding to a predetermined item classified into a group based on a predetermined rule is totaled for each group, and a totaling unit that outputs a totaling result, and a group in the totaling result from input data, An output unit that extracts and outputs a record including an element classified as any of the above, and a correction unit that receives a request to change an element included in the output record and changes the element.

当該処理は、本発明におけるデータプロファイリング処理に相当する。このようにすれば、誤りや漏れ、重複等の不適切なデータを統計的手法(集計)によって可視化(出力)することができる。すなわち、不適切なデータの検出及び修正を支援することができる。   This processing corresponds to the data profiling processing in the present invention. In this way, inappropriate data such as errors, omissions, and duplication can be visualized (output) by a statistical method (totaling). That is, detection and correction of inappropriate data can be supported.

また、所定の規則に基づく分類は、要素を記述する表現形式に基づく分類であってもよい。このようにすれば、特にスキーマの定義されていないDSV形式等の入力データに登録され得る不適切な要素の存在を、ユーザは容易に発見することができる。具体的には、所定の規則に基づく分類は、要素が日付を表すか否か、一意であるか否か、空であるか否か、数値であるか否か、若しくは所定の文字列を含むか否かによって、又は要素ごと若しくは要素のデータパターンごとに行うようにしてもよい。   Further, the classification based on the predetermined rule may be a classification based on an expression format that describes an element. In this way, the user can easily find the presence of an inappropriate element that can be registered in input data such as a DSV format in which no schema is defined. Specifically, the classification based on a predetermined rule includes whether an element represents a date, whether it is unique, whether it is empty, whether it is a numerical value, or a predetermined character string. It may be performed depending on whether or not, or for each element or each element data pattern.

また、複数の表形式データ間における項目の対応付けを示すデータに基づいて、複数の表形式データの和集合を生成する縦結合部をさらに有し、集計部は、表形式データの和集合を入力データとするようにしてもよい。このようにすれば、本発明における縦結合後の表形式データを対象として、データプロファイリング処理を行うことができる。   Further, based on the data indicating the correspondence between the items in the plurality of tabular data, the apparatus further includes a vertical combination unit that generates a union of the plurality of tabular data. You may make it input data. In this way, the data profiling process can be performed on the tabular data after the vertical combination in the present invention.

なお、上記課題を解決するための手段の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、上記課題を解決するための手段の内容をコンピュータが実行する表形式データ処理方法や、上記課題を解決するための手段の内容を実行するステップをコンピュータに実行させる表形式データ処理プログラムを提供することもできる。さらに、当該プログラムを保持する記録媒体を提供するようにしてもよい。   The contents of the means for solving the above problems can be combined as much as possible without departing from the problems and technical ideas of the present invention. Further, there is provided a tabular data processing method for causing a computer to execute the contents of the means for solving the above problems, and a tabular data processing program for causing a computer to execute the steps for executing the contents of the means for solving the above problems. You can also. Further, a recording medium holding the program may be provided.

本発明によれば、デリミター(Delimiter)区切りで表現された表形式データの操作を支援するための技術を提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the technique for supporting the operation of the tabular data expressed by the delimiter (Delimiter) delimiter can be provided.

システムの構成の一例を示す機能ブロック図である。It is a functional block diagram showing an example of a system configuration. 表形式データ処理装置の一例を示す機能ブロック図である。It is a functional block diagram showing an example of a tabular data processing device. コンピュータの装置構成の一例を示す機能ブロック図である。FIG. 3 is a functional block diagram illustrating an example of a device configuration of a computer. ファイル読込処理の一例を示す処理フローである。It is a process flow which shows an example of a file reading process. 表形式データ(CSVファイル)を説明するための図である。FIG. 4 is a diagram for explaining tabular data (CSV file). 表形式データの行リストを説明するための図である。FIG. 4 is a diagram for explaining a row list of tabular data. Key−Value形式のマップを説明するための図である。FIG. 3 is a diagram for explaining a key-value format map. 縦結合設定処理の一例を示す処理フローである。It is a process flow which shows an example of a vertical combination setting process. 縦結合の設定データを説明するための図である。FIG. 9 is a diagram for describing setting data of vertical combination. 縦結合の設定データを説明するための図である。FIG. 9 is a diagram for describing setting data of vertical combination. 項目別リスト生成処理の一例を示す処理フローである。It is a process flow which shows an example of the list generation process according to item. 項目別リストを生成するためのオブジェクトの一例を示す図である。FIG. 4 is a diagram illustrating an example of an object for generating an itemized list. 項目別リストを説明するための図である。It is a figure for explaining an itemized list. 項目別リストを説明するための図である。It is a figure for explaining an itemized list. 縦結合処理の一例を示す処理フローである。It is a process flow which shows an example of a vertical combination process. 中間的に生成される項目別リストを説明するための図である。It is a figure for explaining the itemized list generated in the middle. 中間的に生成される項目別リストを説明するための図である。It is a figure for explaining the itemized list generated in the middle. 縦結合後の項目別リストを説明するための図である。It is a figure for explaining the itemized list after longitudinal combination. 出力処理の一例を示す処理フローである。It is a processing flow showing an example of output processing. 行別リストを説明するための図である。It is a figure for explaining a list according to a line. 出力する表形式データの行リストを説明するための図である。FIG. 7 is a diagram for explaining a row list of tabular data to be output. 出力する表形式データ(CSVファイル)を説明するための図である。FIG. 9 is a diagram for describing tabular data (CSV file) to be output. 横結合設定処理の一例を示す処理フローである。It is a process flow which shows an example of a horizontal coupling setting process. 横結合の条件を設定する画面を説明するための図である。FIG. 9 is a diagram for describing a screen for setting a condition of horizontal coupling. 横結合の条件を設定する画面を説明するための図である。FIG. 9 is a diagram for describing a screen for setting a condition of horizontal coupling. 横結合の条件を設定する画面を説明するための図である。FIG. 9 is a diagram for describing a screen for setting a condition of horizontal coupling. 集計設定処理の一例を示す処理フローである。It is a process flow which shows an example of a total setting process. 集計処理の条件を設定する画面を説明するための図である。It is a figure for explaining the screen which sets up the conditions of total processing. 集計処理の条件を設定する画面を説明するための図である。It is a figure for explaining the screen which sets up the conditions of total processing. 集計処理の条件を設定する画面を説明するための図である。It is a figure for explaining the screen which sets up the conditions of total processing. 集計処理の条件を設定する画面を説明するための図である。It is a figure for explaining the screen which sets up the conditions of total processing. 集計処理の条件を設定する画面を説明するための図である。It is a figure for explaining the screen which sets up the conditions of total processing. 集計処理の条件を設定する画面を説明するための図である。It is a figure for explaining the screen which sets up the conditions of total processing. 対照群生成処理の一例を説明するための処理フローである。It is a processing flow for explaining an example of control group generation processing. 対照群生成処理の一例を説明するための処理フローである。It is a processing flow for explaining an example of control group generation processing. 対照群を説明するための図である。It is a figure for explaining a control group. 対照群を説明するための図である。It is a figure for explaining a control group. ソートを説明するための図である。It is a figure for explaining sorting. ソートを説明するための図である。It is a figure for explaining sorting. ソートを説明するための図である。It is a figure for explaining sorting. ソートを説明するための図である。It is a figure for explaining sorting. 横結合・集計処理の一例を説明するための処理フローである。It is a process flow for demonstrating an example of a horizontal joining and totaling process. 新規属性の条件を設定する画面を説明するための図である。FIG. 14 is a diagram for describing a screen for setting a condition of a new attribute. 新規属性の条件を設定する画面を説明するための図である。FIG. 14 is a diagram for describing a screen for setting a condition of a new attribute. 新規属性の条件を設定する画面を説明するための図である。FIG. 14 is a diagram for describing a screen for setting a condition of a new attribute. 新規項目生成処理の一例を示す処理フローである。It is a process flow which shows an example of a new item generation process. 集計処理を説明するための図である。It is a figure for explaining totaling processing. 集計処理を説明するための図である。It is a figure for explaining totaling processing. 表形式データ処理装置の一例を示す機能ブロック図である。It is a functional block diagram showing an example of a tabular data processing device. 実施形態に係るジョブの概要を説明するための図である。FIG. 4 is a diagram for describing an outline of a job according to the embodiment. 縦結合処理の入力データの一例を示す表である。It is a table | surface which shows an example of the input data of a vertical combination process. 縦結合処理の入力データの一例を示す表である。It is a table | surface which shows an example of the input data of a vertical combination process. 縦結合処理の出力データの一例を示す表である。It is a table | surface which shows an example of the output data of a vertical combination process. 縦結合の設定画面(縦結合列編集画面)の一例を示す図である。It is a figure showing an example of a setting screen of a vertical combination (vertical combination column edit screen). 縦結合の設定画面(縦結合ベースファイル選択画面)の一例を示す図である。It is a figure showing an example of a setting screen of a vertical combination (vertical combination base file selection screen). 縦結合の設定画面(表示属性抽出設定画面)の一例を示す図である。It is a figure showing an example of a setting screen (display attribute extraction setting screen) of vertical combination. 横結合の入力データ(縦結合の出力データ)の一例を示す表である。It is a table | surface which shows an example of the input data of a horizontal connection (output data of a vertical connection). 縦結合の入力データの一例を示す表である。It is a table | surface which shows an example of the input data of a vertical combination. 縦結合の入力データの一例を示す表である。It is a table | surface which shows an example of the input data of a vertical combination. 横結合の出力データの一例を示す表である。It is a table | surface which shows an example of the output data of a horizontal connection. 横結合の設定画面(横結合画面)の一例を示す図である。It is a figure showing an example of a setting screen (horizontal combination screen) of horizontal combination. 横結合の設定画面(横結合キー設定画面)の一例を示す図である。FIG. 9 is a diagram illustrating an example of a horizontal combination setting screen (horizontal combination key setting screen). 横結合の入力データの一例を示す表である。It is a table | surface which shows an example of the input data of a horizontal connection. 横結合の出力例を示す表である。It is a table | surface which shows the example of an output of a horizontal connection. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. 横結合の他の出力例を示す表である。It is a table | surface which shows the other output examples of a horizontal coupling. ユーザ辞書の記載例を示す図である。It is a figure showing the example of a description of a user dictionary. ユーザ辞書における語句の関係を説明するための模式図である。FIG. 4 is a schematic diagram for explaining the relationship between words and phrases in a user dictionary. 他のユーザ辞書の記載例を示す表である。It is a table | surface which shows the description example of another user dictionary. 他のユーザ辞書の記載例を示す表である。It is a table | surface which shows the description example of another user dictionary. 集計処理の出力データの一例を示す表である。It is a table | surface which shows an example of the output data of a totaling process. 集計処理の設定画面(集計画面)の一例を示す図である。FIG. 9 is a diagram illustrating an example of a setting screen (totaling screen) of a totaling process. 集計処理の設定画面(集計キー設定画面)の一例を示す図である。FIG. 11 is a diagram illustrating an example of a setting screen of a tallying process (tallying key setting screen). 集計処理の設定画面(集計属性設定画面)の一例を示す図である。FIG. 9 is a diagram illustrating an example of a setting screen (total attribute setting screen) of a totaling process. 集計処理の設定画面(集計追加属性画面)の一例を示す図である。FIG. 11 is a diagram illustrating an example of a setting screen (total addition attribute screen) of a totaling process. 集計処理の設定画面(計算画面)の一例を示す図である。It is a figure showing an example of a setting screen (calculation screen) of a totaling process. 集計処理の設定画面(条件画面)の一例を示す図である。It is a figure showing an example of a setting screen (condition screen) of a totaling process. 集計処理の設定画面(関数処理画面)の一例を示す図である。It is a figure showing an example of a setting screen (function processing screen) of a totaling process. グループ化処理の入力データの一例を示す表である。It is a table | surface which shows an example of the input data of a grouping process. グループ化処理の出力データの一例を示す表である。It is a table | surface which shows an example of the output data of a grouping process. グループ化処理の設定画面(グループ化画面)の一例を示す図である。It is a figure showing an example of a setting screen (grouping screen) of grouping processing. グループ化解除処理の出力データの一例を示す表である。It is a table | surface which shows an example of the output data of a grouping release process. グループ化解除処理の設定画面(グループ化キー設定画面)の一例を示す図である。It is a figure showing an example of a setting screen (grouping key setting screen) of grouping release processing. ナンバリング処理の設定画面の一例を示す図である。It is a figure showing an example of a setting screen of a numbering process. 検索条件の設定画面の一例を示す図である。It is a figure showing an example of a setting screen of a search condition. XMLファイルの内容の一例を示す図である。FIG. 4 is a diagram illustrating an example of the content of an XML file. バッチ処理の概要を説明するための図である。FIG. 9 is a diagram for explaining an outline of batch processing. バッチ処理の設定画面の一例を示す図である。FIG. 7 is a diagram illustrating an example of a setting screen for batch processing. 新規ジョブ実行処理の一例を示す処理フロー図である。FIG. 14 is a process flowchart illustrating an example of a new job execution process. ジョブの設定画面一例を示す図である。FIG. 14 is a diagram illustrating an example of a job setting screen. ジョブの設定画面の他の例を示す図である。FIG. 14 is a diagram illustrating another example of a job setting screen. ジョブの設定画面の他の例を示す図である。FIG. 14 is a diagram illustrating another example of a job setting screen. ジョブの設定画面の他の例を示す図である。FIG. 14 is a diagram illustrating another example of a job setting screen. ジョブの設定画面の他の例を示す図である。FIG. 14 is a diagram illustrating another example of a job setting screen. バッチ定義処理の一例を示す処理フロー図である。It is a process flow figure showing an example of batch definition processing. 結合処理の設定画面の一例を示す図である。It is a figure showing an example of a setting screen of combination processing. 表形式データ処理装置の一例を示す機能ブロック図である。It is a functional block diagram showing an example of a tabular data processing device. データプロファイリング処理の一例を示す処理フローである。9 is a process flow illustrating an example of a data profiling process. データ品質ツール設定画面の一例を示す図である。It is a figure showing an example of a data quality tool setting screen. データ品質ツール画面の一例を示す図である。It is a figure showing an example of a data quality tool screen. データプロファイリング設定画面の一例を示す図である。FIG. 7 is a diagram illustrating an example of a data profiling setting screen. データプロファイリング画面の一例を示す図である。FIG. 6 is a diagram illustrating an example of a data profiling screen.

以下、図面を参照して、一実施形態に係る表形式データ処理プログラム、表形式データ処理装置、及び表形式データ処理方法について説明する。実施形態の構成は例示であり、本発明に係るプログラム、装置、方法は実施形態の構成には限定されない。   Hereinafter, a tabular data processing program, a tabular data processing device, and a tabular data processing method according to an embodiment will be described with reference to the drawings. The configuration of the embodiment is an exemplification, and the program, apparatus, and method according to the present invention are not limited to the configuration of the embodiment.

<<内部処理とユーザインターフェースに係る実施形態>>
<システム構成>
図1は、表形式データを処理するためのシステムの一例を示す機能ブロック図である。本実施形態に係るシステムは、表形式データ処理装置1と、ユーザ端末2とを含む。また、表形式データ処理装置1とユーザ端末2とは、ネットワーク3を介して接続されている。
<<< Embodiment of Internal Processing and User Interface >>>
<System configuration>
FIG. 1 is a functional block diagram showing an example of a system for processing tabular data. The system according to the present embodiment includes a tabular data processing device 1 and a user terminal 2. The tabular data processing device 1 and the user terminal 2 are connected via a network 3.

表形式データ処理装置1は、例えば、表形式データに対し本実施形態で説明する処理を行うサーバである。また、ユーザ端末2は、例えば、インターネットに接続する機能を有するコンピュータである。ユーザは、例えば、ユーザ端末2が有するインターネットブラウザを介して、表形式データ処理装置1に本実施形態で説明する処理の実行を命じたり、表形式データ処理装置1から受信した処理の結果を確認したりすることができる。ネットワーク3は、例えばインターネットやイントラネット等のようなネットワークシステムである。なお、表形式データ処理装置1とユーザ端末2とは、専用線で接続されていてもよい。また、図1では1つのユーザ端末2を示しているが、複数のユーザ端末が接続されていてもよい。一方、複数の表形式データ処理装置1がネットワーク上に存在し、分散して処理を行う構成としてもよい。   The tabular data processing device 1 is, for example, a server that performs processing described in the present embodiment on tabular data. The user terminal 2 is, for example, a computer having a function of connecting to the Internet. The user, for example, instructs the tabular data processing device 1 to execute the processing described in the present embodiment via the Internet browser of the user terminal 2 or checks the result of the processing received from the tabular data processing device 1 Or you can. The network 3 is, for example, a network system such as the Internet or an intranet. Note that the tabular data processing device 1 and the user terminal 2 may be connected by a dedicated line. Although FIG. 1 shows one user terminal 2, a plurality of user terminals may be connected. On the other hand, a plurality of tabular data processing apparatuses 1 may exist on a network and perform processing in a distributed manner.

<機能構成>
図2は、表形式データ処理装置1の一例を示す機能ブロック図である。本実施形態に係る表形式データ処理装置1は、データ記憶部101と、設定処理部102と、データ分割部103と、表示制御部104と、縦結合部105と、対照群生成部106と、横結合部107と、集計部108と、出力データ生成部109とを有する。
<Functional configuration>
FIG. 2 is a functional block diagram illustrating an example of the tabular data processing device 1. The tabular data processing device 1 according to the present embodiment includes a data storage unit 101, a setting processing unit 102, a data division unit 103, a display control unit 104, a vertical combination unit 105, a control group generation unit 106, It has a horizontal combining unit 107, a totaling unit 108, and an output data generating unit 109.

データ記憶部101は、例えば、本実施形態で処理の対象となる表形式データ、処理の要求を示す設定データ、処理結果として生成される表形式データ、その他処理において中間的に生成されるデータを保持する。表形式データ処理装置1は、例えば、カンマやタブ、スペース等の区切記号(「デリミター」とも呼ぶ)によってフィールド(「列」、「項目」、「要素」又は「属性」とも呼ぶ)が区切られ、改行によってレコード(「行」とも呼ぶ)が区切られたテキストデータを処理対象とする。本実施の形態では、ユーザが転送したCSVデータが、予め表形式データ処理装置1のデータ記憶部101に記憶されているものとする。   The data storage unit 101 stores, for example, tabular data to be processed in the present embodiment, setting data indicating a request for processing, tabular data generated as a processing result, and other data generated intermediately in processing. Hold. In the tabular data processing device 1, for example, fields (also called “columns”, “items”, “elements” or “attributes”) are separated by delimiters (also called “delimiters”) such as commas, tabs, and spaces. Text data in which records (also referred to as “lines”) are separated by line feeds are to be processed. In the present embodiment, it is assumed that CSV data transferred by the user is stored in the data storage unit 101 of the tabular data processing device 1 in advance.

設定処理部102は、例えば、結合する複数の表形式データの指定、レコードを集約する条件、集計の方法のようなデータ操作の要求を、ネットワーク3を介してユーザ端末2から受け付け、データ記憶部101へ記憶させる。データ分割部103は、表形式データを、レコード別(行ごと)に分割したり、項目別(列ごと)に分割したりして、データ記憶部101へ記憶させる。表示制御部104は、ユーザがデータ操作の要求を入力するためのGUI(Graphical User Interface)を生成したり、結果を表示するための画面を生成したりする。   The setting processing unit 102 receives, for example, a specification of a plurality of tabular data to be combined, a condition for aggregating records, and a request for a data operation such as a method for aggregating from the user terminal 2 via the network 3. 101 is stored. The data dividing unit 103 divides the tabular data by record (by row) or by item (by column) and stores the data in the data storage unit 101. The display control unit 104 generates a GUI (Graphical User Interface) for the user to input a data operation request, and generates a screen for displaying the result.

縦結合部105は、例えば複数の表形式データに含まれるレコードを1つの表形式データに統合する処理(「縦結合処理」とも呼ぶ)を行う。対照群生成部106は、集約するレコードを行番号(「レコード番号」とも呼ぶ)の集合として表す対照群を生成する処理を行う。なお、行番号とは、例えば、CSVデータの1行ごとに先頭から付される通し番号であり、行番号により、表形式データにおいてレコードを一意に特定することができる。横結合部107は、例えばキー項目の値が所定の条件を満たす、複数の表形式データのレコードを1レコードに結合する処理(「横結合処理」とも呼ぶ)を行う。集計部108は、データ記憶部101に記憶された設定に基づいて、値を数値として集計したり、値を文字列として1つのフィールドに統合したりする処理を行う。出力データ生成部109は、結合された項目別データから行別データを生成し、CSVデータとして出力する。   The vertical combining unit 105 performs, for example, a process (also referred to as “vertical combining process”) of integrating records included in a plurality of tabular data into one tabular data. The control group generation unit 106 performs a process of generating a control group indicating records to be aggregated as a set of row numbers (also referred to as “record numbers”). The line number is, for example, a serial number added from the beginning for each line of CSV data, and a record can be uniquely specified in tabular data by the line number. The horizontal combining unit 107 performs a process of combining a plurality of records of tabular data into one record in which the value of a key item satisfies a predetermined condition (also referred to as “horizontal combining process”). The tabulation unit 108 performs a process of tabulating a value as a numerical value or integrating the value as a character string into one field based on the settings stored in the data storage unit 101. The output data generation unit 109 generates line-by-line data from the combined item-by-item data and outputs the data as CSV data.

<装置構成>
図3は、コンピュータの一例を示す装置構成図である。表形式データ処理装置1及びユーザ端末2は、図3に示すようなコンピュータである。図3に示すコンピュータ1000は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、通信IF(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラム(「ソフトウェア」又は「アプリケーション」とも呼ぶ)を実行することにより本実施の形態に係る処理等を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAM(Random Access Memory)やROM(Read Only Memory)等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等である。主記憶装置1002や補助記憶装置1003は、表形式データ処理装置1のデータ記憶部101として働く。通信IF1004は、他のコンピュータとの間でデータを送受信する。表形式データ処理装置1及びユーザ端末2は、通信IF1004を介してネットワーク3に接続される。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。入出力IF1005は、入出力装置と接続され、ユーザから入力を受け付けたり、ユーザへ情報を出力したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、ドライブ装置1006)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、上記のようなコンピュータを図2に示した表形式データ処理装置1として働かせる。また、ユーザ端末2は、例えば、CPU1001が実行するインターネットブラウザを介して表形式データ処理装置1へ処理を要求したり、受信した処理結果を表示したりする。
<Apparatus configuration>
FIG. 3 is an apparatus configuration diagram illustrating an example of a computer. The tabular data processing device 1 and the user terminal 2 are computers as shown in FIG. The computer 1000 shown in FIG. 3 includes a CPU (Central Processing Unit) 1001, a main storage device 1002, an auxiliary storage device 1003, a communication IF (Interface) 1004, an input / output IF (Interface) 1005, a drive device 1006, and a communication bus 1007. ing. The CPU 1001 performs processing and the like according to this embodiment by executing a program (also referred to as “software” or “application”). The main storage device 1002 caches programs and data read by the CPU 1001, and expands a work area of the CPU. The main storage device is, specifically, a random access memory (RAM) or a read only memory (ROM). The auxiliary storage device 1003 stores a program executed by the CPU 1001, setting information used in the present embodiment, and the like. The auxiliary storage device 1003 is, specifically, a hard disk drive (HDD), a solid state drive (SSD), a flash memory, or the like. The main storage device 1002 and the auxiliary storage device 1003 function as the data storage unit 101 of the tabular data processing device 1. The communication IF 1004 transmits and receives data to and from another computer. The tabular data processing device 1 and the user terminal 2 are connected to the network 3 via the communication IF 1004. The communication IF 1004 is, specifically, a wired or wireless network card or the like. The input / output IF 1005 is connected to the input / output device, and accepts input from a user and outputs information to the user. The input / output device is, specifically, a keyboard, a mouse, a display, a touch panel, or the like. The drive device 1006 reads data recorded on a storage medium such as a magnetic disk, a magneto-optical disk, and an optical disk, and writes data on the storage medium. The above components are connected by a communication bus 1007. A plurality of these components may be provided, or some of the components (for example, the drive device 1006) may not be provided. Further, the input / output device may be configured integrally with the computer. Also, a program executed in the present embodiment is provided via a portable storage medium readable by the drive device 1006, a portable auxiliary storage device 1003 such as a flash memory, a communication IF 1004, and the like. It may be. When the CPU 1001 executes the program, the above-described computer operates as the tabular data processing device 1 shown in FIG. Further, the user terminal 2 requests processing to the tabular data processing device 1 via an Internet browser executed by the CPU 1001 or displays a received processing result, for example.

<ファイル読込処理>
次に、表形式データ処理装置1が実行する処理を、処理フローを用いて説明する。図4は、ファイル読込処理の一例を示す処理フローである。まず、表形式データ処理装置1の設定処理部102は、CSVファイルの入力を受け付ける(図4:ステップS1)。具体的には、設定処理部102は、ユーザ端末2からCSVファイルを受信し、データ記憶部101に記憶させる。例えば、図5に示すようなCSVファイルが入力される。
<File reading process>
Next, processing executed by the tabular data processing device 1 will be described using a processing flow. FIG. 4 is a processing flow showing an example of the file reading processing. First, the setting processing unit 102 of the tabular data processing device 1 receives an input of a CSV file (FIG. 4: step S1). Specifically, the setting processing unit 102 receives the CSV file from the user terminal 2 and stores the CSV file in the data storage unit 101. For example, a CSV file as shown in FIG. 5 is input.

図5Aは、本実施形態に係る表形式データの処理を説明するための図である。図5AのCSVファイルは、1行目にカンマ区切りで複数の項目名を有し、2行目以降にカンマ区切りで複数のフィールドを含むレコードを複数有している。また、カンマで区切られた項目名及びフィールドは、それぞれカンマで区切られた順序で対応しており、1つのCSVファイルには、項目名及び各レコードのフィールドが同数存在する。   FIG. 5A is a diagram for describing processing of tabular data according to the present embodiment. The CSV file in FIG. 5A has a plurality of item names separated by commas on the first line, and a plurality of records including a plurality of fields separated by commas on the second and subsequent lines. The item names and fields separated by commas correspond in the order separated by commas, and one CSV file has the same number of item names and fields of each record.

また、設定処理部102は、項目名及びレコードの開始行の入力を受け付ける(S2)。具体的には、ユーザは、CSVファイルごとに項目名が登録されている行、及びレコードが登録されている行の開始位置を、ユーザ端末2を介して指定する。一方、設定処理部102は、項目名が登録されている行、及びレコードが登録されている行の開始位置を、CSVファイルと対応付けてデータ記憶部101に記憶させる。図5Aの例では、1行目が項目名の開始位置であり、2行目がレコードの開始位置である。   Further, the setting processing unit 102 receives an input of an item name and a start line of a record (S2). Specifically, the user specifies, via the user terminal 2, a line in which an item name is registered for each CSV file and a start position of a line in which a record is registered. On the other hand, the setting processing unit 102 causes the data storage unit 101 to store the line where the item name is registered and the start position of the line where the record is registered in association with the CSV file. In the example of FIG. 5A, the first line is the start position of the item name, and the second line is the start position of the record.

その後、データ分割部103は、CSVファイルの各行を要素とするリストを生成する(S3)。具体的には、データ分割部103は、例えばCSVファイルの先頭から1行ずつ読み出し、1行目から順に新たな要素としてリストに追加する。ここでは、例えば、図5Bに示す表形式データの行リストに示すようなデータが生成される。図5Bの行リストでは、リストの各要素が実線で区切られ、各要素にはCSVデータの各レコードが登録されている。   After that, the data division unit 103 generates a list including each line of the CSV file as an element (S3). Specifically, the data division unit 103 reads, for example, one line at a time from the head of the CSV file, and adds the new elements to the list in order from the first line. Here, for example, data as shown in the row list of the tabular data shown in FIG. 5B is generated. In the row list of FIG. 5B, each element of the list is separated by a solid line, and each record of CSV data is registered in each element.

また、データ分割部103は、生成された表形式データの行リストを、表形式データのファイル名と対応付けて、データ記憶部101へ記憶させる(S4)。例えば、Key(キー)をファイル名とし、Value(値)に行リストを登録した、Key−Value形式のデータ構造(いわゆるマップ)で記憶するようにしてもよい。   Further, the data division unit 103 stores the generated row list of the tabular data in the data storage unit 101 in association with the file name of the tabular data (S4). For example, a key (key) may be used as a file name, and a row list may be registered in a value (value), and the data may be stored in a key-value format data structure (so-called map).

その後、例えば設定処理部102は、未処理のCSVファイルが存在するか判断する(S5)。未処理のCSVファイルが存在する場合(S5:YES)、処理はS1に戻る。一方、未処理のCSVファイルが存在しない場合(S5:NO)、ファイル読込処理を終了する。本実施形態では、ファイル読込処理で読み込まれた1又は複数のCSVファイルを用いて、表形式データを結合したり、集計したりする。   Then, for example, the setting processing unit 102 determines whether there is an unprocessed CSV file (S5). If there is an unprocessed CSV file (S5: YES), the process returns to S1. On the other hand, if there is no unprocessed CSV file (S5: NO), the file reading process ends. In the present embodiment, tabular data is combined or tabulated using one or a plurality of CSV files read in the file reading process.

<縦結合設定処理>
次に、複数の表形式データに含まれるレコードの和集合を生成する縦結合処理を説明する。図6は、縦結合設定処理の一例を示す処理フローである。
<Vertical combination setting process>
Next, a vertical combination process for generating a union of records included in a plurality of tabular data will be described. FIG. 6 is a processing flow illustrating an example of the vertical combination setting processing.

まず、設定処理部102は、ユーザ端末2から、複数の表形式データに含まれる項目のうち、対応する項目の入力を受け付ける(図6:S11)。ユーザは、結合する複数の表形式データを指定するとともに、結合する表形式データに含まれ、結合後の表形式データにおいて同一の列(項目)に表示する項目の対応付けを指定する。ここでは、同じ実体を示す項目が対応付けられる。例えば、あるCSVファイルにおける「氏名」という項目と、別のCSVファイルにおける「名前」という項目との対応付けが入力される。   First, the setting processing unit 102 receives an input of a corresponding item from among the items included in the plurality of tabular data from the user terminal 2 (FIG. 6: S11). The user designates a plurality of tabular data to be combined, and designates a correspondence between items included in the combined tabular data and displayed in the same column (item) in the combined tabular data. Here, items indicating the same entity are associated with each other. For example, the correspondence between the item “name” in one CSV file and the item “name” in another CSV file is input.

また、本ステップでは、1つの表形式データに含まれる複数の項目を結合し、1つの項目として扱うようにしてもよい。設定処理部102は、ある表形式データに含まれる複数のフィールドの結合と、他の表形式データに含まれる1のフィールド又は複数のフィールドの結合との対応付けの入力を受け付ける。例えば、あるCSVファイルにおける「苗字」という項目及び「名前」という項目の結合と、他のCSVファイルにおける「氏名」という項目との対応付けが入力される。   In this step, a plurality of items included in one tabular data may be combined and treated as one item. The setting processing unit 102 receives an input of association between a combination of a plurality of fields included in certain tabular data and a combination of one field or a plurality of fields included in another tabular data. For example, a combination of an item of “last name” and an item of “name” in a certain CSV file and an association with an item of “name” in another CSV file are input.

図7Aは、本ステップで入力される対応付けを説明するための図である。図7Aに示す表の1行目は、項目の通し番号を示している。また、表の2行目は、縦結合後の表形式データの出力項目名を示す。結合後の表形式データの項目名は、ユーザによって入力されるものとする。また、3行目以降の各行は、異なるCSVファイルにおける項目名を示す。そして、同じ列に登録されている項目名は、本ステップにおいて対応付けられた項目名を示す。例えば、4行目に示すCSVファイル「AAA」における「苗字」及び「名前」という項目の組合せと、5行目に示すCSVファイル「BBB」における「氏名」という項目とが対応付けられている。なお、CSVファイル名が「共通」の行は、登録されていないCSVファイル(図7Aの例では、「AAA」及び「BBB」以外のCSVファイル)にも共通して適用される設定である。   FIG. 7A is a diagram for explaining the association input in this step. The first line of the table shown in FIG. 7A indicates the serial number of the item. The second line of the table shows the output item names of the tabular data after the vertical combination. It is assumed that the item names of the tabulated data after the combination are input by the user. The third and subsequent lines indicate item names in different CSV files. The item names registered in the same column indicate the item names associated in this step. For example, the combination of the items "Last name" and "Name" in the CSV file "AAA" shown on the fourth line is associated with the item "Name" in the CSV file "BBB" shown on the fifth line. The line with the CSV file name “common” is a setting that is commonly applied to unregistered CSV files (in the example of FIG. 7A, CSV files other than “AAA” and “BBB”).

このように、対応する項目がある場合には、ユーザの操作により本ステップで対応付けられる。なお、複数の表形式データには、必ずしも対応する項目があるわけではない。また、本ステップでは、対応する項目をユーザが入力するものとして説明したが、例えば異なる表形式データに含まれる同一の項目名を予め対応付けて提示し、ユーザが適宜修正できるようにしてもよい。   Thus, when there is a corresponding item, it is associated in this step by the operation of the user. Note that a plurality of tabular data items do not always have corresponding items. In this step, the corresponding items are described as being input by the user. However, for example, the same item names included in different tabular data may be presented in advance in association with each other so that the user can appropriately correct the items. .

次に、設定処理部102は、入力された縦結合の設定データをデータ記憶部101に記憶させる(S12)。設定処理部102は、図7Aを用いて説明した項目の対応付けに基づいて、例えば、縦結合後の出力項目名に対し、当該出力項目名に対応する複数のCSVファイル名及び項目名を対応付けて登録する。例えば、図7Bに示すような、縦結合後の出力項目名のリストを生成して、データ記憶部101に記憶させる。   Next, the setting processing unit 102 causes the data storage unit 101 to store the input vertical combination setting data (S12). The setting processing unit 102, for example, associates a plurality of CSV file names and item names corresponding to the output item names with the output item names after the vertical combination based on the item association described with reference to FIG. 7A. And register it. For example, a list of output item names after vertical combination as shown in FIG. 7B is generated and stored in the data storage unit 101.

図7Bの例では、実線で区切られた、出力項目を表す要素の中に、CSVファイル名及び項目名が入れ子状に登録されている。なお、CSVファイル名が空(CSVファイル名に何も登録されていない)の項目名は、特定のCSVファイルに限らず、出力項目に対応付けられていることを示す。以上で、縦結合設定処理を終了する。縦結合設定処理は、縦結合を行うCSVファイルの組合せについて、予め実行される。   In the example of FIG. 7B, CSV file names and item names are registered in a nested manner in elements representing output items separated by solid lines. Note that an item name with an empty CSV file name (nothing is registered in the CSV file name) indicates that the item name is not limited to a specific CSV file but is associated with an output item. Thus, the vertical combination setting process ends. The vertical combination setting process is executed in advance for a combination of CSV files for performing vertical combination.

<項目別リスト生成処理>
次に、縦結合処理等の前処理として実行される項目別リスト生成処理を説明する。図8は、項目別リスト生成処理の一例を示す処理フローである。
<Item-specific list generation processing>
Next, an item-specific list generation process executed as a pre-process such as the vertical combination process will be described. FIG. 8 is a processing flow illustrating an example of the item-specific list generation processing.

まず、データ分割部103は、処理対象の表形式データの行リストを1つ取得する(図8:S21)。ここでは、データ分割部103は、例えば結合するCSVファイルの行リストを1つデータ記憶部101から読み出す。   First, the data division unit 103 acquires one row list of tabular data to be processed (FIG. 8: S21). Here, the data division unit 103 reads, for example, one row list of the CSV file to be combined from the data storage unit 101.

次に、データ分割部103は、行リストから項目名の行(図5Bの例では、1行目)にカンマ区切りで登録されている項目名の数を計数する(S22)。項目名及びレコードの開始行は、図4のS2で指定された情報をデータ記憶部101から読み出して用いる。本ステップでは、データ分割部103は、処理対象の表形式データに含まれる列(項目名)の数を求める。   Next, the data division unit 103 counts the number of item names registered in the line of the item name (the first line in the example of FIG. 5B) from the line list, separated by commas (S22). As the item name and the start line of the record, the information specified in S2 of FIG. In this step, the data division unit 103 calculates the number of columns (item names) included in the tabular data to be processed.

その後、データ分割部103は、計数された項目名の数だけ項目別リストを生成し、初期化する(S23)。例えば、項目別リストに値を登録等するためのクラスを定義しておき、図9に示すようなオブジェクトを項目名の数だけ生成するようにしてもよい。図9のオブジェクトには、値を追加したり項目名を追加したりするためのメソッド(関数)が定義されている。また、本ステップでは、項目別リストに項目名を追加する。これにより、項目名によって項目別リストを識別することができるようになる。なお、項目別リストは、例えば表形式データ中の順序を示す通し番号で識別するようにしてもよい。図9のオブジェクトは一例であり、表形式データの項目ごとに要素を保持するリストを生成できれば、本実施形態は特定のプログラミング言語等には限定されない。   After that, the data division unit 103 generates and initializes item-specific lists by the number of counted item names (S23). For example, a class for registering a value in the item-specific list may be defined, and objects as shown in FIG. 9 may be generated by the number of item names. In the object of FIG. 9, a method (function) for adding a value or adding an item name is defined. In this step, an item name is added to the item-specific list. As a result, the itemized list can be identified by the item name. The itemized list may be identified by a serial number indicating the order in the tabular data, for example. The object in FIG. 9 is an example, and the present embodiment is not limited to a specific programming language or the like as long as a list holding elements for each item of tabular data can be generated.

また、データ分割部103は、表形式データの行リストから、レコードの登録された要素を1つ読み出す(S24)。例えば、図5Bに示した行リストから、2行目の要素が読み出される。ここでは、CSVファイルの1行分に相当するデータ(すなわち、レコード)が読み出される。   The data division unit 103 reads one registered element of the record from the row list of the tabular data (S24). For example, the element of the second row is read from the row list shown in FIG. 5B. Here, data (that is, a record) corresponding to one line of the CSV file is read.

次に、データ分割部103は、読み出したデータから、カンマで区切られた複数の値を分解し、複数の項目別リストにそれぞれ追加する(S25)。ここでは、データ分割部103は、CSVファイルの1行に含まれる、複数の項目に対応する値を、項目の数だけ生成された項目別リストの各々に新たな要素として登録する。   Next, the data division unit 103 decomposes a plurality of values separated by commas from the read data and adds them to a plurality of item-specific lists (S25). Here, the data division unit 103 registers the values corresponding to the plurality of items included in one line of the CSV file as new elements in each of the item-specific lists generated by the number of items.

そして、データ分割部103は、行リストに未処理の要素が存在するか判断し(S26)、未処理の要素が存在する場合(S26:YES)は、S24の処理に戻る。一方、未処理の要素が存在しない場合(S26:NO)、データ分割部103は、表形式データの行リストに未処理のものが存在するか判断する(S27)。未処理の行リストが存在する場合(S27:YES)、データ分割部103は、S21の処理に戻る。一方、未処理の行リストが存在しない場合(S27:NO)、データ分割部103は、項目別リスト生成処理を終了する。   Then, the data division unit 103 determines whether an unprocessed element exists in the row list (S26). If an unprocessed element exists (S26: YES), the process returns to S24. On the other hand, when there is no unprocessed element (S26: NO), the data division unit 103 determines whether an unprocessed element exists in the row list of the tabular data (S27). If there is an unprocessed row list (S27: YES), the data division unit 103 returns to the processing of S21. On the other hand, when there is no unprocessed row list (S27: NO), the data division unit 103 ends the item-specific list generation processing.

項目別リスト生成処理では、表形式データに含まれる項目(列)ごとに、各レコード(行)の値を1行目から順に要素として保持するリストが生成される。図5Bに示した行リストの場合、例えば、図10Aに示すような項目別リストが生成される。図10Aには、「No.」、「ID」、「L_Name」、「F_Name」、「Sex」、「Station」及び「Expense」の各項目名に対応する6つの項目別リストが示されている。各項目別リストには、表形式データにおけるレコードの順に対応する順序で、値が要素として保持される。   In the item-specific list generation processing, a list is generated for each item (column) included in the tabular data, in which the values of the records (rows) are sequentially held as elements from the first row. In the case of the row list shown in FIG. 5B, for example, an itemized list as shown in FIG. 10A is generated. FIG. 10A shows six item-specific lists corresponding to the item names “No.”, “ID”, “L_Name”, “F_Name”, “Sex”, “Station”, and “Expense”. . In each itemized list, values are held as elements in the order corresponding to the order of records in tabular data.

<縦結合処理>
次に、複数の表形式データに含まれるレコードの和集合を生成する縦結合処理を説明する。なお、本実施形態では、図10Aに示した項目別リストと、他の表形式データから生成された図10Bに示す項目別リストとが予めデータ記憶部101に記憶されているものとする。図11は、縦結合処理の一例を示す処理フローである。
<Vertical combination processing>
Next, a vertical combination process for generating a union of records included in a plurality of tabular data will be described. In this embodiment, it is assumed that the itemized list shown in FIG. 10A and the itemized list shown in FIG. 10B generated from other tabular data are stored in the data storage unit 101 in advance. FIG. 11 is a processing flow illustrating an example of the vertical combination processing.

まず、縦結合部105は、縦結合の設定データに基づいて、結合する表形式データを1つ特定する(図11:S31)。また、縦結合部105は、縦結合の設定データに基づいて、出力する項目の数だけ出力用の項目別リストを生成し、初期化する(S32)。例えば、縦結合部105は、図7Bに示した設定データを読み出し、要素の数だけ出力用の項目別リストを生成する。項目別リストの生成及び初期化は、図8のS23と同じ処理である。   First, the vertical combination unit 105 specifies one tabular data to be combined based on the vertical combination setting data (FIG. 11: S31). Further, the vertical combination unit 105 generates and initializes an output-specific list for the number of items to be output, based on the vertical combination setting data (S32). For example, the vertical combination unit 105 reads the setting data shown in FIG. 7B and generates an item-specific list for output by the number of elements. The generation and initialization of the list for each item are the same processing as S23 of FIG.

また、縦結合部105は、設定データから出力項目を1つ取得し、項目名を特定する(S33)。また、縦結合部105は、S31で特定された表形式データの項目別リストに、S33で取得した出力項目に対応する項目が存在するか判断する(S34)。   In addition, the vertical combination unit 105 acquires one output item from the setting data and specifies the item name (S33). In addition, the vertical combination unit 105 determines whether an item corresponding to the output item acquired in S33 exists in the itemized list of the tabular data specified in S31 (S34).

対応する項目が存在する場合(S34:YES)、縦結合部105は、S31で取得された項目別リストを、出力用の対応する項目別リストに登録する(S35)。ここで、縦結合の設定データ(例えば、図7B)において、複数の項目名が「+」で結合されている場合、出力用の項目別リスト1つに複数の項目別リストの要素を結合して登録する。一方、対応する項目が存在しない場合(S34:NO)、レコードの数だけ要素に「空」を登録した、出力用の項目別リストを登録する(S36)。出力項目に対応する項目が処理対象のファイルには存在しないため、ここでは、空の項目別リストが追加される。このとき、各要素内の値は、所定の区切記号(例えば、カンマやスペース等)で結合される。   If a corresponding item exists (S34: YES), the vertical combination unit 105 registers the itemized list acquired in S31 in the corresponding itemized list for output (S35). Here, when a plurality of item names are combined with “+” in the vertical combination setting data (for example, FIG. 7B), the elements of the plurality of item list are combined into one item list for output. To register. On the other hand, when the corresponding item does not exist (S34: NO), an item-by-output list in which "empty" is registered as an element by the number of records is registered (S36). Since the item corresponding to the output item does not exist in the file to be processed, an empty item-specific list is added here. At this time, the values in each element are connected by a predetermined delimiter (for example, comma or space).

その後、縦結合部105は、処理対象の表形式データに、未処理の項目別リストが存在するか判断する(S37)。未処理の項目別リストが存在する場合(S37:YES)、S33の処理に戻る。一方、未処理の項目別リストが存在しない場合(S37:NO)、縦結合部105は、結合する表形式データに未処理のものが存在するか判断する(S38)。未処理の表形式データが存在する場合(S38:YES)、S31の処理に戻る。一方、未処理の表形式データが存在しない場合(S38:NO)、S39の処理に遷移する。なお、結合後の項目に対応する項目別データが存在しない場合は、レコードの数だけ要素に「空」を登録した、出力用の項目別リストを生成するようにしてもよい。   Thereafter, the vertical combination unit 105 determines whether there is an unprocessed itemized list in the tabular data to be processed (S37). If there is an unprocessed list by item (S37: YES), the process returns to S33. On the other hand, when there is no unprocessed itemized list (S37: NO), the vertical combination unit 105 determines whether there is any unprocessed tabular data in the combined tabular data (S38). If there is unprocessed tabular data (S38: YES), the process returns to S31. On the other hand, when there is no unprocessed tabular data (S38: NO), the process proceeds to S39. If there is no item-specific data corresponding to the combined items, an output item-specific list may be generated in which “empty” is registered as an element by the number of records.

S37までの処理によって、例えば図10Aに示した項目別リストから、図12Aに示すような出力用の項目別リストが生成される。図12Aの例では、縦結合の設定データに基づいて、結合される項目別リストの「L_Name」及び「F_Name」の要素が、出力用の項目別リストの「Name」にスペース区切りで結合されて登録されている。また、出力用の項目別リストとして、結合される項目別リストには存在しない「Office」を生成している。「Office」の項目別リストには、レコードの数だけ「空」が登録されている。また、S38までの処理によって、図12Aに示すような出力用の項目別リストが、結合する表形式データの分だけ生成される。例えば、図10Bに示した項目別リストから、図12Bに示すような出力用の項目別リストが生成される。図12Bの例では、結合する2つの表形式データの項目のうち、図10Aに示した「L_Name」及び「F_Name」の項目の結合と、図10Bに示した「Name」の項目とが、1つの項目「Name」に集約されている。   By the processing up to S37, for example, an itemized list for output as shown in FIG. 12A is generated from the itemized list shown in FIG. 10A. In the example of FIG. 12A, based on the setting data of the vertical combination, the elements “L_Name” and “F_Name” of the itemized list to be combined are combined with “Name” of the itemized list for output in a space-separated manner. It is registered. In addition, “Office”, which does not exist in the combined itemized list, is generated as the itemized list for output. In the itemized list of “Office”, “empty” is registered for the number of records. Further, through the processing up to S38, an output itemized list as shown in FIG. 12A is generated for the combined tabular data. For example, an itemized list for output as shown in FIG. 12B is generated from the itemized list shown in FIG. 10B. In the example of FIG. 12B, of the two tabular data items to be combined, the combination of the items “L_Name” and “F_Name” shown in FIG. 10A and the item “Name” shown in FIG. Are grouped into two items "Name".

その後、縦結合部105は、生成された出力用の項目別リストを、項目ごとに結合する(S39)。結合される複数の表形式データから生成された出力用の項目別リスト(図12A及び図12B)が、例えば図12Cに示すように結合される。図12Cでは、一方の項目別リストの要素と、他方の項目別リストの要素との和集合が生成されている。このとき、縦結合の設定データに基づいて、対応する項目は1つの項目別リスト(図12Cでは、「Name」)に登録される。以上で、縦結合処理を終了する。   Thereafter, the vertical combining unit 105 combines the generated output-specific lists for each item (S39). The output itemized lists (FIGS. 12A and 12B) generated from the plurality of tabulated data to be combined are combined as shown in FIG. 12C, for example. In FIG. 12C, a union of the elements of one itemized list and the elements of the other itemized list is generated. At this time, the corresponding item is registered in one item-specific list (“Name” in FIG. 12C) based on the setting data of the vertical combination. Thus, the vertical combining process ends.

<出力処理>
次に、結合後の項目別データを表形式データとして出力する処理について説明する。図13は、出力処理の一例を示す処理フローである。
<Output processing>
Next, a process of outputting the combined itemized data as tabular data will be described. FIG. 13 is a processing flow illustrating an example of the output processing.

出力データ生成部109は、結合された出力用の項目別リストを読み出し、出力用の行別リストを生成する(図13:S41)。例えば、まず、各レコードの値を要素として登録する行別リストを、レコードの数だけ生成及び初期化する。次に、出力用の項目別リストを読み出し、各要素をレコードの順序(すなわち、行番号)に対応する行別リストに新たな要素として登録する。このような処理を出力用の項目別リストのすべてについて行い、行別リストを生成する。例えば、図12Cに示した項目別リストから、図14Aに示すような行別リストが生成される。図14Aの例では、各要素が実線で囲われ、横方向に隣接する要素が、行別リストを表している。   The output data generation unit 109 reads the combined output-specific list and generates an output-specific list (FIG. 13: S41). For example, first, a line-by-line list in which the value of each record is registered as an element is generated and initialized by the number of records. Next, the itemized list for output is read, and each element is registered as a new element in the line-by-line list corresponding to the order of records (that is, the line number). Such processing is performed for all of the output-specific lists, and a line-by-line list is generated. For example, a line-by-line list as shown in FIG. 14A is generated from the item-by-item list shown in FIG. 12C. In the example of FIG. 14A, each element is surrounded by a solid line, and elements adjacent in the horizontal direction represent a line-by-line list.

また、出力データ生成部109は、生成された出力用の行別リストを用いて、出力する表形式データの行リストを生成する(S42)。生成される行リストの要素は、出力用の行別リストに含まれる要素の間に区切記号を追加して1行に連結した値である。CSVファイルを出力する場合、出力データ生成部109は、区切記号としてカンマを各要素の間に追加する。例えば、図14Aに示すような行別リストから、図14Bに示すような行リストが生成される。   The output data generation unit 109 generates a line list of tabular data to be output using the generated line-by-line list for output (S42). The elements of the generated line list are values obtained by adding a separator between elements included in the output line-by-line list and connecting them to one line. When outputting a CSV file, the output data generation unit 109 adds a comma as a delimiter between elements. For example, a line list as shown in FIG. 14B is generated from a line-by-line list as shown in FIG. 14A.

次に、出力データ生成部109は、生成された行リストを用いて、表形式データを生成する(S43)。本ステップで生成される表形式データは、カンマ等の区切記号でフィールドが区切られ、改行でレコードが区切られたテキストデータである。ここでは、出力データ生成部109は、S42において生成された行リストの要素の各々を1行として、1つのファイルに結合する。例えば、図14Bに示した行リストから、図14Cに示すようなCSVファイルが生成される。なお、CSVファイルの他、既存の表計算ソフトで読込可能なファイルを生成するようにしてもよい。   Next, the output data generation unit 109 generates tabular data using the generated row list (S43). The tabular data generated in this step is text data in which fields are separated by delimiters such as commas and records are separated by line feeds. Here, the output data generation unit 109 combines each element of the line list generated in S42 as one line and combines them into one file. For example, a CSV file as shown in FIG. 14C is generated from the row list shown in FIG. 14B. In addition to the CSV file, a file that can be read by existing spreadsheet software may be generated.

以上のように、ファイル読込処理、縦結合設定処理、項目別リスト生成処理、及び縦結合処理によれば、データ項目の異なる表形式データの和集合を生成することができる。また、例えばユーザが予め項目の対応付けを指定することにより、対応付けられた項目を、結合後の表形式データにおいて同一の列にそろえる(すなわち、集約する)ことができる。このような処理は、本実施形態において中間的に生成される項目別データを用いることで、効率的に処理することができる。   As described above, according to the file reading processing, the vertical combination setting processing, the itemized list generation processing, and the vertical combination processing, it is possible to generate a union of tabular data having different data items. Further, for example, when the user designates the correspondence of the items in advance, the related items can be arranged in the same column in the combined tabular data (that is, they can be aggregated). Such processing can be efficiently performed by using the item-by-item data generated intermediately in the present embodiment.

<横結合設定処理>
次に、横結合処理及び集計処理について説明する。本実施形態に係る横結合処理とは、キー項目の値が所定の条件を満たす、複数のレコードを1つのレコードに統合する処理である。また、本実施形態に係る集計処理とは、キー項目の値が所定の条件を満たす、複数のレコードを集計する処理である。まず、横結合処理で用いられるキー項目を設定するための横結合設定処理について説明する。
<Horizontal connection setting process>
Next, the horizontal joining process and the tallying process will be described. The horizontal combination process according to the present embodiment is a process of integrating a plurality of records into a single record in which the value of a key item satisfies a predetermined condition. The tallying process according to the present embodiment is a process of tallying a plurality of records in which the value of a key item satisfies a predetermined condition. First, a horizontal combination setting process for setting key items used in the horizontal combination process will be described.

図15は、横結合設定処理の一例を示す処理フローである。本実施形態では、先に説明した縦結合後の表形式データを用いて、複数のレコードを1つのレコードに統合する処理を行う。よって、例えば、図7Aに示したような縦結合の設定データが予めデータ記憶部101に記憶されているものとする。   FIG. 15 is a processing flow illustrating an example of the horizontal coupling setting processing. In the present embodiment, a process of integrating a plurality of records into one record is performed using the tabular data after the vertical combination described above. Therefore, for example, it is assumed that the setting data of the vertical combination as shown in FIG. 7A is stored in the data storage unit 101 in advance.

まず、表示制御部104は、出力項目の一覧を生成してユーザ端末2へ送信し、ユーザ端末2の表示装置に表示させる(図15:S51)。本ステップでは、表示制御部104は、縦結合の設定データから出力項目を読み出し、ユーザがキー項目を指定するための一覧を生成する。例えば、各項目をパネル状にして表示し、ユーザがクリックしたり又は所定の領域へドラッグアンドドロップしたりしてキー項目を選択できるようにする。   First, the display control unit 104 generates a list of output items, transmits the list to the user terminal 2, and causes the display device of the user terminal 2 to display the list (FIG. 15: S51). In this step, the display control unit 104 reads output items from the setting data of the vertical combination, and generates a list for the user to specify key items. For example, each item is displayed in the form of a panel so that the user can select a key item by clicking or dragging and dropping it to a predetermined area.

図16に、画面の一例を示す。図16の画面は、項目の一覧を表示するための項目一覧表示領域2001と、指定されたキー項目の一覧を表示するためのキー項目表示領域2002と、重複値の処理を選択するための重複値処理選択領域2003と、同一のフィールドに値を結合して表示する際の区切記号を選択するための区切記号選択領域2004とを含む。項目一覧表示領域2001には、縦結合後の表形式データの項目の一覧が、項目ごとパネル状に表示されている。   FIG. 16 shows an example of the screen. The screen of FIG. 16 includes an item list display area 2001 for displaying a list of items, a key item display area 2002 for displaying a list of designated key items, and an overlap for selecting a process of a duplicate value. A value processing selection area 2003 and a delimiter selection area 2004 for selecting a delimiter when combining and displaying values in the same field are included. In the item list display area 2001, a list of items of the tabular data after the vertical combination is displayed in a panel shape for each item.

また、設定処理部102は、ユーザ端末2からキー項目の指定を受け付ける(S52)。本ステップでは、ユーザが画面上で項目のパネルに対して所定の操作を行うことにより、設定処理部102はキー項目の指定を受け付ける。所定の操作とは、パネルのキー項目表示領域へのドラッグや、パネルのクリック等である。例えば、図16に示した画面において、項目一覧表示領域2001の各パネルをドラッグアンドドロップ可能とし、パネルがキー項目表示領域2002にドロップされた場合、設定処理部102は当該パネルに対応する項目をキー項目として受け付ける。また、表示制御部104は、画面上において、ドラッグされた項目のパネルの表示を、キー項目表示領域に移動させる。   Further, the setting processing unit 102 receives designation of a key item from the user terminal 2 (S52). In this step, when the user performs a predetermined operation on the panel of the item on the screen, the setting processing unit 102 receives the designation of the key item. The predetermined operation is, for example, dragging the panel to the key item display area or clicking the panel. For example, on the screen shown in FIG. 16, each panel in the item list display area 2001 can be dragged and dropped, and when the panel is dropped in the key item display area 2002, the setting processing unit 102 displays the item corresponding to the panel. Accept as a key item. In addition, the display control unit 104 moves the display of the panel of the dragged item on the screen to the key item display area.

キー項目は複数指定できるようにしてもよい。このとき、キー項目表示領域2002において、指定された順に上から下へパネルが追加される。なお、パネルが追加される方向は上から下には限られず、その他の所定の方向であってもよい。また、ユーザがドラッグすることにより、キー項目表示領域におけるパネルの順序を入れ替えることができるようにしてもよい。ここで、キー項目の順序は、結合後のレコードをまとめる際の優先度を示す。すなわち、結合後のレコードは、キー項目の順序に基づいて、例えば、上位のキー項目の値が同一のレコードは下位のキー項目の値でソートされるように、複数キーによるソートができる。   A plurality of key items may be specified. At this time, in the key item display area 2002, panels are added in the order specified from top to bottom. Note that the direction in which the panel is added is not limited to the direction from top to bottom, and may be another predetermined direction. Further, the order of panels in the key item display area may be changed by dragging by the user. Here, the order of the key items indicates the priority when the combined records are put together. That is, the combined records can be sorted by a plurality of keys based on the order of the key items, for example, such that records having the same upper key item value are sorted by lower key item values.

また、選択されたキー項目には、レコードを集約するための条件を設定する。すなわち、例えば、「完全一致」、「前方一致」、「後方一致」又は「中間一致」のような、名寄せを行う条件を設定する。さらに、当該キー項目についてデータクレンジング(標準化)を行うか否かを指定できるようにしてもよい。   In the selected key item, a condition for collecting records is set. That is, for example, conditions for performing name identification such as “perfect match”, “front match”, “backward match”, and “intermediate match” are set. Furthermore, whether to perform data cleansing (standardization) on the key item may be designated.

図17は、キー項目の設定を行うための画面の一例である。図17の画面には、キー項目の項目名と、「名寄せ判断」の選択肢3001と、「データクレンジング処理」を行うか否かの選択肢3002と、設定を登録するための「登録」ボタン3003が表示されている。例えば、図16のキー項目一覧に表示されたパネルをクリックすることにより、図17に示すような、当該パネルが示すキー項目の設定画面が表示される。   FIG. 17 is an example of a screen for setting key items. The screen of FIG. 17 includes an item name of a key item, an option 3001 of “judgment determination”, an option 3002 of whether to perform “data cleansing process”, and a “register” button 3003 for registering a setting. Is displayed. For example, by clicking on a panel displayed in the key item list in FIG. 16, a setting screen for key items indicated by the panel is displayed as shown in FIG.

「名寄せ判断」の選択肢3001には、名寄せを行う条件が選択肢として表示されている。本実施形態において「名寄せ」とは、表形式データに含まれる同一の実体に係るレコードをまとめる処理をいう。本実施形態では、キー項目の値の少なくとも一部が一致するレコードを集約する。名寄せを行うことで、例えば同一人物に関するレコードを特定することができ、集計結果がより精確になる。   In the option 3001 of “judgment determination”, conditions for performing name identification are displayed as options. In the present embodiment, “name identification” refers to a process of collecting records related to the same entity included in tabular data. In the present embodiment, records in which at least some of the values of the key items match are aggregated. By performing name identification, for example, records related to the same person can be specified, and the counting result becomes more accurate.

また、「データクレンジング処理」は、キー項目の値の記述形式を標準化する処理である。例えば電話番号を示す値が、「01-2345-6789」、「01(2345)6789」、「0123456789」等のように異なる記述形式で登録されている場合がある。このような値を標準化することにより、より精度の高い名寄せを行うことができるようになる。例示した電話番号の他、郵便番号、日付、法人名、数値(桁区切りの有無や単位の有無等)、氏名の異体字、住所等について、データクレンジングを行うことにより、記述形式の差異を吸収できる。データクレンジング処理については既存の技術を適用することができる。   The “data cleansing process” is a process for standardizing the description format of the value of the key item. For example, a value indicating a telephone number may be registered in a different description format such as “01-2345-6789”, “01 (2345) 6789”, “0123456789”, and the like. By standardizing such values, it is possible to perform more accurate name identification. Absorb the differences in the description format by performing data cleansing on the postal code, date, corporate name, numerical value (whether there is a digit separator, whether there is a unit, etc.), name variant, address, etc. it can. Existing technology can be applied to the data cleansing process.

データクレンジングを併用した名寄せにより、例えば、(1)異体字で記述された「斉藤」、「斎藤」、「齋藤」、「齊藤」のいずれか、且つ(2)記述形式の異なる「東京都千代田区飯田橋99−99−99XXハイツ101号室」、「東京都千代田区飯田橋99−99−99−101」、「東京都千代田区飯田橋99丁目99番99号XXハイツ101号室」、「千代田区飯田橋99−99−99−101」等のいずれか、且つ(3)記述形式の異なるコード番号「1000523」、「1,000,523」、「壱百萬五百二十三」等のいずれかという条件を満たす、(1)〜(3)の様々な組合せを含むレコードを、同一人物に関するレコードとして扱うことができるようになる。   By name matching using data cleansing, for example, (1) one of “Saito”, “Saito”, “Saito”, and “Saito” described in variant characters, and (2) “Chiyoda, Tokyo” having a different description format Iidabashi 99-99-99 XX Heights Room 101, Ward, 99-99-99-101, Iidabashi, Chiyoda Ward, Tokyo 99-99-99, Iidabashi 99-999, XX Heights Room 101, Iidabashi 99, Chiyoda Ward, Tokyo -99-99-101 ", and (3) any one of code numbers" 10000523 "," 1,000,523 "," 1 million five hundred twenty-three "having different description formats, etc. Records that include various combinations of (1) to (3) that satisfy the condition can be handled as records relating to the same person.

また、設定処理部102は、キー項目の設定が完了した場合、キー項目表示領域2002の表示を更新する(S53)。ここでは、キー項目のパネルが、条件の指定が完了したことを示す所定の表示態様に変更される。表示態様としては、背景色、文字色、書体、大きさ、又はこれらの変化パターン(背景色の点滅等)等が挙げられる。例えば、図16に示したキー項目に対して条件の指定が完了した場合、図18に示すようにキー項目のパネルの色を変更する。図18の画面では、条件の指定が完了したパネルの色が、「キー項目」のタイトルの背景色と同一の色に変更されている。なお、図16及び図18では、便宜上ハッチングのパターンで色を表している。同一のパターンで塗りつぶされた領域は、同一の色で塗りつぶされているものとする。   When the setting of the key item is completed, the setting processing unit 102 updates the display of the key item display area 2002 (S53). Here, the panel of the key item is changed to a predetermined display mode indicating that the specification of the condition has been completed. Examples of the display mode include a background color, a character color, a font, a size, and a change pattern thereof (blinking of the background color). For example, when the specification of the condition is completed for the key item shown in FIG. 16, the color of the panel of the key item is changed as shown in FIG. In the screen of FIG. 18, the color of the panel for which the conditions have been specified has been changed to the same color as the background color of the title of “key item”. In FIGS. 16 and 18, colors are represented by hatching patterns for convenience. It is assumed that areas painted with the same pattern are painted with the same color.

その後、設定処理部102は、キー項目の入力が終了したか判断する(S54)。例えば、ユーザの操作により、図18の「データ出力」ボタンが押下されると、設定処理部102は、キー項目の入力が終了したものと判断する。入力が終了していない場合(S54:NO)、例えばS52の処理に戻り、設定処理部102は、さらにキー項目の指定を受け付ける。一方、入力が終了した場合(S54:YES)、設定処理部102は、データ記憶部101に設定を記憶させ、横結合設定処理を終了する(S55)。本ステップでは、横結合の設定データとして、「キー項目」及び「名寄せの条件」が設定される。さらに、「データクレンジング処理の要否」や、「重複する値の処理」、「区切記号の種類」等を設定してもよい。   Thereafter, the setting processing unit 102 determines whether the input of the key item has been completed (S54). For example, when the “data output” button in FIG. 18 is pressed by a user operation, the setting processing unit 102 determines that the input of the key item has been completed. If the input has not been completed (S54: NO), the process returns to, for example, S52, and the setting processing unit 102 further receives designation of a key item. On the other hand, when the input is completed (S54: YES), the setting processing unit 102 stores the setting in the data storage unit 101, and ends the horizontal connection setting process (S55). In this step, “key item” and “name identification condition” are set as the setting data of the horizontal combination. Furthermore, “necessity of data cleansing processing”, “processing of duplicate values”, “type of delimiter”, and the like may be set.

<集計設定処理>
次に、集計処理で用いられるキー項目及び集計項目を設定するための集計設定処理について説明する。図19は、集計設定処理の一例を示す処理フローである。本実施形態では、縦結合後の表形式データを用いて、レコードの値を集計する。よって、図7Aに示したような縦結合の設定データが予めデータ記憶部101に記憶されているものとする。
<Total setting process>
Next, a tally setting process for setting key items and tally items used in the tally process will be described. FIG. 19 is a process flow illustrating an example of the tally setting process. In the present embodiment, the values of the records are totaled using the tabular data after the vertical combination. Therefore, it is assumed that the vertical combination setting data as shown in FIG. 7A is stored in the data storage unit 101 in advance.

まず、表示制御部104は、出力項目の一覧を生成してユーザ端末2へ送信し、出力項目の一覧をユーザ端末2の表示装置に表示させる(図19:S61)。本ステップの処理は、図15のS51と同様である。   First, the display control unit 104 generates a list of output items, transmits the list to the user terminal 2, and causes the display device of the user terminal 2 to display the list of output items (FIG. 19: S61). The process of this step is the same as S51 of FIG.

図20に、画面の一例を示す。図20の画面は、項目の一覧を表示するための項目一覧表示領域4001と、出力される表形式データに新しい項目を追加するための新規項目のパネル4002と、指定されたキー項目の一覧を表示するためのキー項目表示領域4003と、集計項目の一覧を表示するための集計項目表示領域4004とを含む。項目一覧表示領域には、縦結合後の表形式データの項目の一覧が、項目ごとパネル状に表示されている。   FIG. 20 shows an example of the screen. The screen of FIG. 20 includes an item list display area 4001 for displaying a list of items, a new item panel 4002 for adding a new item to the tabulated data to be output, and a list of designated key items. A key item display area 4003 for display and a tally item display area 4004 for displaying a list of tally items are included. In the item list display area, a list of items of the tabular data after the vertical combination is displayed in a panel shape for each item.

また、設定処理部102は、ユーザ端末2からキー項目の指定を受け付ける(S62)。本ステップは、図15のS52とほぼ同様であり、ユーザが画面上で項目のパネルに対して所定の操作を行うことによって、設定処理部102はキー項目の指定を受け付ける。また、集計設定処理では、集計するレコードの条件として、キー項目の集計方法を選択させる。集計方法は、例えば、「完全一致」、「年別」、「月別」、「日別」、「曜日別」等の選択肢からユーザに指定させる。   Further, the setting processing unit 102 receives designation of a key item from the user terminal 2 (S62). This step is substantially the same as S52 in FIG. 15, and when the user performs a predetermined operation on the panel of items on the screen, the setting processing unit 102 receives designation of a key item. In addition, in the tabulation setting process, a key item tabulation method is selected as a condition of a record to be tabulated. The tallying method is specified by the user from options such as “perfect match”, “by year”, “by month”, “by day”, and “by day of week”.

図21は、キー項目の設定を行うための画面の一例である。図20の画面には、キー項目の項目名5001と、「キー項目の集計方法」の選択肢5002とが表示されている。例えば、図20のキー項目一覧に表示されたパネルをクリックすることにより、図21に示すような、当該パネルが示すキー項目の設定画面が表示される。   FIG. 21 is an example of a screen for setting key items. The screen of FIG. 20 displays an item name 5001 of a key item and an option 5002 of “key item aggregation method”. For example, by clicking a panel displayed in the key item list in FIG. 20, a setting screen for key items indicated by the panel is displayed as shown in FIG.

なお、「完全一致」が選択された場合、キー項目の値が完全一致するレコードが集約されて、後述する「集計項目」の値が求められる。また、「年別」、「月別」、「日別」、「曜日別」等の選択肢は、キー項目が日付を表す場合に有効である。それぞれ、所定の期間を単位として集計処理が行われる。   When “exact match” is selected, records in which the values of the key items completely match are aggregated, and the value of “total item” described later is obtained. Further, options such as “by year”, “by month”, “by day”, and “by day of the week” are effective when the key item indicates a date. Aggregation processing is performed for each predetermined period.

また、設定処理部102は、キー項目の設定が完了した場合、キー項目表示領域の表示を更新する(S63)。本ステップは、図15のS53と同様であり、キー項目のパネルが、条件の指定が完了したことを示す所定の表示態様に変更される。例えば、図20に示したキー項目に対して条件の指定が完了した場合、図22に示すようにキー項目のパネルの色を変更する。なお、図20及び図22でも、便宜上ハッチングのパターンで色を表している。なお、キー項目の指定は、複数受け付けるようにしてもよい。キー項目を複数受け付ける場合の処理は、S54(図15)と同様である。   Further, when the setting of the key item is completed, the setting processing unit 102 updates the display of the key item display area (S63). This step is the same as S53 in FIG. 15, and the key item panel is changed to a predetermined display mode indicating that the designation of the condition has been completed. For example, when the specification of the condition is completed for the key item shown in FIG. 20, the color of the key item panel is changed as shown in FIG. 20 and 22, the colors are represented by hatching patterns for convenience. Note that a plurality of key items may be specified. The process in the case of receiving a plurality of key items is the same as that in S54 (FIG. 15).

また、設定処理部102は、集計項目の指定を受け付ける(S64)。ここでは、ユーザが画面上で項目のパネルに対して所定の操作を行うことによって、設定処理部102は集計項目の指定を受け付ける。例えば、図22に示した画面において、項目一覧表示領域4001の各パネルをドラッグアンドドロップ可能とし、パネルが集計項目表示領域4004にドロップされた場合、設定処理部102は当該パネルを集計項目として受け付けるようにする。また、表示制御部104は、例えば、図23に示すように、画面上において、ドラッグされた項目のパネルを、集計項目表示領域4004に移動させる。また、集計項目として、縦結合後の表形式データには存在しない項目を新たに生成することもできる。この場合、ユーザは、例えば、図22の左下に存在する「新規」のパネル4002を集計項目表示領域4004へドラッグする。新規項目については、後に詳述する。   Further, the setting processing unit 102 receives designation of a tally item (S64). Here, when the user performs a predetermined operation on the panel of the item on the screen, the setting processing unit 102 accepts the designation of the total item. For example, in the screen shown in FIG. 22, each panel in the item list display area 4001 can be dragged and dropped, and when the panel is dropped in the tally item display area 4004, the setting processing unit 102 receives the panel as a tally item. To do. Further, for example, as illustrated in FIG. 23, the display control unit 104 moves the panel of the dragged item on the screen to the total item display area 4004. Further, an item that does not exist in the tabular data after the vertical combination can be newly generated as a total item. In this case, the user drags, for example, the “new” panel 4002 existing at the lower left of FIG. The new items will be described later in detail.

また、集計項目も、複数指定できるようにしてもよい。このとき、集計項目表示領域4004において、指定された順に上から下へパネルが追加される。なお、パネルが追加される方向は上から下には限られず、その他の所定の方向であってもよい。また、ユーザがドラッグすることにより、集計項目表示領域4004におけるパネルの順序を入れ替えることができるようにしてもよい。ここで、本実施形態では集計項目の順序に基づいて集計処理を行う。よって、下位の集計項目では、上位の集計項目の結果を用いて集計処理を行うことができる。   Also, a plurality of total items may be designated. At this time, panels are added from the top to the bottom in the specified order in the total item display area 4004. Note that the direction in which the panel is added is not limited to the direction from top to bottom, and may be another predetermined direction. Further, the order of panels in the tally item display area 4004 may be changed by dragging by the user. Here, in the present embodiment, the counting process is performed based on the order of the counting items. Therefore, in the lower-order tally item, the tallying process can be performed using the result of the higher-order tally item.

また、集計項目には、項目の集計方法を設定する。例えば、値を区切記号で結合した文字列を生成する「結合」や値の出現回数を計数する「頻度」等の「文字集計」、又は「合計」や「平均」、「中央値」、「最頻値」、「最大値」、「最小値」、「分散」、「標準偏差」等の「数値集計(要約統計量)」がユーザによって選択される。   In addition, a totaling method of the item is set in the totaling item. For example, "combination" to generate a character string in which values are combined with a delimiter, "character aggregation" such as "frequency" to count the number of occurrences of a value, or "total", "average", "median", " “Numerical aggregation (summary statistics)” such as “mode”, “maximum”, “minimum”, “variance”, and “standard deviation” is selected by the user.

図24は、集計項目の設定を行うための画面の一例である。図24の画面には、集計項目の項目名6001と、「項目の集計方法」の選択肢6002とが表示されている。例えば、図23の集計項目表示領域に表示されたパネルをクリックすることにより、図24に示すような、当該パネルが示すキー項目の設定画面が表示される。   FIG. 24 is an example of a screen for setting tally items. The screen of FIG. 24 displays an item name 6001 of a total item and an option 6002 of “item totaling method”. For example, by clicking a panel displayed in the tally item display area in FIG. 23, a setting screen for key items indicated by the panel is displayed as shown in FIG.

また、設定処理部102は、集計項目の設定が完了した場合、集計項目表示領域の表示を更新する(S65)。本ステップは、S63と同様であり、集計項目のパネルが、条件の指定が完了したことを示す所定の表示態様に変更される。例えば、図23に示したキー項目に対して条件の指定が完了した場合、図25に示すように集計項目のパネルの色を変更する。なお、図23及び図25でも、便宜上ハッチングのパターンで色を表している。以上のような集計項目の指定も、複数受け付けるようにしてもよい。   Further, when the setting of the tally item is completed, the setting processing unit 102 updates the display of the tally item display area (S65). This step is the same as that in S63, and the panel of the tally item is changed to a predetermined display mode indicating that the designation of the condition has been completed. For example, when the specification of the condition is completed for the key item shown in FIG. 23, the color of the panel of the total item is changed as shown in FIG. 23 and 25, the colors are represented by hatching patterns for convenience. The specification of the total item as described above may be plurally received.

その後、設定処理部102は、キー項目及び集計項目の入力が終了したか判断する(S66)。例えば、ユーザの操作により、図25の「データ出力」ボタンが押下されると、設定処理部102は、キー項目の入力が終了したものと判断する。入力が終了していない場合(S66:NO)、例えばS62の処理に戻り、設定処理部102は、さらにキー項目の指定を受け付ける。なお、S64の処理に戻り、設定処理部102は、集計項目の指定を受け付けるようにしてもよい。図19の処理フローでは、キー項目の指定及びキー項目表示領域の表示更新(S62及びS63)と、集計項目の指定及び集計項目表示領域の表示更新(S64及びS65)とを便宜的に連続する処理として説明したが、それぞれ独立した処理である。したがって、ユーザの操作に基づき、任意の順序で、それぞれ任意の回数実行される。一方、入力が終了した場合(S66:YES)、設定処理部102は、データ記憶部101に設定を記憶させ(S67)、集計設定処理を終了する。S67では、集計処理の設定データとして、例えば、「キー項目」及び「キー項目の集計方法」、並びに「集計項目」及び「項目の集計方法」が設定される。   Thereafter, the setting processing unit 102 determines whether the input of the key item and the total item has been completed (S66). For example, when the “data output” button in FIG. 25 is pressed by a user operation, the setting processing unit 102 determines that the input of the key item has been completed. If the input has not been completed (S66: NO), the process returns to, for example, the process of S62, and the setting processing unit 102 further receives designation of a key item. Returning to the process of S64, the setting processing unit 102 may receive designation of a tally item. In the processing flow of FIG. 19, the specification of key items and the display update of the key item display area (S62 and S63) and the specification of total items and the display update of the total item display area (S64 and S65) are conveniently continued. Although described as processing, they are independent processing. Therefore, the execution is performed an arbitrary number of times in an arbitrary order based on a user operation. On the other hand, if the input has been completed (S66: YES), the setting processing unit 102 stores the settings in the data storage unit 101 (S67), and ends the tally setting process. In S67, for example, “key item” and “key item aggregation method”, and “total item” and “item aggregation method” are set as the setting data of the aggregation process.

<対照群生成処理>
横結合処理又は集計処理を行う場合、上でも述べた通り、まず縦結合処理を行う。すなわち、図14Cに示したような、複数の表形式データの和集合を処理対象とする。また、横結合処理又は集計処理においても、処理対象の表形式データに対して図8に示した項目別リスト生成処理を行い、項目別リストを生成する。項目別リスト生成処理については、図8に示した通りであるため、説明を省略する。例えば、図14Cに示した表形式データから、図12Cに示したような項目別リストが生成される。
<Control group generation processing>
When performing the horizontal combining process or the totalizing process, first, as described above, the vertical combining process is performed. That is, the union of a plurality of tabular data as shown in FIG. Also, in the horizontal joining process or the tabulation process, the item-specific list generation process shown in FIG. 8 is performed on the tabular data to be processed to generate the item-specific list. The item-specific list generation processing is as shown in FIG. For example, an itemized list as shown in FIG. 12C is generated from the tabular data shown in FIG. 14C.

また、横結合処理及び集計処理の処理過程で、項目別リストを用いて集約するレコードを特定するためのデータである「対照群」が、中間的に生成される。本実施形態の対照群とは、キー項目の値が所定の条件を満たすレコード(行)を、行番号の集合で表したものである。対照群生成処理では、例えば、キー項目の値が完全一致するレコードの行番号の集合や、日付形式で記述されたキー項目の値が所定の期間内に属するレコードの行番号の集合が生成される。そして、表形式データ処理装置1は、後述する横結合処理又は集計処理において、対照群を用いてレコードを集約する。   In the process of the horizontal joining process and the aggregation process, a “control group” which is data for specifying records to be aggregated using the itemized list is generated in the middle. The control group according to the present embodiment is a record (row) in which the value of a key item satisfies a predetermined condition is represented by a set of row numbers. In the control group generation processing, for example, a set of line numbers of records in which the values of key items completely match or a set of line numbers of records in which the values of the key items described in the date format belong within a predetermined period are generated. You. Then, the tabular data processing device 1 aggregates the records using the control group in a horizontal joining process or a totaling process described later.

図26及び27は、対照群生成処理の一例を示す処理フローである。対照群生成部106は、横結合の設定データ又は集計処理の設定データをデータ記憶部101から読み出し、キー項目の項目別リストを1つ取得する(図26:S71)。例えば、図14Cに示した表形式データのうち、「Name」がキー項目に指定されている場合、図12Cに示した項目別リストのうち、左から3番目(項目名:Name)の項目別リストが取得される。   FIGS. 26 and 27 are processing flows illustrating an example of the control group generation processing. The control group generation unit 106 reads the setting data of the horizontal connection or the setting data of the tallying process from the data storage unit 101, and acquires one itemized list of key items (FIG. 26: S71). For example, when “Name” is specified as a key item in the tabular data shown in FIG. 14C, the third item from the left (item name: Name) in the item list shown in FIG. The list is obtained.

また、対照群生成部106は、値と行番号のリストとを対応付けて保持する、Key−Value形式のマップを生成する(S72)。Keyには、キー項目の値が登録され、Valueには、行番号を要素として保持するリストが登録される。   In addition, the control group generation unit 106 generates a key-value format map that holds a value and a list of line numbers in association with each other (S72). In the key, the value of the key item is registered, and in the value, a list holding the row number as an element is registered.

次に、対照群生成処理部106は、クレンジング処理を行う(S73)。本ステップは、例えば、横結合の設定データ又は集計処理の設定データにおいて、クレンジング処理を行う旨の指定がされている場合に行われる。本ステップでは、電話番号、郵便番号、日付、法人名、数値(区切記号の有無や単位の有無等)、氏名の異体字、住所等について、値の記述形式を変更して統一する。これにより、名寄せのような、レコードを集約する処理の精度が向上する。   Next, the control group generation processing unit 106 performs a cleansing process (S73). This step is performed, for example, when the setting data of the horizontal coupling or the setting data of the aggregation processing specifies that the cleansing processing is to be performed. In this step, the description format of the values is changed and unified for the telephone number, postal code, date, corporation name, numerical value (whether there is a separator, whether there is a unit, etc.), the variant of the name, and the address. As a result, the accuracy of the process of collecting records, such as merging, is improved.

また、対照群生成部106は、キー項目の項目別リストから要素を1つ取得する(S74)。本ステップでは、キー項目の値が、レコードの登録順(行番号順)に1つずつ読み出される。そして、対照群生成処理部106は、読み出された要素の値が対照群に存在するか判断する(S75)。ここでは、対照群生成処理部106は、読み出された要素の値が属すべき集合がすでに生成されているか判断する。図12Cの例では、例えば「Name」の値が読み出され、値が同一の集合がすでに存在するか判断される。読み出された要素の値が対照群に存在しない場合(S75:NO)、対照群生成部106は、読み出された要素の値と関連付けて、当該要素の行番号をリストに登録する(S76)。一方、読み出された要素の値が対照群に存在する場合(S75:YES)、対照群生成部106は、合致する値と関連付けられた行番号のリスト(すなわち、集合)に、当該要素の行番号を追加する(S77)。   Further, the control group generation unit 106 acquires one element from the itemized list of key items (S74). In this step, the values of the key items are read one by one in the record registration order (row number order). Then, the control group generation processing unit 106 determines whether the read element value exists in the control group (S75). Here, the control group generation processing unit 106 determines whether a set to which the values of the read elements belong has already been generated. In the example of FIG. 12C, for example, the value of “Name” is read, and it is determined whether a set having the same value already exists. If the read element value does not exist in the control group (S75: NO), the control group generation unit 106 registers the row number of the element in the list in association with the read element value (S76). ). On the other hand, when the value of the read element exists in the control group (S75: YES), the control group generation unit 106 adds the element number to the list (that is, the set) of the row numbers associated with the matching value. A line number is added (S77).

その後、対照群生成部106は、キー項目の項目別リストに未処理の要素が存在するか判断する(S78)。未処理の要素が存在する場合(S78:YES)、S74の処理に戻る。キー項目を集約する条件が「完全一致」であり、図12Cの左から3番目に示した「Name」の項目別リストについて処理を行う場合、1行目から3行目までは同一の値が対照群に存在しないため、新たな行番号の集合が生成される。4行目の「Fujita Tomoko」は1行目と同一である。よって、S74において4行目が取得された場合、S75において合致する値が対照群に存在すると判断される。同様に5行目は、2行目と同一の集合に追加される。図12Cの左から3番目の項目別データからは、図28Aに示すような対照群が生成される。   Thereafter, the control group generation unit 106 determines whether an unprocessed element exists in the itemized list of key items (S78). If there is an unprocessed element (S78: YES), the process returns to S74. When the condition for aggregating key items is “perfect match” and processing is performed for the item-specific list of “Name” shown third from the left in FIG. 12C, the same value is applied to the first to third lines. Since it is not in the control group, a new set of row numbers is generated. "Fujita Tomoko" in the fourth line is the same as the first line. Therefore, when the fourth row is acquired in S74, it is determined that a matching value exists in the control group in S75. Similarly, the fifth row is added to the same set as the second row. A control group as shown in FIG. 28A is generated from the third item-by-item data from the left in FIG. 12C.

また、対照群生成部106は、未処理のキー項目が存在するか判断する(S79)。未処理のキー項目が存在する場合(S79:YES)、処理は図16のS71に戻る。一方、未処理のキー項目が存在しない場合(S79:NO)、対照群生成部106は、対照群は1種類であるか判断する(S80)。なお、ここまでの処理で、キー項目の数だけ対照群が生成されている。また、対照群の生成において、図28Aに示したような値と行番号の集合との組み合わせを保持していたが、ここでは値との対応付けを削除し、行番号の集合のみを処理の対象とする。   Further, the control group generation unit 106 determines whether there is an unprocessed key item (S79). If there is an unprocessed key item (S79: YES), the process returns to S71 in FIG. On the other hand, when there is no unprocessed key item (S79: NO), the control group generation unit 106 determines whether there is one type of control group (S80). By the processing up to this point, the control groups are generated by the number of key items. Further, in the generation of the control group, the combination of the value and the set of the row numbers as shown in FIG. 28A was held. Here, the association with the value was deleted, and only the set of the row numbers was processed. set to target.

対照群が複数存在する場合(S80:NO)、対照群生成部106は、2つの対照群を取得する(S81)。例えば、対照群に含まれる集合の数が少ない順に2つの対照群を取得する。また、対照群生成部106は、取得した2つの対照群の積集合を生成する(S82)。そして、対照群生成部106は、取得した2つの対照群を、生成した積集合で置換する(S83)。その後、S80の処理に戻る。一方、S80において対照群が1種類であると判断された場合(S80:YES)、対照群生成部106は、対照群生成処理を終了する。   When there are a plurality of control groups (S80: NO), the control group generation unit 106 acquires two control groups (S81). For example, two control groups are acquired in ascending order of the number of sets included in the control group. Further, the control group generation unit 106 generates an intersection of the two acquired control groups (S82). Then, the control group generation unit 106 replaces the obtained two control groups with the generated intersection set (S83). Then, the process returns to S80. On the other hand, if it is determined in S80 that there is only one control group (S80: YES), the control group generation unit 106 ends the control group generation processing.

以上の対照群生成処理により、対照群生成部106は、図28Bに示すような、値とは対応付けされていない行番号の集合を、データ記憶部101に記憶させる。なお、後述する横結合処理や集計処理では、行番号の集合がわかればレコードを集約することができる。   Through the above-described control group generation processing, the control group generation unit 106 causes the data storage unit 101 to store a set of row numbers that are not associated with values, as illustrated in FIG. 28B. Note that, in a later-described horizontal combining process and a totaling process, records can be aggregated if a set of row numbers is known.

また、出力する表形式データにおいてレコードをソートする場合は、対照群生成処理において行番号の集合をソートしておく。仮に、「英字」及び「数字」という2つのキー項目を有する表形式データから、図29Aに示すような行番号の集合が生成されたとする。ここでは、「英字」の値が「A」、「B」及び「C」である行番号の集合が、「英字」の昇順にソートされている。また、「数字」の値の昇順に行番号の集合をソートすると、図29Bのような行番号の集合が生成されたものとする。図29Bでは、「数字」の値が「0」及び「1」である行番号の集合が生成されている。このようなデータに対して、キー項目が「英字」、「数字」の順に、複数キーでのソートを行う場合、図29Cに示すような積集合が生成される。図29Cの例では、「英字」及び「数字」の値が、「A」且つ「1」、「B」且つ「1」、「C」且つ「0」である行番号の集合が生成されている。なお、キー項目が「数字」、「英字」の順に、複数キーでのソートを行う場合は、図29Dに示すような積集合が生成される。図29Dの例では、「数字」及び「英字」の値が、「0」且つ「C」、「1」且つ「A」、「1」且つ「B」である行番号の集合が生成されている。このようにソートされた順序を保持しておけば、行番号の集合と値との対応付けを削除しても、行番号の集合とその順序に基づいてレコードをソートしつつ集約することができる。   When records are sorted in tabular data to be output, a set of row numbers is sorted in the control group generation processing. It is assumed that a set of row numbers as shown in FIG. 29A is generated from tabular data having two key items of “alphabet” and “numeric”. Here, a set of line numbers in which the value of “alphabet” is “A”, “B”, and “C” is sorted in ascending order of “alphabet”. When the set of line numbers is sorted in ascending order of the value of “number”, it is assumed that a set of line numbers as shown in FIG. 29B is generated. In FIG. 29B, a set of row numbers in which the value of “number” is “0” and “1” is generated. When such data is sorted by a plurality of keys in the order of key letters “alphabet” and “numeric”, an intersection set as shown in FIG. 29C is generated. In the example of FIG. 29C, a set of line numbers in which the values of “alphabet” and “number” are “A” and “1”, “B” and “1”, “C” and “0” are generated. I have. When the key items are sorted by a plurality of keys in the order of “numeric” and “alphabet”, an intersection set as shown in FIG. 29D is generated. In the example of FIG. 29D, a set of row numbers in which the values of “numeric” and “alphabet” are “0” and “C”, “1” and “A”, “1” and “B” are generated. I have. By maintaining the sorted order in this way, even if the association between the set of row numbers and the value is deleted, records can be sorted and aggregated based on the set of row numbers and their order. .

以上のように、対照群生成処理では、最終的に1つの対照群が生成され、データ記憶部101に記憶される。対照群の積集合を求めることにより、複数のキー項目が指定された場合でも、複数のキー項目によって特定されるレコードの集合ごとにレコードを集約することができるようになる。   As described above, in the control group generation processing, one control group is finally generated and stored in the data storage unit 101. By obtaining the intersection set of the control group, even when a plurality of key items are specified, records can be aggregated for each set of records specified by the plurality of key items.

<横結合処理・集計処理>
対照群が生成された後、横結合処理又は集計処理が行われる。横結合処理は横結合部107によって実行され、集計処理は集計部108によって実行されるものとする。
<Horizontal join processing / aggregation processing>
After the control group is generated, a horizontal joining process or a totaling process is performed. The horizontal combining process is performed by the horizontal combining unit 107, and the tallying process is performed by the tallying unit 108.

図30は、横結合・集計処理の一例を示す処理フローである。まず、横結合部107又は集計部108は、出力用の項目別リストを生成し、初期化する(図30:S91)。ここでは、横結合の設定データ又は集計処理の設定データに基づいて、出力項目の数だけ項目別リストを生成する。   FIG. 30 is a processing flow illustrating an example of the horizontal combination / aggregation processing. First, the horizontal combining unit 107 or the counting unit 108 generates and initializes an output-specific list (FIG. 30: S91). Here, item-by-item lists are generated by the number of output items based on the setting data of the horizontal connection or the setting data of the tallying process.

また、横結合部107又は集計部108は、処理対象の項目別リストを1つ取得する(S92)。横結合処理の場合、図12Cに示したような、縦結合後の項目別リストから項目別リストを1つ取得する。集計処理の場合、キー項目及び集計項目に対応する項目別リストから、1つ取得する。また、横結合部107又は集計部108は、対照群から集合を1つ取得する(S93)。ここでは、図28Aに示したような対照群から行番号の集合を1つ取得する。   Further, the horizontal combining unit 107 or the counting unit 108 acquires one itemized list to be processed (S92). In the case of the horizontal combination processing, one item list is acquired from the item list after the vertical combination as shown in FIG. 12C. In the case of the tallying process, one is obtained from the itemized list corresponding to the key item and the tallying item. Further, the horizontal coupling unit 107 or the counting unit 108 acquires one set from the control group (S93). Here, one set of row numbers is acquired from the control group as shown in FIG. 28A.

そして、横結合部107又は集計部108は、値を結合するか判断する(S94)。ここでは、横結合を行う場合、又は項目の集計方法として「結合」が指定されている場合、値を結合すると判断される。一方、項目の集計方法として、「合計」、「平均」、「中央値」、「最頻値」、「最大値」、「最小値」、「分散」、「標準偏差」等が指定されている場合、値を結合しないと判断される。   Then, the horizontal combining unit 107 or the counting unit 108 determines whether to combine the values (S94). Here, it is determined that the values are to be combined when performing a horizontal combination or when “combination” is specified as the item aggregation method. On the other hand, as the method of summing items, “sum”, “average”, “median”, “mode”, “maximum”, “minimum”, “variance”, “standard deviation”, etc. are specified. If so, it is determined that the values will not be combined.

値を結合する場合(S94:YES)、横結合部107又は集計部108は、S93で取得した集合に含まれる行番号に対応する要素を、S92で取得した項目別リストから取得し、例えば所定の区切記号で結合する(S95)。なお、図16の重複値処理選択領域に示したように、横結合処理においてはキー項目が所定の条件を満たすレコードを1つのレコードにまとめる場合、重複を除いて値を結合するようにしてもよいし、重複を許して値を結合するようにしてもよい。また、横結合処理において、キー項目が所定の条件を満たすレコードを1つのレコードにまとめるのではなく、例えば出現頻度の順にソートするようにしてもよい。   When the values are combined (S94: YES), the horizontal combining unit 107 or the counting unit 108 acquires the element corresponding to the row number included in the set acquired in S93 from the itemized list acquired in S92, (S95). As shown in the duplication value processing selection area of FIG. 16, in the horizontal merging processing, when records whose key items satisfy predetermined conditions are combined into one record, values may be merged without duplication. Alternatively, the values may be combined while permitting duplication. In the horizontal combination process, records in which key items satisfy a predetermined condition may be sorted, for example, in order of appearance frequency, instead of being combined into one record.

一方、S94において値を結合しないと判断された場合(S94:NO)、集計部108は、値を算出する(S96)。ここでは、横結合部107又は集計部108は、S93で取得した集合に含まれる行番号に対応する要素を、S92で取得した項目別リストから取得し、項目の集計方法に基づいて、合計したり平均を算出したりする。   On the other hand, when it is determined that the values are not combined in S94 (S94: NO), the counting unit 108 calculates the values (S96). Here, the horizontal combining unit 107 or the counting unit 108 obtains the elements corresponding to the row numbers included in the set obtained in S93 from the itemized list obtained in S92, and totals them based on the item counting method. Or calculate the average.

S95又はS96の後、横結合部107又は集計部108は、結合した値又は集計した値を出力用の項目別リストに新たな要素として登録する(S97)。そして、横結合部107又は集計部108は、対照群に未処理の集合が存在するか判断する(S98)。未処理の集合が存在する場合(S98:YES)、S93の処理に戻る。一方、未処理の集合が存在しない場合(S98:NO)、横結合部107又は集計部108は、未処理の項目が存在するか判断する(S99)。横結合処理の場合、図12Cに示したような、縦結合後の項目別リストに、未処理の項目別リストが存在するか判断する。集計処理の場合、キー項目及び集計項目に対応する項目別リストに、未処理のものが存在するか判断する。未処理の項目が存在する場合(S99:YES)、S92の処理に戻る。一方、未処理の項目が存在しない場合(S99:NO)、横結合部107又は集計部108は、横結合・集計処理を終了する。   After S95 or S96, the horizontal combining unit 107 or the totaling unit 108 registers the combined value or the totalized value as a new element in the output itemized list (S97). Then, the horizontal coupling unit 107 or the counting unit 108 determines whether an unprocessed set exists in the control group (S98). If there is an unprocessed set (S98: YES), the process returns to S93. On the other hand, when there is no unprocessed set (S98: NO), the horizontal combining unit 107 or the counting unit 108 determines whether an unprocessed item exists (S99). In the case of the horizontal combination process, it is determined whether an unprocessed item list exists in the item list after the vertical combination as shown in FIG. 12C. In the case of the tallying process, it is determined whether an unprocessed item exists in the itemized list corresponding to the key item and the tallying item. If there is an unprocessed item (S99: YES), the process returns to S92. On the other hand, when there is no unprocessed item (S99: NO), the horizontal combining unit 107 or the counting unit 108 ends the horizontal combining / talling process.

以上のように、本実施形態では対照群を用いて集約するレコードを特定する。上でも述べたように、対照群の生成は、キー項目の値の各々について、すでに生成された集合(対照群の集合のいずれか)に属するか否かを判断することにより行われる。キー項目の値の各々について、キー項目の他の値の各々と比較するような処理を行う必要がないため、対照群の生成は比較的高速に行うことができる。また、対照群を生成した後は、各集合と当該集合に属するレコードの値との関連付けは保持する必要がない。すなわち、対照群の各集合は、行番号のみを保持している。このような対照群を記憶するために必要なメモリの容量は比較的少なくなる。   As described above, in the present embodiment, records to be aggregated are specified using the control group. As described above, the generation of the control group is performed by determining whether or not each of the values of the key item belongs to the already generated set (any of the sets of the control group). Since it is not necessary to perform a process for comparing each of the key item values with each of the other key item values, the control group can be generated relatively quickly. After the control group is generated, it is not necessary to maintain the association between each set and the value of the record belonging to the set. That is, each set of the control group holds only the row number. The amount of memory required to store such a control group is relatively small.

<新規項目生成処理>
次に、集計処理において新しい項目の生成が指示された場合の処理について説明する。例えば、図23に示した画面において集計項目表示領域に「新規」のパネルが追加された場合、図19のS64において、設定処理部102は、値の係数、計算式の入力、又は条件式の入力をユーザ端末2から受け付ける。図31は、新規項目の設定画面の一例を示す図である。例えば、図23において、集計項目表示領域に「新規」パネルが追加され、追加された当該パネルがクリックされると、ユーザ端末2の表示部には、図31に示すような画面が表示される。
<New item generation process>
Next, a description will be given of a process when generation of a new item is instructed in the tallying process. For example, when a “new” panel is added to the total item display area on the screen shown in FIG. 23, in S64 of FIG. 19, the setting processing unit 102 inputs the coefficient of the value, the calculation formula, or the condition formula. Input is received from the user terminal 2. FIG. 31 is a diagram illustrating an example of a new item setting screen. For example, in FIG. 23, a “new” panel is added to the total item display area, and when the added panel is clicked, a screen as shown in FIG. 31 is displayed on the display unit of the user terminal 2. .

図31の例では、新規項目の名称7001と、「キーカウント」、「計算」及び「条件」の各ボタン7002とが表示されている。「キーカウント」が押下されると、キー項目含まれる同一の値ごとに個数が計数される。「計算」が押下されると、ユーザ端末2には、計算式を入力するための画面が表示される。図32は、計算式を入力するための画面の一例を示す図である。図32の画面には、集計項目の一覧を表示するための領域8001と、演算式又は固定値を入力するためのテンキー8002と、計算式を項目のパネル及びテンキーのパネルで表示するための計算式の表示領域8003と、計算式を文字列で確認するための確認用計算式の表示領域8004とを有する。集計項目の一覧には、図25等の集計項目表示領域に追加されたパネルが表示されている。また、本実施形態では、当該新規項目よりも上位に登録されている項目を用いて計算式を作成することができる。すなわち、上位に登録されている他の新規項目の計算結果を用いて、さらに新規項目を定義することができる。   In the example of FIG. 31, a new item name 7001 and buttons 7002 for “key count”, “calculation”, and “condition” are displayed. When "key count" is pressed, the number is counted for each of the same values included in the key item. When “calculation” is pressed, a screen for inputting a calculation formula is displayed on the user terminal 2. FIG. 32 is a diagram illustrating an example of a screen for inputting a calculation formula. On the screen of FIG. 32, an area 8001 for displaying a list of total items, a numeric keypad 8002 for inputting an arithmetic expression or a fixed value, and a calculation for displaying a calculation expression on an item panel and a numeric keypad panel It has a formula display area 8003 and a check calculation formula display area 8004 for checking the calculation formula with a character string. In the total item list, a panel added to the total item display area in FIG. 25 and the like is displayed. Further, in the present embodiment, a calculation formula can be created using an item registered at a higher rank than the new item. That is, a new item can be further defined by using the calculation result of another new item registered at a higher rank.

また、「条件」が押下されると、ユーザ端末2には、条件式を入力するための画面が表示される。図33は、条件式を入力するための画面の一例を示す図である。図33の例では、集計項目の一覧9001と、条件を定義する領域9002と、条件に合致する場合の出力値を設定する領域9003と、条件に合致しない場合の出力値を設定するための領域9004とが表示されている。ユーザは、例えば、集計項目と任意の値との大小関係が指定された条件を満たす場合と満たさない場合とについて、出力する値を設定することができる。また、条件式は「AND」(論理積)又は「OR」(論理和)で接続して複数定義することができる。条件式の場合も、当該新規項目よりも上位に登録されている集計項目を用いてさらに条件式を作成することができる。   When “condition” is pressed, a screen for inputting a conditional expression is displayed on the user terminal 2. FIG. 33 is a diagram illustrating an example of a screen for inputting a conditional expression. In the example of FIG. 33, a total item list 9001, an area 9002 for defining a condition, an area 9003 for setting an output value when the condition is met, and an area for setting an output value when the condition is not met. 9004 is displayed. For example, the user can set a value to be output in a case where the magnitude relationship between the total item and an arbitrary value satisfies a designated condition and in a case where the magnitude relationship does not satisfy the designated condition. Also, a plurality of conditional expressions can be defined by connecting them with “AND” (logical product) or “OR” (logical sum). Also in the case of a conditional expression, it is possible to further create a conditional expression by using a total item registered higher than the new item.

新規項目を設定する場合、集計項目の設定データには、「項目の集計方法」として、頻度を係数する項目、計算式又は条件式が設定される。   When a new item is set, an item for calculating the frequency, a calculation formula, or a conditional expression is set in the setting data of the tally item as “item tallying method”.

図34は、新規項目生成処理の一例を示す処理フローである。まず、集計部108は、集計処理の設定データを読み出し、新規項目を1つ取得する(図34:S101)。また、集計部108は、新規項目の集計処理が条件式又は計算式であるか判断する(S102)。条件式又は計算式である場合(S102:YES)、集計部108は、対照群の集合を1つ取得する(S103)。   FIG. 34 is a process flow illustrating an example of a new item generation process. First, the counting unit 108 reads the setting data of the counting process, and acquires one new item (FIG. 34: S101). In addition, the counting unit 108 determines whether the counting process of the new item is a conditional expression or a calculation expression (S102). If it is a conditional expression or a calculation expression (S102: YES), the counting unit 108 acquires one set of the control group (S103).

そして、集計部108は、条件式の判断又は計算式の算出を行う(S104)。また、集計部108は、条件式の判断結果又は計算式の算出結果を出力用の項目別リストに新たな要素として登録する(S105)。そして、集計部108は、未処理の集合が対照群に存在するか判断し(S106)、未処理の集合が存在する場合(S106:YES)、S103の処理に戻る。一方、未処理の集合が存在しない場合(S106:NO)、S111の処理に遷移する。一方、S102において、条件式又は計算式でないと判断された場合(S102:NO)、集計部108は、対照群の集合を1つ取得する(S107)。そして、集計部108は、対照群の集合に含まれる値の数を計数する(S108)。そして、集計部108は、出力用の項目別リストに新たな要素として登録する(S109)。   Then, the counting unit 108 determines a conditional expression or calculates a calculation expression (S104). In addition, the counting unit 108 registers the determination result of the conditional expression or the calculation result of the calculation expression as a new element in the itemized list for output (S105). Then, the tallying unit 108 determines whether an unprocessed set exists in the control group (S106). If an unprocessed set exists (S106: YES), the process returns to S103. On the other hand, when there is no unprocessed set (S106: NO), the process proceeds to S111. On the other hand, when it is determined in S102 that the expression is not a conditional expression or a calculation expression (S102: NO), the counting unit 108 acquires one set of the control group (S107). Then, the counting unit 108 counts the number of values included in the set of the control group (S108). Then, the counting unit 108 registers the new item in the output itemized list (S109).

その後、未処理の集合が存在するか判断する(S110)。未処理の集合が存在する場合(S110:YES)、S107の処理に戻る。一方、未処理の集合が存在しない場合(S110:NO)、又はS106において未処理の集合が存在しないと判断された場合(S106:NO)、集計部108は、未処理の新規項目が存在するか判断する(S111)。未処理の新規項目が存在する場合(S111:YES)、S101の処理に戻る。一方、未処理の新規項目が存在しない場合(S111:NO)、集計部108は、新規項目生成処理を終了する。   Thereafter, it is determined whether there is an unprocessed set (S110). If there is an unprocessed set (S110: YES), the process returns to S107. On the other hand, when there is no unprocessed set (S110: NO), or when it is determined in S106 that there is no unprocessed set (S106: NO), the counting unit 108 determines that an unprocessed new item exists. Is determined (S111). If there is an unprocessed new item (S111: YES), the process returns to S101. On the other hand, when there is no unprocessed new item (S111: NO), the counting unit 108 ends the new item generation processing.

例えば、図12Cの項目別リストのうち、「Name」をキー項目として横結合する場合、図28Bに示す対照群が生成される。図28Bの対照群に基づいて項目別リストの要素を集約すると、1行目及び4行目の要素、2行目及び5行目の要素、並びに3行目の要素が横結合後の項目別リストの要素になる。図35Aに、横結合後の項目別データの例を示す。図35Aの各項目別リストのうち、1行目の要素は、図12Cの1行目及び4行目の要素を集約したものである。同様に、図35Aの2行目の要素は、図12Cの2行目及び5行目の要素を集約したものである。図35Aの3行目の要素は、図12Cの3行目の要素に相当する。   For example, in the case of horizontally connecting “Name” in the itemized list of FIG. 12C as a key item, a control group shown in FIG. 28B is generated. When the elements of the itemized list are aggregated based on the control group of FIG. 28B, the elements on the first and fourth rows, the elements on the second and fifth rows, and the element on the third row are classified into Become a list element. FIG. 35A shows an example of item-by-item data after horizontal merging. In the list for each item in FIG. 35A, the element on the first line is an aggregation of the elements on the first and fourth lines in FIG. 12C. Similarly, the elements on the second row in FIG. 35A are obtained by integrating the elements on the second and fifth rows in FIG. 12C. The element on the third row in FIG. 35A corresponds to the element on the third row in FIG. 12C.

また、横結合後の項目別リストにおいて、重複する値をフィールド内に残す場合は、図35Bのような項目別リストが生成される。図35Bの例では、「Name」の項目別リストの1行目及び2行目の要素に、それぞれ同一の値が2つずつ保持されている。キー項目以外の項目についても、結合後の項目別リストにおいて1つの要素に複数の値を結合して登録してもよいし、重複を除いて登録してもよい。さらに、重複を除いた上で当該値が出現した頻度を示す数値を登録するようにしてもよい。   In the case where duplicate values are left in the field in the itemized list after the horizontal combination, an itemized list as shown in FIG. 35B is generated. In the example of FIG. 35B, two identical values are held in the elements on the first and second lines of the item-specific list of “Name”. Regarding items other than key items, a plurality of values may be combined and registered for one element in the combined itemized list, or registered without duplication. Further, a numerical value indicating the frequency of occurrence of the value after removing the overlap may be registered.

また、図示は省略するが、集計処理を行う場合は、キー項目及び集計項目について項目別リストが生成される。そして、対照群の集合ごとに、設定された集計方法に基づいて集計される。   In addition, although not shown, when performing the tallying process, an itemized list is generated for the key items and the tallying items. Then, for each set of the control groups, the total is calculated based on the set totaling method.

以上のようにして、横結合後の項目別リスト、又は集計処理後の項目別リストがすべて生成される。これらの項目別リストを表形式データとして出力するためには、図13を用いて説明した出力処理を行う。   As described above, the itemized list after the horizontal combination or the itemized list after the aggregation process is all generated. In order to output these itemized lists as tabular data, the output process described with reference to FIG. 13 is performed.

<変形例>
本実施形態では、項目別リスト生成処理によって、表形式データを項目別リストに分解して扱う。上記の説明では、縦結合処理から出力処理を行うパターン、及び縦結合後の表形式データを用いて横結合・集計処理から出力処理を行うパターンについて説明した。しかし、本実施形態に係る処理のパターンはこれらに限られない。例えば項目別リストを用いて、縦結合処理、横結合処理、集計処理の順に処理を行ったり、このようにして生成した複数の表形式データを用いてさらに縦結合処理を行ったりすることができる。
<Modification>
In the present embodiment, the tabular data is decomposed into an itemized list and handled by the itemized list generation processing. In the above description, the pattern for performing the output process from the vertical combination process and the pattern for performing the output process from the horizontal combination / aggregation process using the tabular data after the vertical combination have been described. However, the processing pattern according to the present embodiment is not limited to these. For example, by using the itemized list, vertical joining processing, horizontal joining processing, and totaling processing can be performed in this order, or further vertical joining processing can be performed using a plurality of tabular data generated in this manner. .

本実施形態では、表形式データ処理装置1が、ネットワーク3を介して各ユーザ端末2へサービスを提供するという構成を説明したが、このような態様には限られない。例えば、表形式データ処理プログラムをインストールしたユーザ端末2が、ネットワーク3への接続を行うことなく、本実施の形態に係る処理を実行するようにしてもよい。この場合、例えば、表形式データ処理装置は入力I/Fを介してユーザからのデータ操作の指示を受け付ける。また、表形式データ処理装置は、出力I/Fを介してモニタ等の出力装置に結果を出力する。   In the present embodiment, the configuration has been described in which the tabular data processing device 1 provides a service to each user terminal 2 via the network 3; however, the present invention is not limited to such a mode. For example, the user terminal 2 installed with the tabular data processing program may execute the process according to the present embodiment without connecting to the network 3. In this case, for example, the tabular data processing apparatus receives a data operation instruction from the user via the input I / F. Further, the tabular data processing device outputs the result to an output device such as a monitor via the output I / F.

また、本実施形態で示した処理フローは例示であり、処理結果が変わらない限りにおいて処理の順序を変更したり、並列に処理を行うようにしてもよい。画面の例についても適宜レイアウト等を変更することができる。   Further, the processing flow described in the present embodiment is an example, and the processing order may be changed or the processing may be performed in parallel as long as the processing result does not change. The layout and the like of the example of the screen can be appropriately changed.

<<バッチ処理に係る実施形態>>
本実施形態に係る装置は、いわゆる表形式データを処理する。表形式データとは、例えば、カンマやタブ、スペース等の区切記号(すなわち、「デリミター」)によって要素(「フィールド」、「列」、「項目」、「属性」又は「値」とも呼ぶ)が区切られ、改行によってレコード(「行」とも呼ぶ)が区切られたテキストデータである。本実施形態では、表形式データのうち、先頭から所定数の行をタイトル行として扱う。すなわち、先頭から所定数の行に含まれる要素を、フィールド名(「列名」、「項目名」、「属性名」等とも呼ぶ)として扱う。このとき、空の行があれば自動的に削除等するようにしてもよい。また、その他の行をデータレコードとして扱う。そして、データレコードに含まれる要素(「値」とも呼ぶ)を結合処理や集計処理等の対象とする。
<< Batch process embodiment >>
The device according to the present embodiment processes so-called tabular data. In tabular data, for example, elements (also called “fields”, “columns”, “items”, “attributes”, or “values”) are separated by delimiters (that is, “delimiters”) such as commas, tabs, and spaces. This is text data that is separated and records (also called “lines”) are separated by line feeds. In the present embodiment, a predetermined number of lines from the top of the tabular data are treated as title lines. That is, elements included in a predetermined number of rows from the top are treated as field names (also called “column names”, “item names”, “attribute names”, and the like). At this time, if there is an empty line, it may be automatically deleted. The other lines are treated as data records. Then, the elements (also referred to as “values”) included in the data records are subjected to the joining process, the tallying process, and the like.

具体的には、本実施形態に係るプログラムは、表形式データに含まれる要素を配列(リスト)に保持し、後述する様々な処理を行う。また、本実施の形態に係る表形式データは、1つの要素としてさらに入れ子状に配列を保持する場合もある。すなわち、表形式データの1つのフィールドに、複数の値を保持できる構成とする。また、本実施の形態では、要素を基本的に文字列として扱う。ただし、集計処理等においては要素が数値、日時等であるか判断し、所定の形式でない要素を検出した場合はエラーメッセージを出力するようにしてもよい。   Specifically, the program according to the present embodiment holds the elements included in the tabular data in an array (list) and performs various processes described later. Also, the tabular data according to the present embodiment may further hold a nested array as one element. In other words, the configuration is such that a plurality of values can be held in one field of the tabular data. In the present embodiment, elements are basically handled as character strings. However, in the tabulation process or the like, it may be determined whether or not the element is a numerical value, date and time, or the like, and an error message may be output when an element having a format other than a predetermined format is detected.

<機能構成>
図36は、表形式データを処理する表形式データ処理装置の一例を示す機能ブロック図である。本実施形態に係る表形式データ処理装置4は、データ記憶部401と、入出力部402と、制御部403と、縦結合部404と、横結合部405と、集計部406と、グループ化部407と、検索部408と、外部連携部409と、バッチ処理部410とを有する。
<Functional configuration>
FIG. 36 is a functional block diagram illustrating an example of a tabular data processing device that processes tabular data. The tabular data processing device 4 according to the present embodiment includes a data storage unit 401, an input / output unit 402, a control unit 403, a vertical connection unit 404, a horizontal connection unit 405, a tally unit 406, a grouping unit 407, a search unit 408, an external cooperation unit 409, and a batch processing unit 410.

データ記憶部401は、例えば、本実施形態で処理の対象となる表形式データ、処理の内容を示すスクリプトデータ、処理結果として生成される表形式データ、その他処理において中間的に生成されるデータを保持する。また、本実施形態に係る処理を実行するための設定も記憶される。本実施の形態では、CSVデータが、表形式データ処理装置4のデータ記憶部401に予め記憶されているものとする。   The data storage unit 401 stores, for example, tabular data to be processed in the present embodiment, script data indicating the details of the processing, tabular data generated as a processing result, and other data generated intermediately in the processing. Hold. The settings for executing the processing according to the present embodiment are also stored. In the present embodiment, it is assumed that CSV data is stored in the data storage unit 401 of the tabular data processing device 4 in advance.

入出力部402は、データ記憶部401に記憶されている表形式データをユーザの指定に基づいて読み出したり、処理結果として生成される表形式データをデータ記憶部401に書き出したりする。制御部403は、ユーザの操作に基づき、縦結合処理、横結合処理、集計処理、グループ化処理、検索処理、外部連携処理等といった処理(プロセスとも呼ぶ)を1つ以上用いて、プロセスを順に実行する処理であるジョブを定義する。なお、ジョブの定義に基づいて、縦結合部404、横結合部405、集計部406、グループ化部407、検索部408、外部連携部409等が処理を実行する。また、ジョブの定義は、一連の処理を実行するためのスクリプトとして、例えばXML(Extensible Markup Language)形式で保存される。なお、ここではプログラムのソースコード自体でなく、本実施形態に係るプログラムが読み込む設定データを「スクリプト」と呼んでいる。   The input / output unit 402 reads the tabular data stored in the data storage unit 401 based on the user's specification, and writes the tabular data generated as a processing result to the data storage unit 401. The control unit 403 uses one or more processes (also referred to as processes) such as a vertical combination process, a horizontal combination process, a tally process, a grouping process, a search process, an external cooperation process, and the like, based on a user operation, and sequentially performs the processes. Define the job to be executed. Note that the vertical combining unit 404, the horizontal combining unit 405, the counting unit 406, the grouping unit 407, the search unit 408, the external cooperation unit 409, and the like execute processing based on the job definition. The job definition is stored as a script for executing a series of processes, for example, in an XML (Extensible Markup Language) format. Here, the setting data read by the program according to the present embodiment, not the source code of the program itself, is called a “script”.

縦結合部404は、1以上の表形式データに含まれるレコードを1つの表形式データに統合する処理(「縦結合処理」と呼ぶ)を行う。また、縦結合処理を実行するための設定をユーザの操作によって受け付ける。横結合部405は、例えばキー項目の値が所定の条件を満たす、複数の表形式データのレコードを1レコードに結合する処理(「横結合処理」と呼ぶ)を行う。また、横結合処理を実行するための設定をユーザの操作によって受け付ける。   The vertical combination unit 404 performs a process (referred to as “vertical combination process”) of integrating records included in one or more tabular data into one tabular data. Also, a setting for executing the vertical combining process is received by a user operation. The horizontal combining unit 405 performs a process of combining records of a plurality of tabular data into one record in which the value of a key item satisfies a predetermined condition (referred to as “horizontal combining process”). Also, a setting for executing the horizontal combination process is received by a user operation.

集計部406は、設定に基づいて、値を数値として集計したり、値を文字列として1つのフィールドに統合したりする処理を行う。グループ化部407は、表形式データに含まれる値を所定のグループに分け、クロス集計を行う。また、クロス集計された状態の表形式データを、条件に従って分割する処理(グループ化解除)を行う。なお、横結合部405、集計部406、グループ化部407を総称して本発明における集約部とも呼ぶ。   The tabulation unit 406 performs a process of tabulating the values as numerical values or integrating the values as a character string into one field based on the settings. The grouping unit 407 divides values included in the tabular data into predetermined groups and performs cross tabulation. In addition, a process (grouping release) of dividing tabular data in a cross tabulated state according to conditions is performed. Note that the horizontal connection unit 405, the aggregation unit 406, and the grouping unit 407 are collectively referred to as an aggregation unit in the present invention.

検索部408は、所定の検索条件に基づいて表形式データからレコードを抽出する。外部連携部409は、本実施形態に係る処理を行うプログラム以外のアプリケーションプログラムを起動させる。バッチ処理部410は、制御部403が定義したジョブを1つ以上用いて、ジョブを順に実行する処理であるバッチ処理を定義する。なお、バッチ処理の定義に基づいて、所定の日時に所定のジョブが所定の順序で起動される。なお、機能の詳細については、後述する。   The search unit 408 extracts records from tabular data based on predetermined search conditions. The external cooperation unit 409 activates an application program other than the program that performs the processing according to the present embodiment. The batch processing unit 410 uses one or more jobs defined by the control unit 403 to define a batch process that is a process of sequentially executing the jobs. In addition, based on the definition of the batch process, predetermined jobs are started in a predetermined order at a predetermined date and time. The details of the function will be described later.

<装置構成>
表形式データ処理装置4も、図3に示すようなコンピュータである。図3に示すコンピュータ1000は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、通信IF(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラム(「ソフトウェア」又は「アプリケーション」とも呼ぶ)を実行することにより本実施の形態に係る処理を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAM(RandomAccess Memory)やROM(Read Only Memory)等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等である。主記憶装置1002や補助記憶装置1003は、表形式データ処理装置4のデータ記憶部401として働く。通信IF1004は、他のコンピュータとの間でデータを送受信する。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。表形式データ処理装置4は、通信IF1004を介してネットワークに接続されていてもよい。入出力IF1005は、入出力装置と接続され、ユーザから操作を受け付けたり、ユーザへ情報を提示したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、通信IF1004、ドライブ装置1006等)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、図3に示したコンピュータを図36に示した表形式データ処理装置4として働かせる。
<Apparatus configuration>
The tabular data processing device 4 is also a computer as shown in FIG. The computer 1000 shown in FIG. 3 includes a CPU (Central Processing Unit) 1001, a main storage device 1002, an auxiliary storage device 1003, a communication IF (Interface) 1004, an input / output IF (Interface) 1005, a drive device 1006, and a communication bus 1007. ing. The CPU 1001 performs a process according to the present embodiment by executing a program (also referred to as “software” or “application”). The main storage device 1002 caches programs and data read by the CPU 1001, and expands a work area of the CPU. The main storage device is, specifically, a RAM (Random Access Memory) or a ROM (Read Only Memory). The auxiliary storage device 1003 stores a program executed by the CPU 1001, setting information used in the present embodiment, and the like. The auxiliary storage device 1003 is, specifically, a hard disk drive (HDD), a solid state drive (SSD), a flash memory, or the like. The main storage device 1002 and the auxiliary storage device 1003 function as the data storage unit 401 of the tabular data processing device 4. The communication IF 1004 transmits and receives data to and from another computer. The communication IF 1004 is, specifically, a wired or wireless network card or the like. The tabular data processing device 4 may be connected to a network via the communication IF 1004. The input / output IF 1005 is connected to the input / output device, and receives an operation from a user or presents information to the user. The input / output device is, specifically, a keyboard, a mouse, a display, a touch panel, or the like. The drive device 1006 reads data recorded on a storage medium such as a magnetic disk, a magneto-optical disk, and an optical disk, and writes data on the storage medium. The above components are connected by a communication bus 1007. A plurality of these components may be provided, or some of the components (for example, the communication IF 1004, the drive device 1006, etc.) may not be provided. Further, the input / output device may be configured integrally with the computer. Also, the program executed in the present embodiment is provided via a portable storage medium readable by the drive device 1006, a portable auxiliary storage device 1003 such as a flash memory, a communication IF 1004, and the like. It may be. When the CPU 1001 executes the program, the computer shown in FIG. 3 operates as the tabular data processing device 4 shown in FIG.

<機能の詳細>
次に、表形式データ処理装置4の機能について説明する。図37は、本実施形態に係るジョブの概略図である。表形式データ処理装置4は、フォーマット(すなわち、列や列の名称といった表形式データの構成)の異なる複数の表形式データから、指定した条件のデータを抽出し、縦横自在に結合を行うことができる。また、横方向の結合をする際、データクレンジングを行うことにより、結果の精度を上げることができる。結合処理の他、集計や検索等も行うことができ、設定したスケジュールでこれらの処理を連携させて実行することもできる。なお、作成する表形式データは新たなファイルとして出力し、入力された表形式データは更新しない方が、例えばユーザが試行錯誤しつつ処理を繰り返す上では好ましい。これらの機能の設定は、例えばXML形式で保存することができる。
<Details of function>
Next, the function of the tabular data processing device 4 will be described. FIG. 37 is a schematic diagram of a job according to the present embodiment. The tabular data processing device 4 extracts data of specified conditions from a plurality of tabular data having different formats (that is, a configuration of tabular data such as columns and column names), and can perform vertical and horizontal coupling. it can. In addition, when performing horizontal coupling, data cleansing can improve the accuracy of the result. In addition to the combining process, aggregation, search, and the like can be performed, and these processes can be executed in cooperation with each other on a set schedule. It is preferable that the tabular data to be created be output as a new file and the input tabular data is not updated, for example, in order for the user to repeat the process while performing trial and error. The settings of these functions can be saved, for example, in XML format.

<縦結合>
縦結合とは、例えばデータフォーマットの異なる複数の表形式データ(入力データ)に含まれるレコードを統合し、新たな表形式データ(出力データ)を生成する処理である。図38及び図39は、縦結合処理の入力データの一例である。図38は、「社員交通費清算.csv」というファイル名の表形式データであり、8件のレコードを含んでいる。図39は、「営業経費.csv」というファイル名の表形式データであり、8件のレコードを含んでいる。図38及び図39の列名及び順序は異なっているが、2つの表形式データは内容的に対応する項目を一部に含んでいる。また、図40は、縦結合処理の出力データの一例である。図40の表形式データは、図38の8件及び図39の8件に対応するレコードを含んでいる。すなわち、縦結合部404は、入力データに含まれるレコードを縦方向に結合(積み重ね)する。さらに、図40においては、所定の列同士が対応付けられている。また、図38における列「名前」は、図39における列「lastName」及び列「FirstName」の結合と対応付けられている。なお、入力される表形式データは複数でなく1つであってもよい。この場合、出力される表形式データの列名を変更することはできるが、データレコードの要素は入力データと変わらない。なお、縦結合処理は、縦結合部404によって実行される。
<Vertical connection>
The vertical combination is, for example, a process of integrating records included in a plurality of tabular data (input data) having different data formats to generate new tabular data (output data). FIG. 38 and FIG. 39 are examples of input data of the vertical combination processing. FIG. 38 shows tabular data having a file name of “employee transportation expense settlement.csv”, which includes eight records. FIG. 39 shows tabular data of a file name “operating expenses.csv”, which includes eight records. Although the column names and the order in FIGS. 38 and 39 are different, the two tabular data partially include items corresponding in content. FIG. 40 shows an example of output data of the vertical combining process. The tabular data in FIG. 40 includes records corresponding to the eight cases in FIG. 38 and the eight cases in FIG. That is, the vertical combining unit 404 combines (stacks) the records included in the input data in the vertical direction. Further, in FIG. 40, predetermined columns are associated with each other. The column “name” in FIG. 38 is associated with the combination of the column “lastName” and the column “FirstName” in FIG. The input tabular data may be one instead of a plurality. In this case, the column names of the tabulated data to be output can be changed, but the elements of the data record are not different from the input data. Note that the vertical combining process is performed by the vertical combining unit 404.

図41は、縦結合の設定画面(縦結合列編集画面)の一例を示す図である。図41のテーブルは、「CSVファイル名」の列と、各CSVファイルに含まれる列の対応付けを示す列(「番号」、「日付」、「名前」・・・)とを含んでいる。図41の上段に表示されている列の名称(「番号」、「日付」、「名前」・・・)は、出力ファイルの列名を表している。すなわち、図41において同一の列に表示されている各CSVファイルの列は、出力ファイルにおいて対応付けられている。なお、出力ファイルの列名は、ユーザが変更することができる。また、図41に示す列の順序は、出力ファイルにおける列の順序を表している。「名前」の列のように、一方のCSVファイルにおける複数の列の結合を、他方のCSVファイルにおける1つの列に対応付けることもできる。また、他方のCSVファイルのいずれの列とも対応付けられない列が存在してもよく、入力ファイルの少なくとも一部の列は出力ファイルに出力されなくてもよい。また、3つ以上のCSVファイルを対応付けることも可能である。   FIG. 41 is a diagram illustrating an example of a vertical combination setting screen (vertical combination column editing screen). The table of FIG. 41 includes a column of “CSV file name” and columns (“number”, “date”, “name”...) Indicating correspondence between columns included in each CSV file. The column names (“number”, “date”, “name”...) Displayed in the upper part of FIG. 41 represent the column names of the output file. That is, the columns of each CSV file displayed in the same column in FIG. 41 are associated with each other in the output file. Note that the column name of the output file can be changed by the user. The order of the columns shown in FIG. 41 indicates the order of the columns in the output file. Like the column of “name”, a combination of a plurality of columns in one CSV file can be associated with one column in the other CSV file. Further, there may be a column that is not associated with any column of the other CSV file, and at least a part of the column of the input file may not be output to the output file. It is also possible to associate three or more CSV files.

また、図41に示した縦結合列編集画面において「ベースファイル選択」ボタンが押下されると、図42に示すような縦結合ベースファイル選択画面が表示される。図42の画面では、「CSVファイル名」の列に、読み出されたCSVファイルの名称が表示される。また、「データサイズ」の列には、CSVファイルのファイルサイズが表示される。「日付」の列には、CSVファイルの更新日が表示される。「選択」の列のチェックボックスには、縦結合の基準とするCSVファイルにユーザがチェックを入れる。本実施形態では、基準とするCSVファイルの属性名を用いて所定の優先順位に従い、出力データの属性名を設定するものとする。   When the “base file selection” button is pressed on the vertical combination column editing screen shown in FIG. 41, a vertical combination base file selection screen as shown in FIG. 42 is displayed. In the screen of FIG. 42, the name of the read CSV file is displayed in the column of “CSV file name”. In the column of “data size”, the file size of the CSV file is displayed. In the column of “date”, the update date of the CSV file is displayed. In the check box in the column of "selection", the user checks a CSV file as a reference of the vertical combination. In the present embodiment, the attribute name of the output data is set according to a predetermined priority using the attribute name of the reference CSV file.

また、図41の画面において「編集」ボタンが押下されると、操作メニューが表示される。操作メニューは、「編集」、「削除」、「右側に移動」、「左側に移動」、「右側に属性を追加」、「左側に属性を追加」、「キャンセル」といったメニューを含む。ユーザが「編集」を選択すると、図43に示すような表示属性抽出設定画面が表示される。表示属性抽出設定画面については、後述する。「削除」を選択すると、当該列が削除される。「右側に移動」を選択すると、当該列が右隣りと入れ替わる。「左側に移動」を選択すると、当該列が左隣りと入れ替わる。「右側に属性を追加」を選択すると、当該列の右側に新たな列が1つ追加される。「キャンセル」を選択すると、メニューの選択が中止される。   When the “edit” button is pressed on the screen in FIG. 41, an operation menu is displayed. The operation menu includes menus such as “edit”, “delete”, “move right”, “move left”, “add attribute to right”, “add attribute to left”, and “cancel”. When the user selects “edit”, a display attribute extraction setting screen as shown in FIG. 43 is displayed. The display attribute extraction setting screen will be described later. When "delete" is selected, the column is deleted. When "move right" is selected, the row is replaced with the row on the right. When "move to left" is selected, the column is replaced with the column on the left. When "add attribute to right" is selected, one new column is added to the right of the column. When "Cancel" is selected, menu selection is stopped.

また、縦結合列編集画面では、設定の状態に応じてフィールドの色が変更されるようにしてもよい。例えば、薄紫色は、新しい属性名と同一であり、表示属性抽出設定画面で個別に属性指定をしていない状態を示す。また、クリーム色は、表示属性抽出設定画面で個別に属性指定を行った状態を示す。さらに、オレンジ色は、表示属性抽出設定画面でCSVファイル選択を解除した状態を示す。そして、白色は、表示属性抽出設定画面で新しい属性名と一致する属性名がCSVファイル中に存在しない状態を示す。なお、プロセス復元をした場合は、新規プロセス作成時に薄紫色であったパネルは、クリーム色となる。   Further, on the vertical combination column editing screen, the color of the field may be changed according to the setting state. For example, light purple is the same as the new attribute name, and indicates a state in which no attribute is individually specified on the display attribute extraction setting screen. The cream color indicates a state in which the attribute is individually specified on the display attribute extraction setting screen. Further, the orange color indicates a state where the CSV file selection is released on the display attribute extraction setting screen. The white color indicates a state where the attribute name that matches the new attribute name on the display attribute extraction setting screen does not exist in the CSV file. When the process is restored, the panel that was light purple when the new process was created becomes cream-colored.

また、図41の操作メニューから「編集」が選択された場合、図43に示すような表示属性抽出設定画面が表示される。図43の画面は、「新しい属性名」のテキストボックス、「CSVファイル名」の欄、「CSVファイルの属性名」のチェックボックス、「CSVファイルの内容」の行、設定を保存する「設定」ボタンが含まれている。「新しい属性名」のテキストボックスには、属性名が表示される。新しい属性名は、ユーザが修正できる。「CSVファイル名」の欄には、CSVファイル名が表示される。「CSVファイルの属性名」のチェックボックスは、個別に属性の関連付けを行う場合にユーザがチェックする。なお、例えば、「都道府県」及び「市区町村」の2つの属性を結合して1つの属性としたい場合、「都道府県」と「市区町村」とにチェックをする。「CSVファイルの内容」の行には、CSVファイルのデータレコードの1行目が表示される。表示属性抽出設定画面には、以上のような情報が、CSVファイルの数だけ表示される。また、縦結合の設定として、列同士の対応付け等、図41から図43を用いてユーザが設定した内容がデータ記憶部401に記憶される。   When "edit" is selected from the operation menu in FIG. 41, a display attribute extraction setting screen as shown in FIG. 43 is displayed. The screen of FIG. 43 includes a text box of “new attribute name”, a column of “CSV file name”, a check box of “CSV file attribute name”, a line of “CSV file content”, and “setting” for saving the setting. Buttons are included. The attribute name is displayed in the text box of "new attribute name". The new attribute name can be modified by the user. The CSV file name is displayed in the column of “CSV file name”. The user checks the “CSV file attribute name” check box when associating attributes individually. For example, in a case where two attributes “prefecture” and “city” are to be combined into one attribute, “prefecture” and “city” are checked. The first line of the data record of the CSV file is displayed in the line of “contents of CSV file”. The above information is displayed on the display attribute extraction setting screen by the number of CSV files. Further, as the setting of the vertical combination, the contents set by the user using FIGS. 41 to 43, such as correspondence between columns, are stored in the data storage unit 401.

<横結合>
横結合とは、所定の列に含まれる要素の集合に基づいてレコードを統合(集約とも呼ぶ)し、新たな表形式データを生成する処理である。具体的には、例えば縦結合等で得られた1つの表形式データを処理対象として、ユーザが指定したキー属性の値に基づきレコードを横方向に結合する。後述するデータクレンジング機能を用いることで、住所や名前といった要素の集合を特定する際に、表記の揺れを吸収して処理を行うことが可能である。また、データ欠損、重複データの確認、データ品質のチェック等を行うこともできる。
<Horizontal coupling>
The horizontal join is a process of integrating records (also referred to as aggregation) based on a set of elements included in a predetermined column and generating new tabular data. Specifically, for example, one table format data obtained by vertical combination or the like is processed, and records are combined in the horizontal direction based on the value of the key attribute specified by the user. By using a data cleansing function described later, when specifying a set of elements such as an address and a name, it is possible to perform processing while absorbing fluctuations in notation. It is also possible to check for missing data, duplicate data, and check data quality.

図44は、横結合の処理対象となる表形式データ(入力データ)の一例である。図44は、図45及び図46に示すような表形式データを用いて縦結合処理したものである。図44では、図45の「会社名」及び図46の「会社」という項目が1つの列に揃えられている。その他の項目は、対応付けされておらず、図44の一部のフィールドは空になっている。横結合では、キー属性の値が同一である複数のレコードを1レコードにまとめ(「名寄せ」とも呼ぶ)、キー以外の属性については複数のレコードに含まれていた値を1つのフィールドにデリミター又は改行で区切って列挙するようにしてもよい。この場合、1つのフィールド内に同一の値が複数存在するときは、重複を除くようにしてもよいし、重複を除かないようにしてもよい。また、横結合では、いわゆるマスタデータにあたる表形式データを用いて、他の表形式データに存在しない項目のフィールドを補完(「自動補完」とも呼ぶ)するようにしてもよい。図44の属性「会社」をキー属性として、キー属性の値が同一(完全一致)のレコードを1行にまとめると、図47のようになる。図47の例では、キー属性の値が同一のレコードを基準として、図46にない「社員数」の列を、いわゆるマスタデータである図45の要素で補完している。なお、補完の処理は、縦結合を行う際、補完元となる属性を左側に配置しておくものとし、表型データ上の優先レコード(マスタデータ)を判別する。また、マスタデータがキー属性で一意に特定される場合に、優先レコードの内容から補完を実行可能とする。最後に、優先レコードは削除される。なお、横結合のキー属性は、標準化(データクレンジング)を行うようにしてもよい。例えば、値に含まれる法人名が「株式会社」、「(株)」、「カ)」等である場合に、同一として扱うことができる。また、「完全一致」の他、「前方一致」、「後方一致」、「中間一致」等の場合に同一であると判断するようにしてもよい。   FIG. 44 is an example of tabular data (input data) to be processed for horizontal joining. FIG. 44 shows the result of the vertical combining process using the tabular data as shown in FIGS. In FIG. 44, the items “company name” in FIG. 45 and “company” in FIG. 46 are arranged in one column. The other items are not associated, and some fields in FIG. 44 are empty. In the horizontal join, a plurality of records having the same key attribute value are combined into one record (also referred to as “name identification”), and for attributes other than the key, the values included in the multiple records are delimited by a single field. The list may be separated by a line feed. In this case, when a plurality of the same values exist in one field, the duplication may be removed or the duplication may not be removed. In the horizontal combination, the field of an item that does not exist in other tabular data may be complemented (also referred to as “automatic complement”) by using tabular data corresponding to so-called master data. When records having the same (perfect match) key attribute values are grouped into one line using the attribute “company” in FIG. 44 as a key attribute, the result is as shown in FIG. In the example of FIG. 47, the column of “number of employees” not shown in FIG. 46 is complemented by the element of FIG. 45, which is so-called master data, based on records having the same key attribute value. In the complementing process, when performing vertical combining, it is assumed that the attribute to be complemented is arranged on the left side, and the priority record (master data) on the tabular data is determined. Further, when the master data is uniquely specified by the key attribute, the complement can be executed from the contents of the priority record. Finally, the priority record is deleted. The key attributes of the horizontal combination may be standardized (data cleansing). For example, if the corporation name included in the value is “stock company”, “(stock)”, “f)”, etc., it can be treated as the same. In addition, in addition to “perfect match”, in the case of “front match”, “backward match”, “middle match”, etc., it may be determined that they are the same.

図48及び図49は、横結合の設定を行う画面の一例を示す図である。図48の画面(横結合画面とも呼ぶ)は、「属性一覧」と、「キー属性」と、「重複する値の処理」と、「値の間の接続因子」とを指定するための領域を含む。「属性一覧」の領域には、入力ファイルである表形式データに含まれる属性の一覧が表示される。表示されている属性のパネルを「キー属性」の領域へドラッグアンドドロップすることにより、ユーザは「キー属性」を指定できる。なお、キー属性の領域に複数のキー属性が表示されている場合、ユーザはパネルをドラッグしてキー属性の順序を入れ替えることもできる。   FIG. 48 and FIG. 49 are diagrams illustrating an example of a screen for setting horizontal coupling. The screen (also referred to as a horizontal combination screen) in FIG. 48 includes areas for designating “attribute list”, “key attribute”, “processing of duplicate values”, and “connection factor between values”. Including. In the "attribute list" area, a list of attributes included in tabular data as an input file is displayed. By dragging and dropping the displayed attribute panel to the “key attribute” area, the user can specify the “key attribute”. When a plurality of key attributes are displayed in the key attribute area, the user can also change the order of the key attributes by dragging the panel.

また、キー属性の指定の詳細は、図49のような画面(横結合キー設定画面とも呼ぶ)を介して行う。図49の画面は、「名寄せ判断」と、「データクレンジング処理」とを指定するための領域を含む。「名寄せ判断」は、「完全一致」、「中間一致」、「前方一致」又は「後方一致」から、ユーザがいずれかをクリックすることで選択される。ここで、キー属性を複数指定する場合、各パネルの名寄せ判断の設定に関わらず、「完全一致」として動作するものとする。また、データクレンジングを行う場合は、ユーザは「標準化(データクレンジング)をする」のチェックボックスにチェックし、プルダウンメニューからデータクレンジングの種類を選択する。図49の例では、「法人名」が選択されている。   The details of the specification of the key attribute are performed through a screen as shown in FIG. 49 (also referred to as a horizontal combination key setting screen). The screen of FIG. 49 includes an area for designating “name determination” and “data cleansing processing”. The “name identification” is selected by the user clicking one of “perfect match”, “intermediate match”, “front match”, and “backward match”. Here, when a plurality of key attributes are specified, it is assumed that the operation is performed as “perfect match” regardless of the setting of the name identification judgment of each panel. When performing data cleansing, the user checks the check box of “Perform standardization (data cleansing)” and selects a type of data cleansing from a pull-down menu. In the example of FIG. 49, “corporate name” is selected.

また、図48に示すように、ユーザは「重複する場合の処理」について、「1行にまとめ且つ重複を除く」、「1行にまとめ且つ重複を除かない」、「1行にまとめず頻度でソートする」、「1行にまとめず自動補完する」のいずれかをクリックして選択できる。さらに、1行にまとめる場合は、「値の間の接続因子」について、キー属性以外の属性について1つのフィールドにまとめられる複数の要素を区切る記号を選択する。選択肢としては、「カンマ」、「スラッシュ」、「改行」及び「スペース」がある。図48及び図49を用いて説明したような項目が、横結合処理の設定情報としてデータ記憶部401に記憶される。なお、図48や図49の設定画面において、パネルの色が設定の状態を表すようにしてもよい。例えば、水色は、未設定の状態を表す。また、紫色は、横結合キー設定画面において設定済の状態を表す。また、横結合の設定として、図48及び図49の画面を介してユーザが指定した内容が、データ記憶部401に記憶される。   Further, as shown in FIG. 48, regarding the “processing in case of overlapping”, the user “collects in one line and removes duplicates”, “collects in one line and does not remove duplicates”, and Sort by "or" Complete automatically without grouping ". Further, in the case of grouping in one line, for the “connection factor between values”, a symbol that separates a plurality of elements grouped in one field for attributes other than the key attribute is selected. Options include “comma”, “slash”, “new line”, and “space”. The items described with reference to FIGS. 48 and 49 are stored in the data storage unit 401 as setting information of the horizontal combining process. In the setting screens of FIGS. 48 and 49, the color of the panel may indicate the setting state. For example, light blue indicates an unset state. Also, purple indicates a state that has been set on the horizontal combination key setting screen. In addition, the content specified by the user via the screens of FIGS. 48 and 49 is stored in the data storage unit 401 as the setting of the horizontal connection.

ここで、図50から図59を用いて、「重複する値の処理」及び「値の間の接続因子」別の出力例を説明する。例えば、図50に示すような社員の交通費清算のデータを入力データとし、「血液型」をキー属性として横結合するものとする。重複を除き且つ値の間の接続因子をカンマとする出力例は、図51のようになる。同様に、重複を除き且つ接続因子をスラッシュとする出力例は、図52のようになる。また、重複を除き且つ接続因子を改行とする出力例は、図53のようになる。重複を除き且つ接続因子をスペースとする出力例は、図54のようになる。また、重複を除かず且つ接続因子をカンマとする出力例は、図55のようになる。同様に、重複を除かず且つ接続因子をスラッシュとする出力例は、図56のようになる。また、重複を除かず且つ接続因子を改行とする出力例は、図57のようになる。そして、重複を除かず且つ接続因子をスペースとする出力例は、図58のようになる。さらに、1行にまとめず且つ頻度ソートを行う場合の出力例は、図59のようになる。   Here, with reference to FIG. 50 to FIG. 59, output examples for “processing of duplicate values” and “connection factors between values” will be described. For example, it is assumed that the data of the employee's transportation expenses settlement as shown in FIG. 50 is used as input data, and "blood type" is laterally connected as a key attribute. FIG. 51 shows an output example in which the connection factor between values is removed and commas are excluded. Similarly, an output example in which duplicates are removed and the connection factor is a slash is as shown in FIG. FIG. 53 shows an output example in which duplicates are removed and the connection factor is a line feed. FIG. 54 shows an output example in which the overlap is removed and the connection factor is a space. FIG. 55 shows an output example in which the connection factor is a comma without removing the duplication. Similarly, an output example in which the slash is used as the connection factor without removing the duplication is as shown in FIG. FIG. 57 shows an output example in which the connection factor is a line feed without removing the duplication. Then, an output example in which the overlap is not removed and the connection factor is a space is as shown in FIG. Further, an output example in the case where the frequency sorting is performed without being combined into one line is as shown in FIG.

<クレンジング及びユーザ定義辞書>
横結合や後述する集計、グループ化において、標準化(データクレンジング)を行うことができる。標準化は、揺れのある表記に対して名寄せを行う。例えば、「名寄せ判断」が「完全一致」を選択した場合に指定する。データクレンジングの方法として、電話番号、郵便番号、日付、法人名、数値、和文解析、英文解析、氏名、住所、ユーザ辞書のいずれかを選択することができる。
<Cleansing and user-defined dictionary>
Standardization (data cleansing) can be performed in horizontal joining, tabulation and grouping described later. Standardization performs name matching for shaky notations. For example, this is specified when “judgment judgment” selects “perfect match”. As a data cleansing method, any one of a telephone number, a postal code, a date, a company name, a numerical value, Japanese analysis, English analysis, a name, an address, and a user dictionary can be selected.

電話番号は、「03-1234-5678」、「03(1234)5678」、「0312345678」といった表記の違いを同一であるものとして扱う。郵便番号は「〒273-0039」、「273-0039」、「2730039」といった表記の違いを同一であるものとして扱う。日付は、GGGGyyMMdd(平成250110,H250110)、yyMMdd(130110)、yyyyMMdd(20130110)、GGGGyy年MM月dd日(平成25年01月10日,H25年01月10日)、yyyy年MM月dd日(2013年01月10日)、GGGGyy/MM/dd(平成25/01/10,H25/01/10)、yy/MM/dd(13/01/10)、yyyy/MM/dd(2013/01/10,2013/1/10 9:06:39)、yy-MM-dd(13-01-10)、GGGGyy-MM-dd(平成25-01-10,H25-01-10)、yyyy-MM-dd(2013-01-10)、yy年MM月dd日(13年01月10日)といった表記の違いを同一であるものとして扱う。法人名は、(株)、機種依存文字によるマーク及び株式会社、(有)、機種依存文字によるマーク及び有限会社、(医)及び医療法人、(社)及び社団法人、(財)及び財団法人、(合)及び合資会社、(宗)及び宗教法人、(学)及び学校法人、(相)及び相互会社、(資)及び合資会社、(名)及び合名会社、(独)及び独立行政法人、(特)及び特別認可法人、(福)及び福祉法人、並びに一般、公益、協議会及び連合会の有無といった表記の違いを同一であるものとして扱う。数値は、\12,300、12300、12,300、壱万弐千参百、一万二千三百といった表記の違いを同一であるものとして扱う。和文解析は、「△△太郎です」、「△△ 太郎」、「あいう△△太郎」といった文を解析して名前等を抽出する。英文解析は、SankakuTaro、Sankaku Taro、sankaku taroといった英文における標記の違いを同一であるものとして扱う。氏名は、齋藤たろう、齊藤たろう、斉藤たろう、斎藤たろうといった感じの異体字を同一であるものとして扱う。住所は、「千葉県船橋市印外○丁目□番×号△△△ハイツB-567号室」、「船橋市印外○-□-×-567」、「千葉県船橋市印外○-□-×-567」、「千葉県船橋市印外○丁目□番×号B-567号室」、「千葉県船橋市印外○丁目□番×号567号室」といった表記の違いを同一であるものとして扱う。   Regarding telephone numbers, differences in notation such as “03-1234-5678”, “03 (1234) 5678”, and “0312345678” are treated as being the same. Regarding postal codes, differences in notation such as “$ 273-0039”, “273-0039”, and “2730039” are treated as being the same. Dates are GGGGyyMMdd (Heisei 250110, H250110), yyMMdd (130110), yyyyMMdd (20130110), GGGGyy MM / dd / dd (January 10, 2013, January 10, H25 / Jan 10, MM / dd / yyyy) (January 10, 2013), GGGGyy / MM / dd (2013/01/10, H25 / 01/10), yy / MM / dd (13/01/10), yyyy / MM / dd (2013 / 01 / 10,2013 / 1/10 9:06:39), yy-MM-dd (13-01-10), GGGGyy-MM-dd (2013-01-10, H25-01-10), yyyy -MM-dd (2013-01-10) and MM / dd / yy (yy / 13/13) are treated as the same. The corporate name is (stock), the mark with model-dependent characters and a corporation, (Yes), the mark with model-dependent characters and a limited liability company, (medical) and medical corporations, (corporation) and corporations, (goods) and foundations , (G) and joint-stock companies, (sect) and religious corporations, (study) and school corporations, (s) and mutual companies, (k) and joint-stock companies, (n) and joint-stock companies, (G) and independent administrative corporations , (Special) and specially licensed corporations, (Fuku) and welfare corporations, and general, public interest, the presence of councils and federations are treated as the same. Numerical values are treated as the same notation differences such as \ 12,300, 12,300, 12,300, 1,200,300, and 1,200,300. In the Japanese sentence analysis, sentences such as “I am Taro”, “Taro Taro”, and “Taro Aoi” are analyzed to extract names and the like. In the English sentence analysis, differences in titles in English sentences such as SankakuTaro, Sankaku Taro, and sankaku taro are treated as being the same. The name treats variants with the same feeling, such as Saito Taro, Saito Taro, Saito Taro, and Saito Taro. The addresses are `` No. B-567, Ingai, Ingai, Funabashi-shi, Chiba Prefecture, Room # Heights B-567 '', `` In-gai, Ingai, Funabashi-shi, Chiba Pref. -× -567 '', `` Ingai-Chome No. B-567, Funaibashi-shi, Chiba Prefecture, Room B-567 '', and `` Room No. 567, Ingai, Funaibashi-shi, Chiba Prefecture '' Treat as

ユーザ辞書は、ユーザが定義する辞書ファイルに表記のゆれや同義語をあらかじめ設定して用いる。表記のゆれや同義語をあらかじめ設定することにより、あいまいな値を正規化して扱うことができる。また、一括して文字を置換するための辞書(一括文字置換辞書)も選択できる。ユーザ辞書は、間柄(親子間関係)と同義語による名寄せを行う辞書である。正規表現ユーザ辞書は、正規表現による名寄せを行うための辞書である。置換用ユーザ辞書は、登録した内容をもとに、文字置換を一括で行うための辞書である。名寄せ関連の辞書は、例えば、順位1:間柄と同義語、順位2:正規表現のような優先順位をつけて適用される。   The user dictionary uses a dictionary file defined by the user in advance by setting the spelling and synonyms of the notation. By setting the notation fluctuation and synonyms in advance, ambiguous values can be normalized and handled. Also, a dictionary for collectively replacing characters (batch character replacement dictionary) can be selected. The user dictionary is a dictionary that performs name matching based on a relationship (parent-child relationship) and a synonym. The regular expression user dictionary is a dictionary for performing name matching based on a regular expression. The replacement user dictionary is a dictionary for performing character replacement collectively based on registered contents. The name-related dictionaries are applied with priorities such as, for example, rank 1: relationship and synonym, rank 2: regular expression.

ユーザ辞書は、例えば図60のように、テキストエディタなどで内容を編集できるものとする。図60は、間柄と同義語のユーザ辞書の記載例である。図60では、語句を模式的にアルファベットで示している。間柄(親子間関係)の入力は、例えば、語句を半角スラッシュ「/」で区切って入力する。スラッシュの左側に親の語句、スラッシュの右側に子の語句を入力する。同義語の入力は、例えば、語句を半角カンマ「,」で区切って入力する。また、先頭に「#」を付した行は、コメントとして扱い、処理には用いない。   It is assumed that the contents of the user dictionary can be edited with a text editor or the like as shown in FIG. 60, for example. FIG. 60 is a description example of a user dictionary of synonyms with relations. In FIG. 60, words and phrases are schematically represented by alphabets. The relationship (parent-child relationship) is input, for example, by separating words and phrases with a half-width slash "/". Enter the parent phrase to the left of the slash and the child phrase to the right of the slash. The synonym is input, for example, by separating words and phrases with a single-byte comma “,”. Lines preceded by “#” are treated as comments and are not used for processing.

図61に、図60のユーザ辞書を図化した語句の関係の一例を示す。なお、図61における円形で囲われたアルファベットは、1つの語句を表している。例えば、「C」「D」「P」は同義語、「C」は親「A」と、「P」は親「O」と間柄(親子間関係)である。なお、間柄と同義語は、自動的に連携するものとする。具体的には、図60において「K」は直接的には「I」との親子間関係が定義されているのみである。自動的に連携することにより、最上位概念を取得する場合、「K」を指定すると、「K」−「I」−「H」−「G」−「Q」−「O」の順に辿り、最上位の語句「O」を取得することができる。また、「C」及び「P」のように複数の同義語が別々の親と紐付いている場合、同義語「C」「D」「P」は自然順序で並べ替えられ、一番近い親と紐付く。自然順序とは、例えば、文字であればアルファベット順、数値であれば値の小さい順である。なお、図60のようなユーザ辞書において、同義語のうち一番左に定義されている語句に紐づけるようにしてもよい。図60のようなユーザ辞書が設定されている場合、図61の語句「D」は、同義語「C」と紐づけられる。さらに、語句「C」は、親「A」と紐づけられる。また、ある語句の下位概念を取得する場合、例えば当該語句の下位に接続されたすべての子及びそれらの同義語を取得するものとする。具体的には、「H」を指定すると「I」、「K」、「J」、「M」、「L」を取得できる。このように、各語句は、最上位の親、もしくは所定の優先順位に基づく同義語、又は下位に接続されたすべての子及びそれらの同義語と紐づけられるものとする。   FIG. 61 shows an example of the relationship between words and phrases formed by plotting the user dictionary shown in FIG. The alphabet enclosed by a circle in FIG. 61 represents one phrase. For example, “C”, “D” and “P” are synonyms, “C” is a parent “A”, and “P” is a relationship with a parent “O” (parent-child relationship). Note that the relationship and the synonym are automatically linked. Specifically, in FIG. 60, “K” directly defines the parent-child relationship with “I” only. When acquiring a top-level concept by automatically cooperating, if "K" is specified, it follows in the order of "K"-"I"-"H"-"G"-"Q"-"O", The top-level phrase "O" can be obtained. When a plurality of synonyms are associated with different parents, such as “C” and “P”, the synonyms “C”, “D”, and “P” are rearranged in a natural order, and Tied. The natural order is, for example, alphabetical order in the case of a character, and small value in the case of a numerical value. In the user dictionary as shown in FIG. 60, a synonym may be linked to the leftmost defined phrase. When the user dictionary as shown in FIG. 60 is set, the phrase “D” in FIG. 61 is associated with the synonym “C”. Further, the phrase “C” is associated with the parent “A”. When acquiring a subordinate concept of a phrase, for example, it is assumed that all children connected to the subordinate of the phrase and their synonyms are acquired. Specifically, when "H" is designated, "I", "K", "J", "M", and "L" can be acquired. In this way, each phrase is assumed to be associated with the highest parent, a synonym based on a predetermined priority, or all children connected below and their synonyms.

本実施形態では、例えば、間柄として組織内の部署の構成を定義することで、部署ごとに名寄せや後述する集計を行うことができる。また、間柄として、製品を構成する部品を階層的に定義することで、製品の構成要素ごとに名寄せや集計を行うこともできる。新旧製品についてこのような集計結果の結果を比較することで、新旧製品の部品の互換性をチェックすることもできる。なお、同義語とは、同一概念(同概念)の関係を意味する。また、間柄とは、上位概念及び下位概念の関係を意味する。本実施の形態では、ユーザが設定した辞書に基づいて自由度の高い名寄せ等を行うことができるようになる。   In the present embodiment, for example, by defining the configuration of a department in an organization as a relationship, it is possible to perform name identification and counting described later for each department. Also, by defining the components that make up the product as a relationship hierarchically, it is also possible to perform name identification and aggregation for each component of the product. By comparing the results of the aggregation results for new and old products, it is also possible to check the compatibility of parts of the new and old products. Note that the synonym means a relationship of the same concept (same concept). In addition, the relationship means a relationship between a superordinate concept and a subordinate concept. In the present embodiment, it is possible to perform name identification with a high degree of freedom based on a dictionary set by the user.

また、図62は、正規表現のユーザ辞書の入力例である。「.?」は、0又は1個の文字の存在を示す。よって、「パ.?ツ」には、「パーツ」、「パ−ツ」、「パツ」等が該当する。なお、「パーーツ」は該当しない。「.*」は、0個以上の文字の存在を示す。よって、「.*前田.*」には、「あいう前田」、「前田」、「前田か」等が該当する。一般的な正規表現が使用できるものとし、上記以外の表現については説明を省略する。   FIG. 62 shows an example of inputting a regular expression user dictionary. ".?" Indicates the presence of 0 or 1 character. Therefore, "parts" corresponds to "parts", "parts", "pats", and the like. “Parts” does not apply. “. *” Indicates the presence of zero or more characters. Therefore, ". * Maeda. *" Corresponds to "that Maeda", "Maeda", "Maeda?", And the like. It is assumed that a general regular expression can be used, and description of expressions other than the above is omitted.

また、図63は、置換のユーザ辞書の入力例である。図63の例では、語句を「/」で区切って入力している。「/」の左側の語句は、置換後の語句を表し、「/」の右側の語句は、置換元の語句を表す。なお、置換基の語句は、「,」で複数入力できる。図63のようなユーザ辞書を利用すると、「JAPAN」という語句は、「JXPXP」に置換される。   FIG. 63 shows an input example of the replacement user dictionary. In the example of FIG. 63, words are input by separating them with “/”. The phrase to the left of “/” represents the phrase after replacement, and the phrase to the right of “/” represents the phrase to be replaced. In addition, the term of the substituent can be input plurally by ",". When a user dictionary as shown in FIG. 63 is used, the phrase “JAPAN” is replaced with “JXPXP”.

<集計>
集計とは、1つの表形式データを処理対象として、キー属性を含む所定の条件に基づいて値群を要約統計量値として出力する機能である。集計処理後は、キー属性の値が設定した条件を満たすレコードごとに集計属性が集計(すなわち、集約)される。また、求められた値又は元の値群に対して四則演算を行い、さらに所定の条件に基づく計算結果を出力することもできる。また、関数を用いてデータの加工を行うこともできる。さらに、数値の集計以外に、条件に該当するデータを計数(カウント)したり、条件に該当するデータに印をつけることもできる。
<Tally>
The aggregation is a function of outputting a group of values as a summary statistic value based on a predetermined condition including a key attribute with one tabular data as a processing target. After the aggregation process, the aggregation attributes are aggregated (that is, aggregated) for each record in which the value of the key attribute satisfies the set condition. Further, four arithmetic operations can be performed on the obtained value or the original value group, and a calculation result based on a predetermined condition can be output. Further, data processing can be performed using a function. Further, in addition to counting the numerical values, data corresponding to the condition can be counted (counted), and data corresponding to the condition can be marked.

例えば、図40に示した縦結合処理の出力データが、集計処理の入力データであるものとする。また、図64は、集計処理の出力データの一例である。図40の「駅名」及び「日付」をキー属性として、「値」、「給与」をそれぞれ合算し、集計の対象となったレコード数(該当数)、所定の条件式を満たすか否かによるフラグ(問題)を年月ごとに集計すると、図64のようになる。   For example, it is assumed that the output data of the vertical combination processing shown in FIG. 40 is the input data of the aggregation processing. FIG. 64 is an example of output data of the tallying process. With “station name” and “date” of FIG. 40 as key attributes, “value” and “salary” are respectively added, and the number of records to be counted (the corresponding number) depends on whether or not a predetermined conditional expression is satisfied. The flags (problems) are totaled for each year and month as shown in FIG.

また、図65から図71は、集計処理の設定をするための画面の一例を示す図である。図65の集計の設定画面(集計画面)は、「属性一覧」、「新規属性」、「キー属性」、「集計属性」を設定するための領域を含む。「属性一覧」の領域には、入力データに含まれる属性の一覧が表示される。「新規属性」の領域には、入力データにない項目を設定する場合にユーザがドラッグする「新規」パネルが表示される。「キー属性」の領域は、キー属性として用いる属性を表すパネルをユーザがドラッグアンドドロップするための領域であり、設定されているキー属性が表示される。なお、キー属性に設定されたパネルは並べ替え可能としてもよい。また、キー属性の設定後はパネルが二段表示となり、上段には属性名が表示され、下段には、後述する集計キー設定画面の集計方法の内容が表示される。「集計属性」の領域は、集計の対象となる属性を表すパネルをユーザがドラッグアンドドロップするための領域であり、設定されている集計属性が表示されている。ユーザは、「集計属性」の領域に「新規」パネルをドラッグアンドドロップすることにより、集計属性に新規属性を追加することができる。新規属性とは、レコード数、算術演算の結果、条件判定の結果、所定の関数処理の結果等、新たな属性として追加したものである。なお、先(集計属性領域の上方)に設定されている新規属性を用いて、後(集計属性領域の下方)の新規属性を定義することもできる。   FIGS. 65 to 71 show examples of screens for setting the tallying process. The tabulation setting screen (tabulation screen) in FIG. 65 includes areas for setting “attribute list”, “new attribute”, “key attribute”, and “tabulation attribute”. In the “attribute list” area, a list of attributes included in the input data is displayed. In the area of “new attribute”, a “new” panel that the user drags when setting an item that is not included in the input data is displayed. The “key attribute” area is for the user to drag and drop a panel representing an attribute used as a key attribute, and the set key attribute is displayed. Note that the panels set to the key attributes may be reorderable. After the key attributes are set, the panel is displayed in two columns, the upper column displays the attribute names, and the lower column displays the contents of the tabulation method on the tabulation key setting screen described later. The “total attribute” area is an area for the user to drag and drop a panel representing an attribute to be totaled, and the set total attribute is displayed. The user can add a new attribute to the tally attribute by dragging and dropping the "new" panel into the "total attribute" area. The new attribute is added as a new attribute, such as the number of records, the result of an arithmetic operation, the result of a condition determination, the result of a predetermined function process, and the like. It should be noted that a new attribute that is set earlier (above the aggregation attribute area) can be used to define a later new attribute (below the aggregation attribute area).

図66は、キー属性を設定するための画面(集計キー設定画面)の一例である。なお、図66の画面は、ユーザが選択したキー属性について、集計方法を選択するための領域を含む。集計方法としては、「完全一致」、「ユーザ辞書」、「年別」、「月別」、「日別」、「週別・年単位」「週別・月単位」及び「曜日別」の選択肢が示されており、ユーザはいずれかをクリックすることで選択できる。なお、「年別」から「曜日別」は、値が日付の場合に有効となる。   FIG. 66 is an example of a screen for setting key attributes (total key setting screen). The screen in FIG. 66 includes an area for selecting a tallying method for the key attribute selected by the user. As the counting method, the choices of "exact match", "user dictionary", "yearly", "monthly", "daily", "weekly / yearly", "weekly / monthly", and "by day of week" Are displayed, and the user can select one by clicking any of them. Note that “by year” to “by day of the week” is valid when the value is a date.

図67は、集計属性を設定するための画面(集計属性設定画面)の一例である。図67の画面は、ユーザが選択した集計属性について、文字集計の種類又は数値集計の種類を選択するための領域を含む。文字集計の種類には、「結合」及び「頻度」がある。結合は、値をカンマ区切りで出力する機能である。頻度は、値の出現回数をカッコ内に出力する機能である。数値集計の種類には、「合計」、「平均」、「最大」、「最小」、「中央値」、「最頻値」、「分散」及び「標準偏差」がある。合計は、全ての数値を足し合わせた値を算出する機能である。平均は、合計の算術平均を算出する機能である。最大は、最大値を特定する機能である。最小は、最小値を特定する機能である。中央値は、有限個のデータを大きさの順に並べたとき中央に位置する値を特定する機能である。最頻値は、標本群で最も頻繁に出現する値を特定する。分散は、標本分散を算出する。標準偏差は、標本標準偏差を算出する。ユーザはいずれかをクリックすることにより、集計の種類を選択することができる。なお、集計属性には、「新規」パネルを登録することもできる。   FIG. 67 is an example of a screen for setting the tally attribute (tally attribute setting screen). The screen in FIG. 67 includes an area for selecting the type of character tabulation or the type of numerical tabulation for the tabulation attribute selected by the user. The types of character tabulation include “combination” and “frequency”. Joining is a function that outputs values separated by commas. Frequency is a function that outputs the number of occurrences of a value in parentheses. Types of numerical tabulation include “sum”, “average”, “maximum”, “minimum”, “median”, “mode”, “variance”, and “standard deviation”. The sum is a function for calculating a value obtained by adding all the numerical values. Average is a function that calculates the arithmetic mean of the sum. Maximum is a function that specifies the maximum value. The minimum is a function for specifying the minimum value. The median value is a function for specifying a value located at the center when a finite number of data are arranged in order of size. The mode specifies the value that appears most frequently in the sample group. The variance calculates the sample variance. The standard deviation calculates a sample standard deviation. The user can select the type of aggregation by clicking any of them. It should be noted that a “new” panel can be registered as the total attribute.

図68は、集計属性として新規属性を設定するための画面(集計追加属性画面)の一例である。すなわち、図68の画面は、図65の画面において集計属性に追加された新規属性の設定をする際に表示される。図68の画面は、新規属性の名称を入力するための領域と、新規属性の種類を選択するための領域とを含む。新規属性の名称には、ユーザが文字列を入力する。そして、入力された文字列が、出力データの属性名に設定される。新規属性の種類には、「カウント」、「計算」、「条件」及び「関数処理」の選択肢がある。カウントは、キー属性画面で指定した属性の個数を出力する機能である。すなわち、「カウント」が選択された場合、図66の「集計キー設定」画面で設定された条件を満たすレコード群に含まれるレコード数を計数し、当該新規項目の値とする。計算は、計算結果を出力する機能であり、後述する計算画面で詳細を設定する。条件は、設定された判定条件の判定結果を出力する機能であり、後述する条件画面で詳細を設定する。関数処理は、設定した関数処理の結果を出力する機能であり、後述する関数処理画面で詳細を設定する。なお、図68の設定画面において、パネルの色が設定の状態を表すようにしてもよい。例えば、水色は、未設定の状態を表す。また、紫色は、横結合キー設定画面において設定済の状態を表す。黄色は、新規属性が未設定の状態を示す。   FIG. 68 shows an example of a screen for setting a new attribute as a tally attribute (total tally attribute screen). That is, the screen in FIG. 68 is displayed when setting a new attribute added to the total attribute in the screen in FIG. The screen of FIG. 68 includes an area for inputting the name of the new attribute and an area for selecting the type of the new attribute. The user inputs a character string for the name of the new attribute. Then, the input character string is set as the attribute name of the output data. The types of the new attribute include options of “count”, “calculation”, “condition”, and “function processing”. The count is a function for outputting the number of attributes specified on the key attribute screen. That is, when “count” is selected, the number of records included in the record group that satisfies the condition set on the “total key setting” screen of FIG. 66 is counted and set as the value of the new item. The calculation is a function of outputting a calculation result, and details are set on a calculation screen described later. The condition is a function of outputting a judgment result of the set judgment condition, and details are set on a condition screen described later. The function processing is a function for outputting a result of the set function processing, and details are set on a function processing screen described later. In the setting screen of FIG. 68, the color of the panel may indicate the setting state. For example, light blue indicates an unset state. Also, purple indicates a state that has been set on the horizontal combination key setting screen. Yellow indicates that the new attribute has not been set.

図69は、「計算」の設定をするための画面(計算画面)の一例である。図69の画面は、集計属性の一覧を表示する領域と、四則演算の設定をするためのテンキー領域とを含む。ユーザはこれらを組み合わせて、当該新規属性の値を算出するための計算式を定義することができる。集計属性には、集計画面集計属性名が表示される。ここでは、設定済みの属性(紫色のパネル)が表示される。また、自パネルより前の新規属性も表示され、計算に用いることができる。演算式の値には、計算式用の数値や演算子を選択する。入力は、集計属性のパネルから選択したり、テンキー領域からドラッグアンドドロップしたりすることにより行う。また、確認用計算式には、計算式の値がテキスト表示される。なお、計算式に誤りがある場合、赤字等で強調表示するようにしてもよい。   FIG. 69 is an example of a screen (calculation screen) for setting “calculation”. The screen of FIG. 69 includes an area for displaying a list of aggregation attributes, and a numeric keypad area for setting four arithmetic operations. The user can define a calculation formula for calculating the value of the new attribute by combining them. The aggregation attribute displays the aggregation screen aggregation attribute name. Here, the set attributes (purple panel) are displayed. Also, a new attribute before the own panel is displayed and can be used for calculation. For the value of the operation expression, select a numerical value or an operator for the expression. The input is performed by selecting from the panel of the tabulation attribute or by dragging and dropping from the numeric keypad area. Further, the value of the calculation formula is displayed as text in the confirmation calculation formula. If there is an error in the calculation formula, it may be highlighted in red letters or the like.

また、図70は、「条件」の設定をするための画面(条件画面)の一例である。図70の画面は、集計属性の一覧を表示する領域と、条件式を設定するための領域と、条件に合致する場合に当該新規属性に表示する値及び条件に合致しない場合に当該新規属性に表示する値を入力する領域とを含む。ユーザは、任意の集計属性が所定の条件を満たすか否かを判定するための条件式を設定することができる。条件式は、AND(論理積)又はOR(論理和)で複数接続することもできる。集計属性には、集計画面 の集計属性名が表示される。ここでは、設定済みの属性(紫色のパネル)が表示される。また、新規属性は、自パネルより前の属性が表示される。条件式を設定するための領域には、集計時の条件式を入力する。属性には、条件のもととなる集計属性を選択する。値には、条件の値を入力する。区分には、判定条件を1つ選択する。選択肢として、「一致する」、「を含む」、「以上」、「以下」、「大なり」、「小なり」、「一致しない」、「含まない」、「正規表現」が選択できる。また、「AND」ボタンが押下されると、新たなAND条件式の行が追加される。「OR」ボタンが押下されると、新たなOR条件式の行が追加される。条件に合致の欄には、条件式に合致した値の行に出力する値を、入力又は集計属性から選択する。条件に合致しないの欄には、条件式に合致しない値の行に出力する値を入力または、集計属性から選択する。   FIG. 70 is an example of a screen (condition screen) for setting “condition”. The screen of FIG. 70 includes an area for displaying a list of total attributes, an area for setting a conditional expression, a value to be displayed for the new attribute when the condition is satisfied, and a value for the new attribute when the condition is not satisfied. And an area for inputting a value to be displayed. The user can set a conditional expression for determining whether or not an arbitrary aggregation attribute satisfies a predetermined condition. A plurality of conditional expressions can be connected by AND (logical product) or OR (logical sum). The aggregation attribute displays the aggregation attribute name on the aggregation screen. Here, the set attributes (purple panel) are displayed. As the new attribute, the attribute before the own panel is displayed. In the area for setting a conditional expression, a conditional expression for counting is input. As the attribute, a total attribute that is a condition is selected. For the value, enter the value of the condition. For the classification, one judgment condition is selected. As options, “match”, “include”, “greater than”, “less than”, “greater than”, “less than”, “does not match”, “do not include”, and “regular expression” can be selected. When the “AND” button is pressed, a new AND conditional expression row is added. When the “OR” button is pressed, a new OR conditional expression line is added. In the column of the condition matching, the value to be output to the row of the value matching the conditional expression is selected from the input or the total attribute. In the column that does not match the condition, a value to be output in a row of a value that does not match the conditional expression is input or selected from the total attribute.

図71は、「関数処理」を設定するための画面(関数処理画面)の一例である。図71の画面は、「集計属性」の一覧を表示する領域と、「対象属性」を指定するための領域と、「データ処理関数名」を選択するための領域とを含む。ユーザは、集計属性のパネルを対象属性を設定するための領域にドラッグアンドドロップすることができる。また、ユーザがデータ処理関数名を選択すると、選択されたデータ処理関数名に応じて引数を入力するための領域が表示される。集計属性には、集計画面の集計属性名が表示される。ここでは、設定済みの属性(紫色のパネル)が表示される。また、新規属性は、自パネルより前の属性が表示される。対象属性には、関数処理を行う属性を指定する。データ処理関数名には、関数の分類を選択する。図65から図71を用いて説明したような項目が、集計処理の設定情報としてデータ記憶部401に記憶される。   FIG. 71 is an example of a screen (function processing screen) for setting “function processing”. The screen in FIG. 71 includes an area for displaying a list of “total attributes”, an area for specifying “target attribute”, and an area for selecting “data processing function name”. The user can drag and drop the panel of the tally attribute to the area for setting the target attribute. When the user selects a data processing function name, an area for inputting an argument is displayed according to the selected data processing function name. The aggregation attribute displays the aggregation attribute name on the aggregation screen. Here, the set attributes (purple panel) are displayed. As the new attribute, the attribute before the own panel is displayed. For the target attribute, an attribute for performing the function processing is specified. For the data processing function name, select the classification of the function. The items described with reference to FIGS. 65 to 71 are stored in the data storage unit 401 as setting information of the tallying process.

選択肢として、次のような関数がある。「alphabetic」は、アルファベットの文字(A-Zとa-z)のみ抽出する関数である。「left」は、左端から指定された文字数分の文字を取得する関数である。「lefta」は、左端から検索文字を検索し、その文字までの文字を取得する関数である。「leftb」は、左端か検索文字を検索し、その位置までの文字を取得する関数である。「length」は、文字の長さを取得する関数である。「lower」は、英字の大文字を小文字にする関数である。「middle」は、左から指定された位置と文字数を取得する関数である。「multibytechar」は、マルチバイト文字のみ抽出する関数である。「number」は、文字列のうち1文字ずつ判定し数値のみ抽出する関数である。「repeat」は、指定された属性の値(数値)から指定された文字を繰り返して登録する関数である「replace」は、指定された文字を置換する関数である。「replacedic」は、置換辞書の内容をもとに指定された文字を置換する関数である。「right」は、右端から指定された文字を取得する関数である。「righta」は、右端から検索文字を検索し、その文字までの文字を取得する関数である。「rightb」は、右端から検索文字検索し、その位置までの文字を取得する関数である。「substitute」は、左から指定された位置と文字数を置換する関数である。「normalizeaddress」は、あいまいな住所を標準化する関数である。「normalizecompany」は、会社名を標準化する関数である。「normalizedate」は、日付をスラッシュ(/)で区切る関数である。「normalizedateISO」は、日付を正規化する関数である。「jnounphrase」は、文章から一般的な名詞のみを抽出する関数である。「normalizename」は、名前を正規化する関数である。「normalizenumber」は、漢数字(旧漢字も含みます)を含めた数字を標準化する関数である。「normalizepostcode」は、郵便番号を標準化する関数である。「municipalities」は、住所から市区町村名を取得する関数である。「postaddress」は、郵便番号から住所を取得する関数である。「prefectures」は、住所から都道府県名を取得する関数である。なお、本実施形態において、集計結果出力時の属性名は、『属性名』+『_(アンダーバー)』+『下記表の「集計結果の属性名」』とする。   The options are as follows: “Alphabetic” is a function that extracts only letters of the alphabet (A-Z and a-z). “Left” is a function for acquiring the specified number of characters from the left end. “Lefta” is a function that searches for a search character from the left end and obtains characters up to that character. “Leftb” is a function that searches the left end or the search character and obtains the character up to that position. “Length” is a function for obtaining the length of a character. "Lower" is a function that changes uppercase letters to lowercase letters. “Middle” is a function for acquiring the position and the number of characters specified from the left. “Multibytechar” is a function that extracts only multibyte characters. “Number” is a function that determines one character at a time in a character string and extracts only a numerical value. “Repeat” is a function for repeatedly registering a specified character from a specified attribute value (numerical value). “Replace” is a function for replacing a specified character. “Replacedic” is a function that replaces a specified character based on the contents of a replacement dictionary. "Right" is a function for acquiring a specified character from the right end. “Righta” is a function that searches for a search character from the right end and obtains characters up to that character. “Rightb” is a function for performing a search character search from the right end and obtaining characters up to that position. “Substitute” is a function that replaces the position specified from the left with the number of characters. "Normalizeaddress" is a function that normalizes ambiguous addresses. “Normalizecompany” is a function for standardizing a company name. "Normalizedate" is a function that separates dates with a slash (/). “NormalizedateISO” is a function for normalizing a date. "Jnounphrase" is a function that extracts only general nouns from sentences. “Normalizename” is a function that normalizes the name. "Normalizenumber" is a function for standardizing numbers including kanji (including old kanji). "Normalizepostcode" is a function for standardizing postal codes. “Municipalities” is a function for acquiring the name of a city, town, or village from an address. “Postaddress” is a function for acquiring an address from a postal code. “Prefectures” is a function for acquiring a prefecture name from an address. In this embodiment, the attribute name at the time of output of the tally result is “attribute name” + “_ (under bar)” + ““ attribute name of tally result ”in the following table”.

<グループ化>
グループ化とは、表型データを任意の形で分類し集計する機能である。具体的には、所定の列の要素に基づいてレコードを分類して集計(いわゆる「クロス集計」)する機能である。グループ化部407は、ユーザが設定したキー属性とグループ化属性に基づいて、集計を行う。キーとなる列の要素には、後述するデータクレンジング機能を用いることができる。
<Grouping>
Grouping is a function of classifying and summarizing tabular data in an arbitrary form. Specifically, it is a function of classifying and totaling records (so-called “cross tabulation”) based on elements in a predetermined column. The grouping unit 407 performs totalization based on the key attribute and the grouping attribute set by the user. A data cleansing function, which will be described later, can be used as a key column element.

図72は、グループ化処理の入力データの一例である。また、図73は、グループ化処理の出力データの一例である。図72のような表形式データのうち、「機器名」及び「シリアル番号」をキー属性に設定し、「データ取得日」をグループ属性に設定し、「出力枚数」を値に設定すると、キー属性が同一のレコードごとに、且つデータ取得日ごとにグループ化され、出力枚数の値が集計される。   FIG. 72 is an example of input data of the grouping process. FIG. 73 is an example of output data of the grouping process. In the tabular data as shown in FIG. 72, if “device name” and “serial number” are set as key attributes, “data acquisition date” is set as group attribute, and “output number” is set as a value, The attributes are grouped for each record and for each data acquisition date, and the values of the number of output sheets are totaled.

また、図74は、グループ化処理の設定をするための画面(グループ化画面)の一例である。図74は、「属性一覧」を表示するための領域と、キー属性を設定するための領域と、グループ属性を設定末ための領域と、値の設定をするための領域と、数値集計をするための領域とを含む。属性一覧には、属性名が表示される。キー属性には、グループ化する際のキー属性を指定する。なお、パネルは並べ替え可能である。また、設定後は二段表示となり、上段には属性名が表示され、下段にはグループ化キー設定画面の名寄せ判断及びデータクレンジング処理の内容が表示される。図74を用いて説明したような項目が、グループ化処理の設定情報としてデータ記憶部401に記憶される。   FIG. 74 is an example of a screen (grouping screen) for setting the grouping processing. FIG. 74 shows an area for displaying an “attribute list”, an area for setting key attributes, an area for setting group attributes, an area for setting values, and a numerical tabulation. And an area for The attribute list displays the attribute names. In the key attribute, a key attribute for grouping is specified. Note that the panels can be rearranged. After the setting, the display becomes a two-level display, the upper part displays the attribute name, and the lower part displays the contents of the grouping key setting screen name determination and data cleansing processing. The items described with reference to FIG. 74 are stored in the data storage unit 401 as setting information of the grouping process.

<グループ化解除>
グループ化解除とは、指定したキー列に従い、統合的なデータをレコードに分割する機能である。このとき、要素の名称を値として用いることができる。また、ユーザが指定したキー属性とグループ化解除属性とに従ってレコードを分割する。
<Ungroup>
Ungrouping is a function of dividing integrated data into records according to a specified key sequence. At this time, the name of the element can be used as a value. Further, the record is divided according to the key attribute and the group release attribute specified by the user.

図72に示したデータが、グループ化解除処理の入力データであるものとする。また、図75は、グループ化解除処理の出力データの一例である。図72のような表形式データのうち、「データ取得日」をキー属性に設定し、「機器名」及び「シリアル番号」をグループ化解除属性に設定すると、図75のように、グループ化解除属性の属性名を値とするレコードに分割される。   It is assumed that the data shown in FIG. 72 is input data for the grouping release processing. FIG. 75 shows an example of output data of the grouping release processing. When “data acquisition date” is set as a key attribute and “device name” and “serial number” are set as a degrouping attribute in the tabular data as shown in FIG. 72, the degrouping is performed as shown in FIG. It is divided into records whose values are attribute names of attributes.

図76は、グループ化解除処理の設定をするための画面(グループ化キー設定画面)の一例である。図76は、「属性一覧」を表示するための領域と、「キー属性」を設定するための領域と、「グループ化解除属性」を設定するための領域とを含む。属性一覧には、属性名が表示される。キー属性には、グループ化解除する際のキー属性を指定する。なお、パネルは並べ替え可能である。グループ化解除属性には、グループ化解除する際の属性を指定する。全移動が指定されると、属性一覧のパネルをグループ化解除属性に全て移動する。本実施形態において、グループ化解除結果出力時の属性名は、キー属性の属性名、「sub」、「value」とする。図76を用いて説明したような項目が、グループ化解除処理の設定情報としてデータ記憶部401に記憶される。   FIG. 76 is an example of a screen (grouping key setting screen) for setting grouping release processing. FIG. 76 includes an area for displaying an “attribute list”, an area for setting a “key attribute”, and an area for setting a “grouping release attribute”. The attribute list displays the attribute names. In the key attribute, a key attribute for canceling grouping is specified. Note that the panels can be rearranged. In the ungrouping attribute, an attribute for ungrouping is specified. If all move is specified, all the panels in the attribute list are moved to the ungrouping attribute. In the present embodiment, the attribute names at the time of outputting the grouping release result are the attribute names of the key attributes, “sub” and “value”. The items described with reference to FIG. 76 are stored in the data storage unit 401 as setting information of the grouping release processing.

<ナンバリング>
ナンバリングとは、レコードに連続番号(「連番」とも呼ぶ)を振るための属性を追加する機能である。複数のファイルを結合した場合であっても、レコードを一意に特定できる連番を追加することができる。例えば、図72の「No」のように連番を追加することができる。図77は、ナンバリングを設定するための画面の一例である。図77は、属性名を入力するための領域を含む。ユーザは、連番を振るための属性に任意の名称を付けることができる。
<Numbering>
Numbering is a function of adding an attribute for assigning a serial number (also referred to as “serial number”) to a record. Even when a plurality of files are combined, it is possible to add a serial number that uniquely identifies a record. For example, a serial number can be added as “No” in FIG. FIG. 77 is an example of a screen for setting numbering. FIG. 77 includes an area for inputting an attribute name. The user can give an arbitrary name to the attribute for assigning a serial number.

<検索>
検索とは、データフォーマットの異なる複数の表形式データや結合後の表形式データから、指定された検索条件にもとづいて、レコードを抽出する機能である。抽出されたレコードをソート(並べ替え)することも可能である。
<Search>
The search is a function of extracting a record from a plurality of tabular data having different data formats or a combined tabular data based on a specified retrieval condition. It is also possible to sort (sort) the extracted records.

図78は、検索条件を設定するための画面の一例である。図78の画面は、検索条件式を入力するための領域と、ソート条件を設定するための領域と、属性一覧を表示する領域と、検索条件式生成オプションの領域(検索キーワードの条件式への入力を支援するための領域及び検索範囲の条件式への入力を支援するための領域)とを含む。キーワード検索の条件には、論理積(AND)、論理和(OR)、否定(NOT)を使用することができる。範囲検索の条件には、所定の属性に対し、「完全一致」、「中間一致」、「前方一致」、「後方一致」、「以上」、「以下」、「大なり」、「小なり」、「一致しない」、「含まない」が選択できる。また、ソート条件として、所定の属性に対し「昇順」又は「降順」が指定できる。   FIG. 78 is an example of a screen for setting a search condition. The screen shown in FIG. 78 includes an area for inputting a search condition expression, an area for setting a sort condition, an area for displaying an attribute list, and an area for a search condition expression generation option (a search keyword expression And a region for supporting input to the conditional expression of the search range). As a condition for keyword search, logical product (AND), logical sum (OR), and negation (NOT) can be used. The conditions for the range search include “exact match”, “middle match”, “before”, “after”, “greater than”, “less than”, “greater than”, “less than” , “Does not match”, and “does not include” can be selected. As a sort condition, “ascending order” or “descending order” can be designated for a predetermined attribute.

<外部連携>
外部連携とは、表形式データ処理装置が保持している他のプログラムを起動する機能である。例えば、本実施形態に係る処理によって出力されるデータを読み込んで用いる他のプログラムに、処理を引き継ぐことができる。プログラムファイルには、外部プログラムの絶対パスを入力する。起動オプションとして、コマンドラインオプションを入力できるようにしてもよい。また、起動後の待機時間(秒)を指定できるようにしてもよい。
<External cooperation>
The external cooperation is a function of activating another program held by the tabular data processing device. For example, the processing can be taken over by another program that reads and uses data output by the processing according to the present embodiment. In the program file, enter the absolute path of the external program. A command line option may be input as a start option. Further, a standby time (second) after activation may be designated.

<ファイル操作>
また、CSVファイルの削除、出力、分割を行うこともできる。ファイル分割とは、表形式データを所定の大きさに分割する機能である。例えば、入力される表形式データを物理的に分割することにより、入力データのサイズを小さくすることができ、本実施形態に係る処理を行う際のコンピュータの負荷を低減させることができる。
<File operation>
It is also possible to delete, output, and divide a CSV file. The file division is a function of dividing tabular data into a predetermined size. For example, by physically dividing the input tabular data, the size of the input data can be reduced, and the load on the computer when performing the processing according to the present embodiment can be reduced.

<設定内容の保存・変更>
設定内容の保存及び復元とは、1以上のプロセスの実行順序及び各プロセスを実行するための設定を定義した設定内容をXMLファイルに保存する処理、並びに保存したファイルを開く処理である。本実施形態では、XMLファイルに保存される情報により、項目の構成が同一の表形式データに対して、上記のような処理を再度実行することができる。なお、XMLファイルを再実行情報とも呼ぶ。なお、保存したファイルを開き、定義されたプロセスを実行することができると共に、定義を修正することも可能である。本実施形態では、XMLファイルに保存される一連のプロセスをジョブとも呼ぶ。
<Save / change settings>
Saving and restoring the setting contents are processing for saving the setting contents defining the execution order of one or more processes and the settings for executing each process in an XML file, and processing for opening the saved file. In the present embodiment, the above-described processing can be executed again on tabular data having the same item configuration based on the information stored in the XML file. Note that the XML file is also called re-execution information. Note that the saved file can be opened, the defined process can be executed, and the definition can be modified. In the present embodiment, a series of processes stored in the XML file is also called a job.

また、復元時には、各プロセスの出力属性及び入力属性に不整合がないかチェックするようにしてもよい。例えば、CSVファイルの属性が増減していたり、属性名が変更されている場合には、不整合を検知して画面上で警告表示をするようにしてもよい。   At the time of restoration, it may be checked whether or not the output attribute and the input attribute of each process are inconsistent. For example, when the attribute of the CSV file is increased or decreased or the attribute name is changed, an inconsistency may be detected and a warning display may be displayed on the screen.

<XMLファイルの内容>
図79にXMLファイルの内容の一例を示す。<Set>タグは、データセット項目であり、タグ内には入力CSVファイルについて記述する。<Process>タグは、プロセスセット項目であり、タグ内には実行する処理について記述する。具体的には検索、縦結合、横結合、集計を設定する。その他、データ宣言部を含んでいてもよい。以下、図79において使用されていないタグも含め、XMLファイルで用いられる要素名及び属性名並びにその内容の一例を説明する。
<Contents of XML file>
FIG. 79 shows an example of the content of the XML file. The <Set> tag is a data set item, and describes the input CSV file in the tag. The <Process> tag is a process set item, and describes the process to be executed in the tag. Specifically, search, vertical connection, horizontal connection, and totaling are set. In addition, a data declaration section may be included. Hereinafter, an example of element names and attribute names used in the XML file and their contents, including tags not used in FIG. 79, will be described.

<Search>タグは、検索項目であり、タグ内にはファイル内検索の条件を記述する。<OneColumnJoin>タグは、縦結合項目であり、タグ内には縦結合に関する設定を記述する。<FullColumnJoin>タグは、横結合項目であり、タグ内には横結合に関する設定を記述する。<Summarization>タグは、集計項目であり、タグ内には集計に関する設定を記述する。<Runtime>タグは、外部連携項目であり、タグ内には外部プログラムの起動について記述する。<Numbering>タグは、ナンバリング項目であり、タグ内にはナンバリングに関する設定を記述する。<Group>タグは、グループ化項目であり、タグ内にはグループ化に関する設定を記述する。<Ungroup>タグは、グループ化解除項目であり、タグ内にはグループ化解除に関する設定を記述する。<Out>タグは、データアウト項目であり、タグ内には出力CSVファイルについて記述する。<Comment>タグは、コメント項目であり、タグ内には、コメント(文字列)を記載する。   The <Search> tag is a search item, and describes a condition for searching in a file in the tag. The <OneColumnJoin> tag is a vertical join item, and describes the settings related to vertical join in the tag. The <FullColumnJoin> tag is a horizontal join item, and describes the settings related to horizontal join in the tag. The <Summarization> tag is a tabulation item, and describes settings related to tabulation in the tag. The <Runtime> tag is an external linkage item, and describes the activation of the external program in the tag. The <Numbering> tag is a numbering item, and describes settings related to numbering in the tag. The <Group> tag is a grouping item, and describes settings related to grouping in the tag. The <Ungroup> tag is an ungrouping item, and describes settings related to ungrouping in the tag. The <Out> tag is a data out item, and describes the output CSV file in the tag. The <Comment> tag is a comment item, and a comment (character string) is described in the tag.

Searchタグには、XML要素(エレメント)として、検索条件を示す論理式(Fml)が記述される。ソートする場合には、ソート(Sort)要素に昇順(asc)又は降順(desc)が記述される。   In the Search tag, a logical expression (Fml) indicating a search condition is described as an XML element (element). In the case of sorting, ascending order (asc) or descending order (desc) is described in the sort (Sort) element.

OneColumnJoinタグには、縦結合の設定を表す要素が記述される。ターゲット(Target)は、データセットで指定したファイル内容である。フィールド(Field)は、出力する属性の数だけ記述される。フィールド要素(Cell)には属性名が記述され、さらにファイル名(filename)属性(アトリビュート)に、フルパスのファイル名が記述される。結合(Unite)は、属性の連結が連結する属性の数だけ記述される。結合するセル要素(UCell)には、連結する属性名が記述され、さらにファイル名(filename)属性に、フルパスのファイル名が記述される。新しいフィールド(New)は、出力する属性内容が記述される。フィールド(Field)は、ターゲット(Target)の数だけ記述される。フィールド要素(Cell)には、データアウトの属性名が記述される。   In the OneColumnJoin tag, an element indicating the setting of vertical combination is described. The target (Target) is the file content specified in the data set. Field (Field) is described by the number of attributes to be output. The attribute name is described in the field element (Cell), and the file name of the full path is described in the file name (filename) attribute (attribute). The connection (Unite) is described by the number of attributes to which the attribute connection is connected. In the cell element (UCell) to be combined, the attribute name to be combined is described, and in the file name (filename) attribute, the full path file name is described. A new field (New) describes the attribute content to be output. Fields are described by the number of targets. The attribute name of the data out is described in the field element (Cell).

次に、横結合に関連するタグについて説明する。横結合(FullColumnJoin)は、横結合を示すタグである。キー(Key)には、キー属性が記述され、さらに名寄せ判断(match)属性には、完全一致、前方一致、後方一致、中間一致のいずれかを示す識別情報が記述される。また、クレンジング(cleansing)属性には、使用しない、電話番号、郵便番号、日付、法人名、数値、日本語解析、英字解析、氏名、住所、ユーザ辞書のいずれかが記述される。結合(Add)要素には、重複する値の処理(jointype)属性として、重複除外(一行)、重複(一行)、頻度ソート、自動補完のいずれかを示す識別情報、及び値の間の接続因子(delimiter)属性として、改行、スラッシュ、カンマ、スペースのいずれかを示す識別情報が記述される。   Next, tags related to the horizontal connection will be described. Horizontal join (FullColumnJoin) is a tag indicating horizontal join. In the key (Key), a key attribute is described, and in the name identification (match) attribute, identification information indicating any of a perfect match, a forward match, a backward match, and an intermediate match is described. In the cleansing attribute, any of unused telephone numbers, postal codes, dates, corporation names, numerical values, Japanese analysis, English character analysis, names, addresses, and user dictionaries is described. In the join (Add) element, identification information indicating one of deduplication (one line), duplication (one line), frequency sorting, and auto-completion, and a connection factor between the values as a duplicate value processing (jointype) attribute As the (delimiter) attribute, identification information indicating any of a line feed, a slash, a comma, and a space is described.

次に、集計する際の各要素について説明する。Summarizationは集計を示すタグである。また、Keyは、キー要素を示し、キーの数だけ記述され、さらにaggregate属性には、名寄せ判断を示し、完全一致、年別、月別、日別、週別(年単位)、週別(月単位)、曜日別、ユーザ辞書のいずれかを示す識別情報が記述される。Statistic要素は属性集計を示し、出力する属性の数だけ記述される。さらに、flag属性はフラグであり、0-99までの数値で重複しない値が入力される。また、collect属性は集計内容を示し、結合、頻度、合計、平均、中央値、最頻値、最大値、最小値、分散、標準偏差のいずれかを示す識別情報が設定される。また、StatisticNew要素は新規属性集計を示す。また、出力する属性の数だけ属性名が記述され、collect属性は、集計内容であり、カウント、計算、条件、分岐(未使用)、ナンバリング(廃止)、関数処理のいずれかを示す識別情報が設定される。また、fml属性は集計式を示す。集計式の中の括弧において、角括弧内の数字は、フラグで設定した番号、波括弧内の数字は、新規属性集計の0から始まる登録順番を表す。集計式の記述は、集計内容が「計算」の場合、四則演算の式を記述する。集計内容が「条件」の場合、条件式を記述する。集計内容が「関数処理」の場合、関数を記述する。   Next, each element at the time of counting will be described. Summarization is a tag indicating aggregation. In addition, Key indicates a key element and is described by the number of keys. In addition, the aggregate attribute indicates a name identification judgment, exact match, year, month, day, week (year unit), week (month) The identification information indicates any one of (unit), day of the week, and user dictionary. The Statistic element indicates attribute aggregation, and is described as many as the number of attributes to be output. Further, the flag attribute is a flag, and a non-overlapping value with a numerical value from 0 to 99 is input. In addition, the collect attribute indicates the content of the aggregation, and identification information indicating any of the combination, frequency, total, average, median, mode, maximum, minimum, variance, and standard deviation is set. In addition, a StatisticNew element indicates a new attribute aggregation. The attribute names are described as many as the number of attributes to be output. The collect attribute is the content of the aggregation, and identification information indicating any of count, calculation, condition, branch (unused), numbering (discontinued), and function processing is displayed. Is set. The fml attribute indicates a tally expression. In the parentheses in the tally expression, the numbers in square brackets indicate the numbers set by the flags, and the numbers in curly braces indicate the registration order of the new attribute tally starting from 0. In the description of the tally expression, when the tally content is “calculation”, the expression of the four arithmetic operations is described. If the total is "condition", describe the conditional expression. If the total is "function processing", describe the function.

Runtimeは、外部連携を示すタグである。File要素には、外部プログラムの絶対パスを記述する。さらに、option属性には、コマンドラインオプションを記述する。Wait属性には、外部プログラム起動後の待ち時間をミリ秒単位で記述する。外部プログラムが終了するまで待機する設定値を設けてもよい。   Runtime is a tag indicating external cooperation. The absolute path of the external program is described in the File element. Further, a command line option is described in the option attribute. In the Wait attribute, the waiting time after starting the external program is described in milliseconds. A set value for waiting until the external program ends may be provided.

Numberingは、ナンバリングを示すタグである。XML要素のうち、Fieldにはフィールド、Cellにはフィールド要素(属性名)を記述する。   Numbering is a tag indicating numbering. In the XML element, Field describes a field, and Cell describes a field element (attribute name).

Groupは、グループ化を示すタグである。Key要素は、キーを示す。さらに、match属性には、名寄せ判断として、完全一致、前方一致、後方一致、中間一致のいずれかを示す識別情報が記述される。また、cleansing属性には、クレンジングの種類として、使用しない、電話番号、郵便番号、日付、法人名、数値、日本語解析、英字解析、氏名、住所、ユーザ辞書のいずれかを示す識別情報が記述される。GroupLabel要素には、グループ化属性を示す属性名を記述される。GroupData要素には、グループ化値を示す属性名を記述される。StatisticNew要素には、グループ化集計を示す属性名をグループ化値の数だけ記述される。さらに、collect属性には、グループ化内容として、結合、頻度、合計、平均、中央値、最頻値、最大値、最小値、分散、標準偏差の何れかを示す識別情報を記述する。   Group is a tag indicating grouping. The Key element indicates a key. Further, in the match attribute, identification information indicating any of a perfect match, a forward match, a backward match, and an intermediate match is described as the name identification determination. In the cleansing attribute, identification information indicating any of the following types of cleansing: unused, phone number, postal code, date, corporate name, numerical value, Japanese analysis, alphabet analysis, name, address, user dictionary Is done. In the GroupLabel element, an attribute name indicating a grouping attribute is described. An attribute name indicating a grouping value is described in the GroupData element. In the StatisticNew element, attribute names indicating the grouping total are described by the number of grouping values. Further, in the collect attribute, identification information indicating any of the combination, frequency, sum, average, median, mode, maximum, minimum, variance, and standard deviation is described as the grouping content.

Ungroupは、グループ化解除を示すタグである。Key要素には、キー属性を記述する。Field要素には、属性の数だけ記述される。Unite要素は結合を示し、セル要素が1つの場合は記述されない。UCell要素には、結合するセル要素であるグループ化解除属性名を記述する。   Ungroup is a tag indicating ungrouping. Key attribute describes the key attribute. The number of attributes is described in the Field element. The Unite element indicates connection, and is not described when there is one cell element. In the UCell element, a grouping release attribute name, which is a cell element to be combined, is described.

Outは、データアウトを示すタグである。Saveには、出力するファイルパスを記述する。codeには、文字コードを記述する。Deleteはファイル削除を示し、削除するフォルダ又はファイルパスを記述する。   Out is a tag indicating data out. In Save, describe the file path to be output. In code, describe the character code. Delete indicates file deletion, and describes a folder or file path to be deleted.

Commentは、それぞれのエレメントにコメントを例えば文章として記述するタグである。それぞれの前述のタグ内に処理内容及び担当者、日時などを記述しても良い。   Comment is a tag that describes a comment in each element as a sentence, for example. The processing content, the person in charge, the date and time, etc. may be described in each of the above-mentioned tags.

本実施形態における処理を再実行するための情報は、様々な形式で記憶させておくことが可能である。XMLファイルは、インターネットブラウザやテキストエディタ等で表示することができ、ユーザにとって確認しやすいものとなる。なお、本実施形態に係るタグの規格は一例であり、設定項目を保持することができる範囲で様々な変更を加えることができる。また、機能の追加に応じてタグの種類を増やしてもよい。   Information for re-executing the processing in the present embodiment can be stored in various formats. The XML file can be displayed by an Internet browser, a text editor, or the like, so that the user can easily check the XML file. Note that the tag standard according to the present embodiment is an example, and various changes can be made as long as the setting items can be held. Further, the types of tags may be increased according to the addition of the function.

<バッチ処理>
図80に示すように、バッチ処理は、1以上のジョブを設定されたスケジュールで実行する処理である。図80の例は、3つのXMLファイルで定義された3つのジョブが連続して動作するバッチ処理を模式的に表している。なお、2以上のジョブによって出力される2以上のCSVファイルを、後続の1つのジョブの入力ファイルとしてもよい。
<Batch processing>
As shown in FIG. 80, the batch process is a process for executing one or more jobs according to a set schedule. The example of FIG. 80 schematically illustrates a batch process in which three jobs defined by three XML files operate continuously. Note that two or more CSV files output by two or more jobs may be used as input files for one subsequent job.

図81にバッチ処理の設定画面の一例を示す。バッチ処理では、作成したジョブ(XMLファイル)を、設定したスケジュール(曜日・時刻・期間)で起動する。図81の画面は、バッチ処理フィールド、バッチ実行フィールド(スケジュールとオプション)から構成される。また、バッチ処理の設定を記憶させておき、本実施形態に係るプログラムの起動時に、設定されている内容を読み出す。また、複数のジョブを指定した場合、番号(No.)順に実行する。バッチ実行フィールドで指定する日時等は、表形式データ処理装置が備える時計機能を利用して判断される。開始時間には、バッチ実行開始時間を入力する。「バッチ開始」ボタンを押下すると、設定内容に従いバッチを実行する。また、「停止」ボタンを押下すると、実行中のバッチを停止する。スケジュールには、バッチを実行する曜日(日〜土)を指定する。開始日には、バッチ実行開始日を入力する。終了日には、バッチ実行終了日を入力する。メール送信をONにすると、実行結果がエラーの場合に設定した宛先にメールで通知することができる。繰返しをONにすると、繰返し実行とする。図81を用いて説明した項目が、バッチ処理の設定情報としてデータ記憶部401に記憶される。   FIG. 81 shows an example of a setting screen for batch processing. In the batch processing, the created job (XML file) is started according to a set schedule (day of week, time, period). The screen in FIG. 81 includes a batch processing field and a batch execution field (schedule and option). Further, the settings of the batch processing are stored, and when the program according to the present embodiment is started, the set contents are read. When a plurality of jobs are specified, the jobs are executed in the order of the numbers (No.). The date and time specified in the batch execution field is determined using a clock function provided in the tabular data processing device. For the start time, enter the batch execution start time. When the "Batch start" button is pressed, the batch is executed according to the settings. When the “stop” button is pressed, the batch being executed is stopped. In the schedule, the day of the week (Sun-Sat) for executing the batch is specified. For the start date, enter the batch execution start date. For the end date, enter the batch execution end date. When the mail transmission is turned on, the set destination can be notified by e-mail when the execution result is an error. When the repetition is turned ON, the repetition is executed. The items described with reference to FIG. 81 are stored in the data storage unit 401 as setting information of the batch processing.

<新規ジョブ実行処理>
図82は、新規ジョブ実行処理の一例を示す処理フロー図である。また、図83は、1つのジョブに含まれるプロセス(処理)の流れを、矢印で接続されたアイコンでグラフィカルに表示するプロセスフィールド画面である。例えば、表形式データ処理装置4は、図83のような画面を介して、ユーザからジョブの設定及び実行の要求を受ける。図83の画面は、メニューバーと、ジョブ作成用のボタンと、ジョブに含まれるプロセスを表示するプロセスフィールドとを含む。図83の例では、4つのファイルが縦結合されて1つの表に統合され、さらに横結合及びCSVファイル出力を実行する一連のプロセスがプロセスフィールドに表示されている。なお、プロセスフィールドに表示される各プロセスやCSVファイル操作のアイコンを、「エレメント」とも呼ぶ。
<New job execution process>
FIG. 82 is a process flowchart illustrating an example of the new job execution process. FIG. 83 is a process field screen that graphically displays the flow of a process (processing) included in one job with icons connected by arrows. For example, the tabular data processing device 4 receives a job setting and execution request from a user via a screen as shown in FIG. The screen in FIG. 83 includes a menu bar, a button for creating a job, and a process field for displaying a process included in the job. In the example of FIG. 83, the four files are vertically combined and integrated into one table, and a series of processes for performing the horizontal combination and outputting the CSV file are displayed in the process field. The icon of each process or CSV file operation displayed in the process field is also called an “element”.

図83の画面において、例えば、「ファイル」メニューから、XML形式で保存したファイルを開き、プロセスフィールドに復元することができる。また、メニューから時間起動の設定を行うバッチ処理画面を開くこともできる。さらに、メニューからキャッシュをクリアできるようにしてもよい。   On the screen in FIG. 83, for example, a file saved in the XML format can be opened from the “File” menu and restored to the process field. Also, a batch processing screen for setting time activation can be opened from the menu. Further, the cache may be cleared from the menu.

また、図83の画面は、各処理の設定を行うためのボタンを有している。各ボタンは、画面上の左から順に、入力ファイルをプロセスフィールドに追加し、ファイル設定画面を表示する「ファイル設定」ボタン、縦結合のエレメントをプロセスフィールドに追加し、設定画面を表示する「縦結合」ボタン、横結合のエレメントをプロセスフィールドに追加し、設定画面を表示する「横結合」ボタン、集計のエレメントをプロセスフィールドに追加し、設定画面を表示する「集計」ボタン、グループ化のエレメントをプロセスフィールドに追加し、設定画面を表示する「グループ化」ボタン、グループ化解除のエレメントをプロセスフィールドに追加し、設定画面を表示する「グループ化解除」ボタン、ナンバリングのエレメントをプロセスフィールドに追加し、設定画面を表示する「ナンバリング」ボタン、検索のエレメントをプロセスフィールドに追加し、設定画面を表示する「検索」ボタン、外部連携のエレメントをプロセスフィールドに追加し、設定画面を表示する「外部連携」ボタン、プロセス実行時に、指定したCSVファイルを削除するエレメントをプロセスフィールドに追加し、設定画面を表示する「CSVファイル削除」ボタン、指定したCSVファイルを出力するエレメントをプロセスフィールドに追加し、設定画面を表示する「CSVファイル出力」ボタン、指定したCSVファイルを分割するエレメントをプロセスフィールドに追加し、設定画面を表示する「CSVファイル分割」ボタン、作成したプロセスを実行する「実行」ボタン、復元するXMLファイル選択画面を表示する「プロセス復元」ボタン、XMLファイル保存画面を表示する「プロセス保存」ボタン、操作結果イメージを別画面で表示する「イメージデータビューア」ボタン、プロセスフィールドの内容をリセットする「プロセスリセット」ボタンである。ユーザはこれらのボタンを押下することで、ジョブ(プロセスフィールド)にプロセスを追加したり、プロセスを実行したりすることができる。また、プロセスフィールド上でエレメントを右クリックすると、当該エレメントの処理設定をするための「編集」メニュー、当該エレメントをプロセスフィールドから削除するための「削除」メニュー等(コンテキストメニュー)が表示される。ここで、「編集」を選択した場合も、上で説明した各処理の設定画面が表示されるものとする。さらにエレメントはドラッグアンドドロップにより順序を変更することができる。また、エレメント間の入出力ファイルが整合しない場合は、エレメントの順序を変更できないようにするか、自動的にエレメント内部のデータの整合を取るような処理にしてもよい。   Also, the screen in FIG. 83 has buttons for setting each process. Each button adds an input file to the process field in order from the left on the screen, a “File setting” button to display the file setting screen, and a “Vertical” button to add a vertical combination element to the process field and display the setting screen. Add "join" button, horizontal join element to the process field, display the setting screen "horizontal join" button, add summary element to the process field, "set" button to display the setting screen, grouping element Is added to the process field, the "Grouping" button to display the setting screen, the element of ungrouping is added to the process field, and the "Ungrouping" button to display the setting screen, the numbering element is added to the process field Click the “Numbering” button to display the setting screen, Add a comment to the process field, add a "Search" button to display the setting screen, add an external linkage element to the process field, add an "External linkage" button to display the setting screen, and delete the specified CSV file when executing the process Element to add to the process field and display the setting screen "CSV file delete" button, add the element to output the specified CSV file to the process field and display the setting screen "CSV file output" button, the specified "CSV file split" button to add an element to split CSV file to process field and display setting screen, "Execute" button to execute created process, and "Process restore" button to display XML file selection screen to restore , XML file saving image To display the "process save" button, a "process Reset" button to reset "Image Data Viewer" button to display the result of the operation image in a different screen, the contents of the process field. By pressing these buttons, the user can add a process to the job (process field) or execute the process. When an element is right-clicked on the process field, an "edit" menu for setting processing of the element, a "delete" menu for deleting the element from the process field, and the like (context menu) are displayed. Here, it is assumed that the setting screen for each process described above is also displayed when “edit” is selected. Further, the order of the elements can be changed by drag and drop. If the input / output files between the elements do not match, the processing may be such that the order of the elements cannot be changed or the data inside the elements is automatically matched.

また、図83のプロセスフィールド画面において、各エレメントが実行する処理の内容を表示するようにしてもよい。例えば、各エレメントの周囲に表示を追加してもよいし、各エレメントにカーソルを合わせると表示が現れるようにしてもよい。表示の内容は、例えばXMLに設定されるような内容の少なくとも一部を含むようにしてもよい。また、処理エレメント前後の表型データを表示してもよい。例えば、縦結合処理のエレメントであれば、属性の対応付けの少なくとも一部が表示される。また、横結合処理のエレメントであれば、キー属性、名寄せ判断及び重複する値の処理の少なくとも一部が表示される。また、集計処理のエレメントであれば、キー属性及び集計属性の少なくとも一部が表示される。さらに、ユーザが内容を修正及び保存できるようにしてもよい。また、その処理エレメントにコメントとして文章及び修正できるようにしてもよい。また、中間的に生成される表形式データの内容を表示できる機能(イメージデータビューアとも呼ぶ)を設けてもよい。ユーザは、各プロセスで生成される出力データを検証しつつ、ジョブの設定を行うことができる。図84に、処理の内容及びイメージデータビューアを表示する画面の一例を示す。図84の例では、各エレメントに吹き出しのアイコンが設けられており、ユーザがクリックしたりカーソルを重ねることで、予め記憶させられているコメントが表示されるものとする。また、吹き出しのアイコンをクリック等することによって、右下に示すような「コメント編集」ウィンドウを表示させ、ユーザがコメントを入力又は修正できるようにしてもよい。図84の上には、「イメージデータビューア」ウィンドウが表示されている。ここには、例えば、編集中のジョブが最終的に出力する表形式データの内容が表示される。なお、ジョブに含まれるエレメントの各々について、入力ファイル又は出力ファイルの項目の構成又は表形式データの内容を表示できるようにしてもよい(図示せず)。   In addition, on the process field screen of FIG. 83, the content of the processing executed by each element may be displayed. For example, a display may be added around each element, or a display may appear when the cursor is moved to each element. The content of the display may include at least a part of the content set in XML, for example. Further, tabular data before and after the processing element may be displayed. For example, in the case of an element of the vertical combination processing, at least a part of the association of attributes is displayed. In the case of an element of the horizontal combination processing, at least a part of the key attribute, the name identification determination, and the processing of the duplicate value is displayed. If the element is a tallying process, at least a part of the key attribute and the tallying attribute is displayed. Further, the user may be able to modify and save the content. In addition, the processing element may be configured to be able to be written and modified as a comment. Further, a function (also called an image data viewer) that can display the contents of the tabular data generated in the middle may be provided. The user can set the job while verifying the output data generated in each process. FIG. 84 shows an example of a screen that displays the processing contents and the image data viewer. In the example of FIG. 84, a balloon icon is provided for each element, and a comment stored in advance is displayed when the user clicks or moves the cursor. Further, by clicking a balloon icon or the like, a “comment edit” window as shown in the lower right may be displayed so that the user can input or correct a comment. An “image data viewer” window is displayed above FIG. Here, for example, the contents of the tabular data finally output by the job being edited are displayed. Note that, for each of the elements included in the job, the configuration of the items of the input file or the output file or the content of the tabular data may be displayed (not shown).

このようにすれば、ユーザは「横結合」や「集計」といった処理の具体的な内容を理解することができる。本実施形態に係るジョブは設定の変更が容易であるところ、このような表示があれば、ユーザは最新の仕様を容易に理解することができる。したがって、例えば業務の担当者であるユーザが交代するような場合も、引継ぎがスムーズになる。さらに、ジョブの簡易的な仕様書又は設計書として、プロセスフィールドに含まれる各エレメントの内容及び入出力データのCSVファイルの属性名等を印刷等できるようにしてもよい。   In this way, the user can understand the specific contents of the processing such as “horizontal combination” and “totaling”. In the job according to the present embodiment, the setting can be easily changed, but with such a display, the user can easily understand the latest specification. Therefore, for example, even when a user who is in charge of the work is changed, the handover is smooth. Further, the content of each element included in the process field, the attribute name of the CSV file of the input / output data, and the like may be printed as a simple specification or design document of the job.

表形式データ処理装置4の入出力部402は、表形式データの読み出しを行う(図82:S201)。本ステップでは、入出力部402は、新規ジョブの処理対象として1以上の表形式データをデータ記憶部401から読み出す。表形式データ処理装置4の表示装置には、例えば、図85に示すようなウィンドウが表示される。図85の例では、表形式データ「社員交通費清算.csv」及び「営業経費.csv」が読み出され、下段のプロセスフィールドには2つのCSVファイルのエレメントが表示されている。また、CSVファイルの内容が、上段のイメージデータビューアに表示されている。   The input / output unit 402 of the tabular data processing device 4 reads tabular data (FIG. 82: S201). In this step, the input / output unit 402 reads one or more tabular data from the data storage unit 401 as a processing target of the new job. On the display device of the tabular data processing device 4, for example, a window as shown in FIG. 85 is displayed. In the example of FIG. 85, tabular data “employee transportation expenses settlement.csv” and “operating expenses.csv” are read out, and two CSV file elements are displayed in the lower process field. The contents of the CSV file are displayed in the upper image data viewer.

また、制御部403は、ユーザの操作を受けて縦結合の設定をデータ記憶部401に記憶させ、縦結合部404は、縦結合の処理を行う(S202)。結合結果は1つの表形式データで表すことができる。ここでは、一時的にメモリに保持される。また、縦結合処理はジョブの設定が完了してからジョブ全体の実行中に行われるようにしてもよい。ここでは、例えば、図86に示すようなウィンドウが表示される。図86の例では、プロセスフィールドに縦結合のエレメントが追加されている。また、イメージデータビューアには、縦結合の結果として生成される表形式データが表示されている。   In addition, the control unit 403 stores the setting of the vertical combination in the data storage unit 401 in response to the operation of the user, and the vertical combination unit 404 performs the processing of the vertical combination (S202). The joining result can be represented by one tabular data. Here, it is temporarily stored in the memory. Further, the vertical combining process may be performed during execution of the entire job after the setting of the job is completed. Here, for example, a window as shown in FIG. 86 is displayed. In the example of FIG. 86, a vertically coupled element is added to the process field. In addition, the image data viewer displays tabular data generated as a result of the vertical combination.

次に、制御部403は、ジョブの設定が完了したか判断する(S203)。なお、ユーザの操作を介して、設定の保存やジョブの実行、設定操作の終了が指示された場合、ジョブの設定が完了したと判断する。ジョブの設定が完了していないと判断された場合(S203:NO)、制御部403は、ユーザの操作を受けてその他のプロセスをジョブの後尾に追加する(S204)。ここでは、横結合、集計等、任意のプロセスが追加される。また、各プロセスは、前段階のプロセスの出力データを入力データとしてそれぞれの処理を行う。図87に、横結合及びCSVファイル出力のエレメントが追加された例を示す。図87のイメージデータビューアには、出力されるCSVファイルの内容が表示されている。   Next, the control unit 403 determines whether the setting of the job is completed (S203). If an instruction to save a setting, execute a job, or end a setting operation is issued through a user operation, it is determined that the job setting has been completed. When it is determined that the job setting is not completed (S203: NO), the control unit 403 adds another process to the end of the job in response to a user operation (S204). Here, an arbitrary process such as a horizontal join and a tally is added. In addition, each process performs each process using output data of the previous process as input data. FIG. 87 shows an example in which elements for horizontal connection and CSV file output are added. The content of the output CSV file is displayed in the image data viewer of FIG.

一方、S203においてジョブの設定が完了したと判断された場合、制御部403は、ジョブに含まれるプロセスを再実行するための設定を定義したスクリプト(XMLファイル)を生成し、データ記憶部401に記憶させる(S205)。なお、ジョブの設定が完了した場合にはじめてジョブ全体を実行するようにしてもよいし、ジョブに含まれる任意のプロセスまでの処理を自由に実行できるようにしてもよい。   On the other hand, if it is determined in S203 that the setting of the job has been completed, the control unit 403 generates a script (XML file) defining settings for re-executing a process included in the job, and stores the script in the data storage unit 401. It is stored (S205). Note that the entire job may be executed only when the setting of the job is completed, or the process up to an arbitrary process included in the job may be freely executed.

このようにすれば、ユーザは、表形式データに対して所望の処理を行い、設定した形式に変換して出力することができるようになる。また、実行した処理を再現するためのスクリプトを保存できるため、例えば前回の処理後に発生した業務データに対して、前回と同様の処理を適用することができるようになる。表計算ソフトが備えるマクロ命令等よりも複雑な処理を容易に定義することができ、また、専用のシステムを開発するよりも処理の作成及び改修が容易になる。したがって、例えば、ユーザが試行錯誤しつつ統計的な分析を行いたい場合や、データ処理のコストを抑えたい場合に有用であるといえる。   In this way, the user can perform desired processing on the tabular data, convert the tabulated data into the set format, and output the data. Further, since a script for reproducing the executed processing can be stored, the same processing as the previous processing can be applied to, for example, business data generated after the previous processing. Complicated processing can be defined more easily than macro instructions and the like included in spreadsheet software, and processing can be created and modified more easily than developing a dedicated system. Therefore, for example, it is useful when the user wants to perform a statistical analysis while performing trial and error or wants to reduce the cost of data processing.

<バッチ定義処理>
また、1つ以上のジョブの実行予定を定義しておき、より複雑な処理を自動化することもできる。図88は、いわゆるバッチ処理の設定を定義するバッチ定義処理の一例を示す処理フロー図である。例えば、表形式データ処理装置4は、図81に示したような画面を介してユーザからバッチ定義の要求を受ける。
<Batch definition processing>
Further, it is also possible to define an execution schedule of one or more jobs and automate more complicated processing. FIG. 88 is a process flowchart showing an example of a batch definition process for defining settings for a so-called batch process. For example, the tabular data processing device 4 receives a batch definition request from a user via a screen as shown in FIG.

まず、表形式データ処理装置4の制御部403は、ユーザの操作に応じて、ジョブ(XMLファイル)の追加を行う(図88:S211)。ここでは、連続して実行する1以上のジョブが実行する順序で登録される。   First, the control unit 403 of the tabular data processing device 4 adds a job (XML file) according to a user operation (FIG. 88: S211). Here, one or more jobs to be continuously executed are registered in the order of execution.

次に、制御部403は、ユーザの操作に応じて、バッチ処理を起動させるスケジュールを登録する(S212)。「バッチ処理」の内容についてすでに説明したように、曜日、時刻、期間等の条件や、エラーをメールで通知するための設定等が入力され、データ記憶部401に格納されるものとする。以上で、バッチ定義処理を終了する。   Next, the control unit 403 registers a schedule for activating the batch processing according to the user's operation (S212). As described above for the content of the “batch process”, it is assumed that conditions such as a day of the week, a time, a period, settings for notifying an error by e-mail, and the like are input and stored in the data storage unit 401. Thus, the batch definition processing ends.

バッチ処理は、設定された日時になると、バッチ処理部410によって実行される。バッチ処理を行うために、表形式データ処理装置4及び本実施に係るプログラムは予め起動させておくものとする。以上のようなバッチ処理によれば、個々のジョブよりも複雑な処理を実行することができる。また、例えば夜間等にユーザの操作を受けることなく処理を起動するようスケジュールしておくことができるようになる。   The batch processing is executed by the batch processing unit 410 at the set date and time. In order to perform batch processing, the tabular data processing device 4 and the program according to the present embodiment are activated in advance. According to the above-described batch processing, it is possible to execute processing more complicated than individual jobs. In addition, it is possible to schedule processing to be activated without receiving a user operation, for example, at night.

<変形例>
本実施形態で説明した処理は、いわゆるクライアント−サーバ型のシステムによって提供されるようにしてもよい。すなわち、表形式データ処理装置4は、ネットワークを介して接続されたユーザ端末から要求を受け、本実施形態で説明した処理を実行して結果をユーザ端末へ返すようにしてもよい。ネットワークは、例えばインターネットやイントラネット等のようなコンピュータネットワークである。なお、表形式データ処理装置4とユーザ端末とを、専用線で接続してもよい。また、1つの表形式データ処理装置に複数のユーザ端末が接続されていてもよいし、複数の表形式データ処理装置4がネットワーク上に存在し、1又は複数のユーザ端末からの要求を分散して処理する構成としてもよい。
<Modification>
The processing described in the present embodiment may be provided by a so-called client-server type system. That is, the tabular data processing device 4 may receive a request from a user terminal connected via a network, execute the processing described in the present embodiment, and return a result to the user terminal. The network is, for example, a computer network such as the Internet or an intranet. Note that the tabular data processing device 4 and the user terminal may be connected by a dedicated line. In addition, a plurality of user terminals may be connected to one tabular data processing device, or a plurality of tabular data processing devices 4 may be present on a network to distribute requests from one or a plurality of user terminals. May be configured to perform the processing.

また、例えばサーバ上で動作するいわゆるSaaS(Software as a Service)のようなサービスの機能の1つとして提供されるようにしてもよい。本実施形態では、CSVファイル等の表形式データを処理対象としている。したがって、外部のRDBMS(Relational DataBase Management System:リレーショナルデータベース管理システム)が管理するデータベースから、例えばCSV形式でレコードをエクスポートすれば、本実施形態で説明した処理を実行できるようになる。また、本実施形態に係る処理によって出力された表形式データを所定の形式に変換し、外部装置のデータベース等に反映させられるようにしてもよい。   For example, it may be provided as one of the functions of a service such as so-called SaaS (Software as a Service) operating on a server. In this embodiment, tabular data such as a CSV file is processed. Therefore, if records are exported from a database managed by an external RDBMS (Relational Database Management System), for example, in CSV format, the processing described in the present embodiment can be executed. Further, the tabular data output by the processing according to the present embodiment may be converted into a predetermined format and reflected in a database or the like of an external device.

また、本実施形態で示した処理フローは例示であり、処理結果が変わらない限りにおいて処理の順序を変更したり、並列に処理を行うようにしてもよい。画面の例についても、配置、デザイン等を適宜変更できる。   Further, the processing flow described in the present embodiment is an example, and the processing order may be changed or the processing may be performed in parallel as long as the processing result does not change. With respect to the example of the screen, the arrangement, design, and the like can be appropriately changed.

<<縦結合及び横結合の連続処理に係る変形例>>
上述した縦結合及び横結合は、一連の処理として実行することもできる。例えば、縦結合の設定及び横結合の設定を予め記憶部に保持させておく。縦結合の設定は、入力データである複数の表形式データがそれぞれ有する項目間の対応付けを表すデータを含む。横結合の設定は、集約方法を規定するキー項目及び集計項目の指定等を含む。そして、表形式データの和集合の生成(縦結合)と、キー項目が所定の条件を満たすレコードの集約(横結合)とを連続して実行する。また、図7Aや図41を用いて説明した縦結合の設定画面においてさらにキー項目を指定させ、いわゆる外部結合(Left join、Right join、又はFull outer join)、または内部結合(Inner join)を実行できるようにしてもよい。
<< Modified example of continuous processing of vertical connection and horizontal connection >>
The above-described vertical connection and horizontal connection can also be executed as a series of processing. For example, the setting of the vertical connection and the setting of the horizontal connection are stored in the storage unit in advance. The setting of the vertical combination includes data representing the correspondence between the items included in the plurality of tabular data as input data. The setting of the horizontal connection includes designation of a key item and an aggregation item that define an aggregation method. Then, the generation of the union of the tabular data (vertical join) and the aggregation of the records whose key items satisfy the predetermined condition (horizontal join) are continuously executed. Further, a key item is further designated on the vertical join setting screen described with reference to FIGS. 7A and 41, and a so-called outer join (Left join, Right join, or Full outer join) or an inner join (Inner join) is executed. You may be able to.

図89に、縦結合及び横結合を一連の処理として実行する場合の設定画面の一例を示す。図89の設定画面は、表の2行目に、「名簿.csv」(以下、「名簿」と呼ぶ)という入力データに含まれる項目名の一覧が表示されている。また、表の3行目は、「会社情報.csv」(以下、「会社情報」と呼ぶ)という入力データに含まれる項目名の一覧が表示されている。なお、表の1行目には、便宜的に項目の通し番号を示している。そして、名簿の項目「勤務先」と会社情報の項目「会社名」とが対応付けられている。このとき、項目4の「編集」ボタンを押下すると、例えば矢印で示すようなメニューが表示されるものとする。そして、「結合キーに設定」又は「結合キーの解除」を選択することにより、当該項目をキー項目として設定したり解除したりすることができる。なお、キーに設定された項目は、図89に示すように例えば背景色の表示態様を変更して識別可能としてもよい。また、メニューの中から「結合タイプ」として「外部結合」又は「内部結合」を選択することにより、例えば当該キー項目の値が完全一致するレコードについて各入力データの値を外部結合または内部結合する旨の設定を行うようにしてもよい。なお、縦結合及び横結合の処理内容は、上述の通りである。また、メニューのその他の項目については説明を省略する。   FIG. 89 shows an example of a setting screen when the vertical combination and the horizontal combination are executed as a series of processing. In the setting screen of FIG. 89, a list of item names included in the input data “list.csv” (hereinafter, referred to as “list”) is displayed in the second row of the table. The third line of the table displays a list of item names included in the input data “company information.csv” (hereinafter, referred to as “company information”). The first row of the table shows the serial numbers of the items for convenience. Then, the item “workplace” of the list and the item “company name” of the company information are associated with each other. At this time, when the "edit" button of item 4 is pressed, a menu indicated by, for example, an arrow is displayed. Then, by selecting “set as combined key” or “release combined key”, the item can be set or released as a key item. The items set in the keys may be identifiable by changing the display mode of the background color, for example, as shown in FIG. Also, by selecting “outer join” or “inner join” as the “join type” from the menu, for example, the values of the respective input data are externally or internally joined for a record in which the value of the key item completely matches. Setting may be made. The processing contents of the vertical connection and the horizontal connection are as described above. Description of other items in the menu is omitted.

<<データプロファイリングに係る実施形態>>
上記の実施形態に係る表形式データは、CSVファイル等であり、各項目についてデータ型が定義されているわけではない。よって、誤りや漏れ、重複等を有する品質の低い表形式データが入力される可能性があり、そのような場合は集約した結果も望ましいものとはならない。本実施形態では、統計的手法を用いて任意の項目に対応付けて保持されている値を可視化し、不適切なデータの検出及び修正を支援する。
<<< Embodiment related to data profiling >>>
The tabular data according to the above embodiment is a CSV file or the like, and a data type is not defined for each item. Therefore, there is a possibility that low-quality tabular data having errors, omissions, duplication, and the like may be input. In such a case, the aggregated result is not desirable. In the present embodiment, a value held in association with an arbitrary item is visualized by using a statistical method, and detection and correction of inappropriate data are supported.

<機能構成>
図90は、本実施形態に係る表形式データ処理装置の機能ブロック図の一例である。図90の表形式データ処理装置5は、データ記憶部501と、データ入力部502と、指示受付部503と、統計処理部504と、チャート出力部505と、入力データ表示部506と、データ修正部507とを含む。データ記憶部501は、本実施形態において処理の対象となる表形式データや、本実施形態において修正された表形式データを保持する。データ入力部502は、ユーザによって入力データとなる表形式データの指定を受け付け、データ記憶部501から指定されたデータを読み出す。指示受付部503は、検証する項目(属性)及び検証方法の指定を受け付ける。また、統計処理部504は、指定された項目に対応付けて保持されている各レコードの値(要素)に対し、指定された検証方法に基づいて統計処理を行う。統計情報出力部505は、統計処理の結果をユーザに対して出力する。統計情報は、指定された検証方法に応じて円グラフ、棒グラフ、ヒストグラム、バブルチャート、ラインチャート、散布図等のチャートによって出力するようにしてもよい。入力データ表示部506は、統計処理の対象となった表形式データの内容を表示する。例えば、出力した統計情報に含まれる要素のグループをユーザが指定することにより、指定されたグループに該当するレコードをハイライト表示(強調表示)して、表形式データの内容が表示される。データ修正部507は、表示した表形式データに対しユーザから修正の指示を受け付け、値を修正する。ここでは、1件ごとに修正を行うようにしてもよいし、複数の要素に対して一括して修正を行うようにしてもよい。本実施形態に係る表形式データ処理装置5は、スタンドアローンで動作するものとして説明するが、表形式データ処理装置とユーザ端末とがネットワークを介して接続されたクライアント−サーバ型のシステムを形成するようにしてもよい。
<Functional configuration>
FIG. 90 is an example of a functional block diagram of the tabular data processing device according to the present embodiment. 90 includes a data storage unit 501, a data input unit 502, an instruction receiving unit 503, a statistical processing unit 504, a chart output unit 505, an input data display unit 506, and a data correction unit. Unit 507. The data storage unit 501 holds tabular data to be processed in the present embodiment and tabular data corrected in the present embodiment. The data input unit 502 receives designation of tabular data to be input data by the user, and reads the designated data from the data storage unit 501. The instruction receiving unit 503 receives designation of an item (attribute) to be verified and a verification method. Further, the statistical processing unit 504 performs a statistical process on the value (element) of each record held in association with the specified item based on the specified verification method. The statistical information output unit 505 outputs the result of the statistical processing to the user. The statistical information may be output in the form of a chart such as a pie chart, a bar graph, a histogram, a bubble chart, a line chart, a scatter chart, or the like according to the specified verification method. The input data display unit 506 displays the contents of tabular data subject to statistical processing. For example, when the user specifies a group of elements included in the output statistical information, the record corresponding to the specified group is highlighted (highlighted), and the contents of the tabular data are displayed. The data correction unit 507 receives a correction instruction from the user for the displayed tabular data, and corrects the value. Here, the correction may be performed on a case-by-case basis, or the correction may be performed collectively on a plurality of elements. The tabular data processing device 5 according to the present embodiment will be described as operating standalone, but forms a client-server type system in which the tabular data processing device and user terminals are connected via a network. You may do so.

<装置構成>
表形式データ処理装置5も、図3に示すようなコンピュータである。図3に示すコンピュータ1000は、CPU1001、主記憶装置1002、補助記憶装置1003、通信IF1004、入出力IF1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラムを実行することにより本実施の形態に係る処理を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAMやROM等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDDやSSD、フラッシュメモリ等である。主記憶装置1002や補助記憶装置1003は、表形式データ処理装置5のデータ記憶部501として働く。通信IF1004は、他のコンピュータとの間でデータを送受信する。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。表形式データ処理装置4は、通信IF1004を介してネットワークに接続されていてもよい。入出力IF1005は、入出力装置と接続され、ユーザから操作を受け付けたり、ユーザへ情報を提示したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、通信IF1004、ドライブ装置1006等)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、図3に示したコンピュータを図90に示した表形式データ処理装置5として働かせる。
<Apparatus configuration>
The tabular data processing device 5 is also a computer as shown in FIG. The computer 1000 shown in FIG. 3 includes a CPU 1001, a main storage device 1002, an auxiliary storage device 1003, a communication IF 1004, an input / output IF 1005, a drive device 1006, and a communication bus 1007. The CPU 1001 performs processing according to the present embodiment by executing a program. The main storage device 1002 caches programs and data read by the CPU 1001, and expands a work area of the CPU. The main storage device is, specifically, a RAM, a ROM, or the like. The auxiliary storage device 1003 stores a program executed by the CPU 1001, setting information used in the present embodiment, and the like. The auxiliary storage device 1003 is, specifically, an HDD, an SSD, a flash memory, or the like. The main storage device 1002 and the auxiliary storage device 1003 function as the data storage unit 501 of the tabular data processing device 5. The communication IF 1004 transmits and receives data to and from another computer. The communication IF 1004 is, specifically, a wired or wireless network card or the like. The tabular data processing device 4 may be connected to a network via the communication IF 1004. The input / output IF 1005 is connected to the input / output device, and receives an operation from a user or presents information to the user. The input / output device is, specifically, a keyboard, a mouse, a display, a touch panel, or the like. The drive device 1006 reads data recorded on a storage medium such as a magnetic disk, a magneto-optical disk, and an optical disk, and writes data on the storage medium. The above components are connected by a communication bus 1007. A plurality of these components may be provided, or some of the components (for example, the communication IF 1004, the drive device 1006, etc.) may not be provided. Further, the input / output device may be configured integrally with the computer. Also, the program executed in the present embodiment is provided via a portable storage medium readable by the drive device 1006, a portable auxiliary storage device 1003 such as a flash memory, a communication IF 1004, and the like. It may be. Then, by the CPU 1001 executing the program, the computer shown in FIG. 3 operates as the tabular data processing device 5 shown in FIG.

<データプロファイリング処理>
図91は、データプロファイリング処理の一例を示す処理フロー図である。まず、表形式データ処理装置5のデータ入力部は、ユーザの指示を受けて表形式データを読み出す(図91:S301)。本ステップでは、上述の実施形態で説明した1以上の表形式データの指定を受け付ける。ここで、例えば図7Aや図41に示した設定画面において項目間の対応付けが定義された2以上の表形式データを入力としてもよい。この場合、設定に基づいて縦結合を実施した後の表形式データの和集合に対し、データプロファイリング処理が行われる。
<Data profiling process>
FIG. 91 is a process flowchart illustrating an example of the data profiling process. First, the data input unit of the tabular data processing device 5 reads tabular data in response to a user instruction (FIG. 91: S301). In this step, designation of one or more tabular data described in the above embodiment is received. Here, for example, two or more tabular data in which the correspondence between items is defined on the setting screen shown in FIG. 7A or FIG. 41 may be input. In this case, the data profiling process is performed on the union of the tabular data after performing the vertical joining based on the setting.

次に、表形式データ処理装置5の指示受付部503は、ユーザの操作に基づき、検証処理の対象となる項目及び検証方法の指定を受け付ける(S302)。本ステップでは、表形式データ処理装置5に接続された表示装置に「データ品質ツール設定」画面を表示し、ユーザからの指定を受け付ける。図92は、本ステップで表示する画面の一例である「データ品質ツール設定画面」を示す。まず、ユーザは、「抽出項目」のプルダウンメニューから実行する分析のカテゴリを選択する。ここでは、値が所定の表現形式(フォーマット)で記述されているか否かを判断するためのカテゴリを選択する。具体的には、カテゴリとして、「品質分析」、「検索分析」、「パターン分析」又は「品質管理グラフ」のいずれかを選択するものとする。図92の例では、「パターン分析」が選択されている。   Next, the instruction receiving unit 503 of the tabular data processing device 5 receives designation of an item to be verified and a verification method based on a user operation (S302). In this step, the "data quality tool setting" screen is displayed on the display device connected to the tabular data processing device 5, and the specification from the user is accepted. FIG. 92 shows a “data quality tool setting screen” which is an example of a screen displayed in this step. First, the user selects a category of analysis to be performed from a pull-down menu of “extraction item”. Here, a category for determining whether or not the value is described in a predetermined expression format (format) is selected. Specifically, one of “quality analysis”, “search analysis”, “pattern analysis”, or “quality management graph” is selected as the category. In the example of FIG. 92, “pattern analysis” is selected.

ここで、カテゴリ「品質分析」の場合は、値が指定された内容であるか否かによってグループ分けし、各グループに含まれる値の件数を集計して、結果を表すチャート(グラフ等の視覚的表示)を出力する。品質分析は、具体的な分析方法として「日付データの抽出」、「一意データの抽出」、「欠損データの抽出」及び「数値データの抽出」を含む。「日付データの抽出」が選択された場合は、さらに引数として項目の指定を受け付ける。そして、指定された項目の値が日付データであるか否か判断し、それぞれの件数を例えば円グラフに表す。日付データであるか否かの判断は、上述したデータクレンジングにおいて日付と判断する、GGGGyyMMdd(平成250110,H250110)、yyMMdd(130110)、yyyyMMdd(20130110)、GGGGyy年MM月dd日(平成25年01月10日,H25年01月10日)、yyyy年MM月dd日(2013年01月10日)、GGGGyy/MM/dd(平成25/01/10,H25/01/10)、yy/MM/dd(13/01/10)、yyyy/MM/dd(2013/01/10,2013/1/10 9:06:39)、yy-MM-dd(13-01-10)、GGGGyy-MM-dd(平成25-01-10,H25-01-10)、yyyy-MM-dd(2013-01-10)、yy年MM月dd日(13年01月10日)といった形式に該当するか否かによって行う。また、「一意データの抽出」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、指定された項目の値がそれぞれ一意であるか否か判断し、それぞれの件数を例えば円グラフで出力する。また、「欠損データの抽出」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、値が空(「Null」、「欠損」とも呼ぶ)であるか否かを判断し、それぞれの件数を例えば円グラフで出力する。また、「数値データの抽出」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、指定された項目の値がそれぞれ数値であるか否かを判断し、それぞれの件数を例えば円グラフで出力する。なお、通貨記号その他の単位を含む場合に数値と判断するか否か定めておくようにしてもよいし、数値と判断するか否か選択できるようにしてもよい。   Here, in the case of the category “quality analysis”, the values are grouped according to whether or not the content is the specified content, the number of values included in each group is totaled, and a chart (a visual chart such as a graph) representing the result is obtained. Output). The quality analysis includes “extraction of date data”, “extraction of unique data”, “extraction of missing data”, and “extraction of numerical data” as specific analysis methods. When "extract date data" is selected, the specification of an item is further accepted as an argument. Then, it is determined whether or not the value of the designated item is date data, and the number of each item is represented, for example, in a pie chart. The determination as to whether or not the data is date data is made by determining the date in the above-described data cleansing. GGGGyyMMdd (Heisei 250110, H250110), yyMMdd (130110), yyyyMMdd (20130110), MMGGddyyMMDD Month 10, H25 January 10, 2013), MM month dd, yyyy (January 10, 2013), GGGGyy / MM / dd (2013/01/10, H25 / 01/10), yy / MM / dd (13/01/10), yyyy / MM / dd (2013/01/10, 2013/1/10 9:06:39), yy-MM-dd (13-01-10), GGGGyy-MM -dd (2013-01-10, H25-01-10), yyyy-MM-dd (2013-01-10), MM / dd / yy (yy / 01/13) It depends on whether or not. Also, when "extract unique data" is selected, the specification of an item is further accepted as an argument. Then, it is determined whether or not the values of the designated items are unique, and the number of each is output as a pie chart, for example. Also, when "extraction of missing data" is selected, the specification of an item is further accepted as an argument. Then, it is determined whether or not the value is empty (also referred to as “Null” or “missing”), and the number of each case is output as a pie chart, for example. Also, when "extract numerical data" is selected, the specification of an item is further accepted as an argument. Then, it is determined whether or not the value of each of the designated items is a numerical value, and the number of each is output as a pie chart, for example. When a currency symbol and other units are included, it may be determined whether or not to determine a numerical value, or it may be possible to select whether or not to determine a numerical value.

また、カテゴリ「検索分析」の場合は、指定した値を検索して該当するか否かによってグループ分けし、各グループに含まれる値の件数を集計して結果を示すチャートを表示する。検索分析は、具体的な分析方法として「後方一致データの抽出」、「前方一致データの抽出」及び「正規表現での抽出」を含む。「後方一致データの抽出」が選択された場合は、さらに引数として項目の指定及び検索する文字列を受け付ける。そして、指定された項目の値が指定した文字列と後方一致するか否かを判断し、それぞれの件数を例えば円グラフに表す。「前方一致データの抽出」が選択された場合も、さらに引数として項目の指定及び検索する文字列を受け付ける。そして、指定された項目の値が指定した文字列と前方一致するか否かを判断し、それぞれの件数を例えば円グラフに表す。また、「正規表現での抽出」が選択された場合は、さらに引数として項目の指定及び検索対象を表す正規表現を受け付ける。そして、指定された項目の値が、指定した正規表現が表す値と一致するか否かを判断し、それぞれの件数を例えば円グラフに表す。正規表現は、例えば図62に示した正規表現ユーザ辞書で用いた、一般的な正規表現を使用できるものとする。   Also, in the case of the category “search analysis”, the designated values are searched and grouped according to whether they are applicable, and the number of values included in each group is totaled and a chart showing the result is displayed. The search analysis includes “extraction of backward matching data”, “extraction of forward matching data”, and “extraction by regular expression” as specific analysis methods. If “extract backward matching data” is selected, an item specification and a character string to be searched are further accepted as arguments. Then, it is determined whether or not the value of the designated item matches backward with the designated character string, and the number of each item is represented in, for example, a pie chart. Even when “extract forward matching data” is selected, the specification of an item and the character string to be searched are further accepted as arguments. Then, it is determined whether or not the value of the designated item coincides with the designated character string in front, and the number of each is represented in a pie chart, for example. If “extract with regular expression” is selected, the regular expression indicating the item designation and the search target is further accepted as an argument. Then, it is determined whether the value of the designated item matches the value represented by the designated regular expression, and the number of each item is represented, for example, in a pie chart. As the regular expression, for example, a general regular expression used in the regular expression user dictionary shown in FIG. 62 can be used.

また、カテゴリ「パターン分析」の場合は、指定した項目に対応付けられている値をパターンによってグループ分けし、各グループに含まれる値の件数を集計して結果を示すチャートを表示する。パターン分析は、具体的な分析方法として「出現頻度」及び「データパターン化」を含む。「出現頻度」が選択された場合は、さらに引数として項目の指定を受け付ける。そして、指定された項目の値ごとにグループ分けし、それぞれの値の件数を例えば頻度によってソートした棒グラフで出力する。「データパターン化」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、例えば、英字1文字を「W」、空白1つを「S」、数字1文字を「D」、マルチバイト文字1字を「A」、その他の記号等はその値として、データをパターン化し、同一のパターンごとにグループ分けして各グループに含まれる値の件数を例えば件数によってソートした棒グラフで出力する。すなわち、データパターンとは、英字、数字、マルチバイト文字等に値を分類し、出現順及び出現回数を類型化したものである。   In the case of the category “pattern analysis”, values associated with specified items are grouped by pattern, the number of values included in each group is totaled, and a chart showing the result is displayed. The pattern analysis includes “appearance frequency” and “data patterning” as specific analysis methods. When “appearance frequency” is selected, the specification of an item is further accepted as an argument. Then, grouping is performed for each value of the designated item, and the number of cases of each value is output as a bar graph sorted by, for example, frequency. When “data patterning” is selected, the specification of an item is further accepted as an argument. For example, one character is "W", one space is "S", one numeral is "D", one multi-byte character is "A", and other symbols are values of the pattern. Then, the number of values included in each group is output in the form of a bar graph sorted by the number of cases, for example. That is, the data pattern is obtained by classifying values into alphabetic characters, numerals, multibyte characters, and the like, and classifying the order of appearance and the number of appearances.

また、カテゴリ「品質管理グラフ」は、指定した項目に対応付けられている値を所定の範囲ごとにグループ分けし、各グループに含まれる値の件数を集計して結果を示すチャートを表示する。検索分析は、具体的な分析方法として「ヒストグラム(日付)」、「ヒストグラム(単位)」、「ヒストグラム(分割)」、「バブルチャート」、「ラインチャート(時系列)」及び「散布図」を含む。「ヒストグラム(日付)」が選択された場合は、さらに引数として項目の指定を受け付ける。そして、X軸に期間、Y軸に出現頻度を示すヒストグラムを出力する。なお、ビンの数と大きさは自動的に調整する。また、「ヒストグラム(単位)」が選択された場合は、さらに引数として項目及びビンの幅(ビン1つ当たりの範囲)の指定を受け付ける。そして、X軸に指定された項目の値、Y軸に出現頻度を示すヒストグラムを出力する。なお、X軸のビンの数と大きさは、指定されたビンの幅に基づいて調整する。また、「ヒストグラム(分割)」が選択された場合は、さらに引数として項目の指定及びX軸方向のビンの数を受け付ける。そして、X軸に指定された項目の値、Y軸に出現頻度を示すヒストグラムを出力する。また、「バブルチャート」が選択された場合は、さらに引数としてX軸、Y軸、Z軸それぞれの項目を受け付ける。そして、それぞれの項目の値に応じて、X座標及びY座標の位置にZ軸の大きさのバブルチャートを出力する。また、「ラインチャート(時系列)」が選択された場合は、さらに引数としてX軸の項目(日付形式)及びY軸の項目の指定を受け付ける。そして、X軸に示す日時順に示すY軸の値の推移を表すラインチャートを出力する。また、「散布図」が選択された場合は、さらに引数としてX軸の項目及びY軸の項目を受け付ける。そして、それぞれの項目の値に応じて、X座標及びY座標の位置にプロットした散布図を出力する。なお、それぞれの場合において、欠損値は、例えば「NaN(Not a Number:非数)」と出力する。   In addition, the category “quality management graph” divides values associated with the specified items into groups in a predetermined range, totals the number of values included in each group, and displays a chart showing the result. The search analysis uses “histogram (date)”, “histogram (unit)”, “histogram (division)”, “bubble chart”, “line chart (time series)”, and “scatter chart” as specific analysis methods. Including. When "Histogram (date)" is selected, the specification of an item is further accepted as an argument. Then, a histogram indicating the period on the X axis and the appearance frequency on the Y axis is output. The number and size of the bins are automatically adjusted. When “Histogram (unit)” is selected, designation of items and bin widths (range per bin) is further accepted as arguments. Then, a histogram indicating the value of the designated item on the X axis and the appearance frequency on the Y axis is output. The number and size of the bins on the X axis are adjusted based on the designated bin width. When “histogram (division)” is selected, the specification of items and the number of bins in the X-axis direction are further accepted as arguments. Then, a histogram indicating the value of the designated item on the X axis and the appearance frequency on the Y axis is output. When “bubble chart” is selected, items of the X axis, Y axis, and Z axis are further accepted as arguments. Then, a bubble chart having the size of the Z axis is output at the position of the X coordinate and the Y coordinate according to the value of each item. When “line chart (time series)” is selected, the specification of an X-axis item (date format) and a Y-axis item is further accepted as arguments. Then, a line chart representing the transition of the values on the Y-axis shown in order of date and time shown on the X-axis is output. When “scatter chart” is selected, an X-axis item and a Y-axis item are further accepted as arguments. Then, a scatter diagram plotted at the positions of the X coordinate and the Y coordinate is output according to the value of each item. In each case, the missing value is output as, for example, “NaN (Not a Number)”.

S302においてカテゴリを選択すると、プルダウンメニューの下部に具体的な分析方法を表す「プロファイル名」が表示され、ユーザはいずれかのプロファイル名を選択する。なお、図92の例では、選択されたプロファイル名の背景をハッチングで強調している。すなわち、図92の例では、「出現頻度」が選択されている。そして、いずれかのプロファイル名が選択されると、データ品質設定画面の下部に引数の入力欄が表示される。図92の例では、項目名を選択するためのプルダウンメニューが表示されている。ユーザは、入力ファイルに含まれる項目名のいずれかを選択することができる。   When a category is selected in S302, a "profile name" indicating a specific analysis method is displayed at the bottom of the pull-down menu, and the user selects any profile name. In the example of FIG. 92, the background of the selected profile name is highlighted by hatching. That is, in the example of FIG. 92, “appearance frequency” is selected. When one of the profile names is selected, an input field for an argument is displayed at the bottom of the data quality setting screen. In the example of FIG. 92, a pull-down menu for selecting an item name is displayed. The user can select any of the item names included in the input file.

その後、表形式データ処理装置5の統計処理部504は、受け付けた処理の指示に基づいて統計処理を行う(S303)。図92の例において、値が「男」又は「女」である性別を保持する項目が引数として指定された場合、各値(「男」及び「女」)について件数を集計する。そして、統計処理部504は、それぞれの件数を示す棒グラフを生成する。   Thereafter, the statistical processing unit 504 of the tabular data processing device 5 performs statistical processing based on the received processing instruction (S303). In the example of FIG. 92, when an item holding a gender whose value is “male” or “female” is specified as an argument, the number of cases is totaled for each value (“male” and “female”). Then, the statistical processing unit 504 generates a bar graph indicating the number of each.

そして、表形式データ処理装置5の統計情報出力部505は、集計した統計情報を出力する(S304)。ここで、統計情報とは、S303で算出した集計値及びS303で生成した棒グラフ(すなわち、チャート)の少なくともいずれかを含むものとする。図93は、統計情報を表示する「データ品質ツール」画面の一例である。図93の左側には、入力ファイルにおいて指定された項目に対応付けられている値を、それぞれ集計した結果を示す横棒グラフが表示されている。具体的には、男女それぞれの頻度(件数)が横棒の長さによって視覚的に表示されている。また、図93の右側上段には、集計結果の頻度を値ごとに示す表が表示されている。件数は左側の棒グラフと対応しており、男女それぞれの件数が数値で表示されている。なお、指定された項目の値について様々な統計量が算出され、画面の右側下段に表示されている。具体的には、統計量として、「合計」、「最大値」、「最小値」、「平均値」、「分散」、「標準偏差」、及び「NaN(非数の件数)」が算出される。図93の例では、「NaN」が19件であり、その他の統計量はすべてNaNとなっている。   Then, the statistical information output unit 505 of the tabular data processing device 5 outputs the aggregated statistical information (S304). Here, the statistical information includes at least one of the total value calculated in S303 and the bar graph (ie, chart) generated in S303. FIG. 93 is an example of a “data quality tool” screen that displays statistical information. On the left side of FIG. 93, a horizontal bar graph showing the results of totalizing the values associated with the items specified in the input file is displayed. Specifically, the frequency (number of cases) of each man and woman is visually displayed by the length of the horizontal bar. In the upper right part of FIG. 93, a table indicating the frequency of the counting result for each value is displayed. The number of cases corresponds to the bar graph on the left, and the number of cases for each gender is displayed numerically. Various statistics are calculated for the value of the designated item, and are displayed on the lower right side of the screen. More specifically, “sum”, “maximum value”, “minimum value”, “average value”, “variance”, “standard deviation”, and “NaN (number of non-numbers)” are calculated as statistics. You. In the example of FIG. 93, “NaN” is 19 cases, and all other statistics are NaN.

また、表形式データ処理装置5の入力データ表示部506は、S304で出力した統計情報の一部を指定する旨の入力を受け付け、対応する入力データを表示する(S305)。本ステップでは、図93に示す画面において、右側上段の統計情報においていずれかの値又はいずれかの頻度を示す数値を指定すると、画面の右側中段に、入力ファイルにおいて該当するレコード番号の一覧が表示される。図93の例では、右側上段の表において「女」が指定され、右側中段には性別の項目に「女」が登録されているレコードのレコード番号の一覧が表示されている。なお、統計情報の一部を指定する旨の入力は、画面左側の横棒のいずれかを指定することにより行ってもよい。図93は出現頻度を分析した例であり、S302において指示された検証方法に基づき、S304及びS305では、各集計値及び様々なチャートが出力される。   Also, the input data display unit 506 of the tabular data processing device 5 receives an input indicating that a part of the statistical information output in S304 is specified, and displays the corresponding input data (S305). In this step, if any value or a numerical value indicating any frequency is specified in the statistical information at the upper right of the screen shown in FIG. 93, a list of record numbers corresponding to the input file is displayed at the middle right of the screen. Is done. In the example of FIG. 93, “female” is designated in the upper right table, and a list of record numbers of records in which “female” is registered in the gender item is displayed in the middle right. Note that the input of designating a part of the statistical information may be performed by designating one of the horizontal bars on the left side of the screen. FIG. 93 shows an example in which the appearance frequency is analyzed. Based on the verification method instructed in S302, in S304 and S305, each total value and various charts are output.

その後、表形式データ処理装置5のデータ修正部507は、ユーザから入力データの修正指示を受け付け、入力データを修正する(S306)。本ステップでは、例えば図93の右側中段に表示された入力データのレコード番号のいずれかを選択することにより、例えば図38に示したような入力データにおける選択したレコードを表示し、値を修正できるようにしてもよい。また、一括して修正を反映させる旨の指示を受け付けるようにしてもよい。一括して修正を行う場合は、例えば上述した関数処理を用いて値を修正することができる。上述したように、関数処理によれば、所定の種類の文字を抽出したり、値の表現形式を標準化したりすることができる。仮に、図93の例において入力データの性別を示す項目に「男」及び「女」以外の値が登録されていた場合、当該値が図93の左側の棒グラフ及び右側上段の表に現れる。当該値が不適切である場合、ユーザは容易に問題のあるレコードを特定し、修正することができる。なお、修正後の入力データは、上書きして記録するようにしてもよいし、名前を付けて別のファイルとして保存するようにしてもよい。保存したファイルは、上述した縦結合処理、横結合処理、集計処理等に用いることができる。   After that, the data correction unit 507 of the tabular data processing device 5 receives an input data correction instruction from the user and corrects the input data (S306). In this step, for example, by selecting one of the record numbers of the input data displayed in the middle part on the right side of FIG. 93, the selected record in the input data as shown in FIG. 38 can be displayed and the value can be corrected. You may do so. Further, an instruction to reflect the correction may be received collectively. When the correction is performed collectively, the value can be corrected using, for example, the above-described function processing. As described above, according to the function processing, it is possible to extract a predetermined type of character and standardize the value expression format. If a value other than “male” and “female” is registered in the item indicating the gender of the input data in the example of FIG. 93, the value appears in the bar graph on the left side and the table on the upper right side of FIG. 93. If the value is inappropriate, the user can easily identify and correct the problematic record. The corrected input data may be overwritten and recorded, or may be saved as another file with a name. The saved file can be used for the above-described vertical combining process, horizontal combining process, totaling process, and the like.

また、入力データの一括修正は、例示した関数処理以外によって行うこともできる。例えば、所定の文字列又は欠損データを、指定された文字列等に置換できるようにしてもよい。また、検索条件にはいわゆる正規表現を利用できるようにしてもよい。例えば、ある項目に対応付けて登録されている要素に対し、「*建設」のように後方一致で「建設」を検索し、索出された要素を「M建設」のような指定された文字列に置換できるようになる。   In addition, the batch correction of the input data can be performed by a function other than the illustrated function processing. For example, a predetermined character string or missing data may be replaced with a specified character string or the like. Further, a so-called regular expression may be used as the search condition. For example, for an element registered in association with a certain item, "construction" is searched for in a backward match, such as "* construction," and the found element is designated by a designated character such as "M construction." Can be replaced with a column.

以上により、データプロファイリング処理を終了する。なお、図91に示したフローチャートは一例であり、入力データの表示や入力データの修正等、一部の処理を実行しなくてもよい。データプロファイリング処理によれば、誤りや漏れ、重複等の不適切なデータを統計的手法によって可視化することにより、検出及び修正を支援することができる。特に、本実施形態に係る表形式データはデリミタによってレコードに含まれる要素が列に区切られたDSV(Delimiter Separated Values)形式のデータである。例えばRDBのようにスキーマ(メタデータ)が定義されているわけではないため、データ登録時のフォーマットチェックが困難である。すなわち、不適切なデータが登録されることもある。したがって、本実施形態に係るデータプロファイリング処理は、DSV形式のような入力データを扱う場合に特に有用であるといえる。   Thus, the data profiling process ends. Note that the flowchart illustrated in FIG. 91 is an example, and some processing such as display of input data and correction of input data may not be performed. According to the data profiling process, detection and correction can be supported by visualizing inappropriate data such as errors, omissions, and duplication by a statistical method. In particular, the tabular data according to the present embodiment is DSV (Delimiter Separated Values) data in which elements included in a record are separated into columns by a delimiter. For example, since a schema (metadata) is not defined unlike RDB, it is difficult to check the format at the time of data registration. That is, inappropriate data may be registered. Therefore, it can be said that the data profiling processing according to the present embodiment is particularly useful when handling input data in the DSV format.

<変形例>
図92及び図93の例では対象の項目及び分析方法を1つずつ指定して処理を行ったが、複数の項目を対象として複数の分析を行うようにしてもよい。この場合、例えば、図91のS302において、図92の代わりに図94のような画面を表示する。図94は、複数の項目を対象として複数の分析を実行可能な「データプロファイリング設定」画面の一例である。図94の例では、縦方向に分析方法を列挙し、横方向に表形式データに含まれる項目名の一覧が表示されている。そして、行と列とが交差する升目に設けられたチェックボックスにチェックを入れることにより、当該項目の値に対する当該分析方法による分析の実行を指定することができる。
<Modification>
In the examples of FIGS. 92 and 93, the process is performed by designating the target item and the analysis method one by one. However, a plurality of analyzes may be performed on a plurality of items. In this case, for example, in S302 of FIG. 91, a screen as shown in FIG. 94 is displayed instead of FIG. FIG. 94 is an example of a “data profiling setting” screen that can execute a plurality of analyzes on a plurality of items. In the example of FIG. 94, analysis methods are listed in the vertical direction, and a list of item names included in the tabular data is displayed in the horizontal direction. By checking a check box provided in a cell where a row and a column intersect, it is possible to specify execution of analysis by the analysis method on the value of the item.

図94の例において、「日付の抽出」以外のチェックボックスにチェックを入れて設定し、データプロファイリングを実行すると、図91のS304では、例えば図95のような結果(「データプロファイリング」画面)が表示される。図95では、チェックを入れた項目と分析方法との組み合わせについて、集計値が表示されている。なお、図95の例では、統計量である、合計、最大値、最小値、平均値、分散、標準偏差、NaN(非数の件数)も、各項目について算出される。このような画面において、件数を指定することにより図93の右側中段に示したようなレコード番号のリストを表示するようにしてもよい。さらに、レコード番号のリストを選択することで、例えば図38に示したような入力データを表示し、値を修正できるようにしてもよい。変形例に係るデータプロファイリング処理によっても、誤りや漏れ、重複等の不適切なデータを統計的手法によって可視化することにより、検出及び修正を支援することができる。   In the example of FIG. 94, the user checks the check boxes other than “extract date” to set the data, and executes data profiling. In S304 of FIG. 91, for example, the result (“data profiling” screen) shown in FIG. Is displayed. In FIG. 95, the tally value is displayed for the combination of the checked item and the analysis method. In the example of FIG. 95, the statistics such as the sum, the maximum value, the minimum value, the average value, the variance, the standard deviation, and the NaN (number of non-numbers) are also calculated for each item. On such a screen, by specifying the number of records, a list of record numbers as shown in the middle right part of FIG. 93 may be displayed. Further, by selecting a list of record numbers, for example, input data as shown in FIG. 38 may be displayed, and the values may be modified. The data profiling process according to the modified example can also assist detection and correction by visualizing inappropriate data such as errors, omissions, duplications, and the like by a statistical method.

1 表形式データ処理装置,101 データ記憶部,102 設定処理部,103 データ分割部,104 表示制御部,105 縦結合部,106 対照群生成部,107 横結合部,108 集計部,109 出力データ生成部
2 ユーザ端末
3 ネットワーク
4 表形式データ処理装置,401 データ記憶部,402 入出力部,403 制御部,404 縦結合部,405 横結合部,406 集計部,407 グループ化部,408検索部,409 外部連携部,410 バッチ処理部
5 表形式データ処理装置,501 データ記憶部,502 データ入力部,503 指示受付部,504 統計処理部,505 統計情報出力部,506 入力データ表示部,507 データ修正部
1 Tabular data processing device, 101 data storage unit, 102 setting processing unit, 103 data division unit, 104 display control unit, 105 vertical connection unit, 106 control group generation unit, 107 horizontal connection unit, 108 totaling unit, 109 output data Generation unit 2 user terminal 3 network 4 tabular data processing unit, 401 data storage unit, 402 input / output unit, 403 control unit, 404 vertical connection unit, 405 horizontal connection unit, 406 counting unit, 407 grouping unit, 408 search unit , 409 External linking unit, 410 Batch processing unit 5 Tabular data processing unit, 501 data storage unit, 502 data input unit, 503 instruction receiving unit, 504 statistical processing unit, 505 statistical information output unit, 506 input data display unit, 507 Data correction section

Claims (5)

複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する表形式データ処理装置であって、
複数の前記表形式データを統合するうえで不適切なデータを可視化するための集計規則に基づいてグループに分類した、所定の項目に対応する前記要素の件数を、前記グループごとに集計し、集計結果を出力する集計部と、
前記入力データから、前記集計結果における前記グループのいずれかに分類された要素を含むレコードを抽出して出力する出力部と、
出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更する修正部と、
を有する表形式データ処理装置。
A tabular data processing apparatus that processes tabular data in which a plurality of records including a plurality of elements corresponding to a plurality of items are registered as input data,
Were classified into groups on the basis of incorrect data in order to integrate a plurality of said tabulated data to the aggregation rules for visualizing, the number of the elements corresponding to the predetermined item, and aggregated by the group, A tally unit that outputs tally results;
From the input data, an output unit that extracts and outputs a record including an element classified into any of the groups in the aggregation result,
A correction unit that receives a request for changing an element included in the output record and changes the element;
A tabular data processing device having:
前記集計の規則に基づく分類は、前記要素を記述する表現形式に基づく分類である
請求項1に記載の表形式データ処理装置。
The classification based on the current meter rule, tabular data processing apparatus according to claim 1 is a classification based on the representation that describes the element.
複数の表形式データ間における項目の対応付けを示すデータに基づいて、複数の表形式データの和集合を生成する縦結合部
をさらに有し、
前記集計部は、前記表形式データの和集合を前記入力データとする
請求項1又は2に記載の表形式データ処理装置。
A vertical combination unit configured to generate a union of the plurality of tabular data based on data indicating the correspondence between items in the plurality of tabular data,
The tabular data processing device according to claim 1, wherein the totaling unit sets a union of the tabular data as the input data.
複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する表形式データ処理方法であって、
複数の前記表形式データを統合するうえで不適切なデータを可視化するための集計規則に基づいてグループに分類した、所定の項目に対応する前記要素の件数を、前記グループごとに集計し、集計結果を出力する集計ステップと、
前記入力データから、前記集計結果における前記グループのいずれかに分類された要素を含むレコードを抽出して出力するステップと、
出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更するステップと、
をコンピュータが実行する表形式データ処理方法。
A tabular data processing method for processing, as input data, tabular data in which a plurality of records including a plurality of elements respectively corresponding to a plurality of items are registered,
Were classified into groups on the basis of incorrect data in order to integrate a plurality of said tabulated data to the aggregation rules for visualizing, the number of the elements corresponding to the predetermined item, and aggregated by the group, An aggregation step for outputting an aggregation result;
From the input data, extracting and outputting a record including an element classified into any of the groups in the aggregation result,
Receiving a request to change an element included in the output record, and changing the element;
Is a computer-implemented tabular data processing method.
複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する表形式データ処理プログラムであって、
複数の前記表形式データを統合するうえで不適切なデータを可視化するための集計規則に基づいてグループに分類した、所定の項目に対応する前記要素の件数を、前記グループごとに集計し、集計結果を出力する集計ステップと、
前記入力データから、前記集計結果における前記グループのいずれかに分類された要素を含むレコードを抽出して出力する出力ステップと、
出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更する修正ステップと、
をコンピュータに実行させる表形式データ処理プログラム。
A tabular data processing program that processes, as input data, tabular data in which a plurality of records including a plurality of elements respectively corresponding to a plurality of items are registered,
Were classified into groups on the basis of incorrect data in order to integrate a plurality of said tabulated data to the aggregation rules for visualizing, the number of the elements corresponding to the predetermined item, and aggregated by the group, An aggregation step for outputting an aggregation result;
From the input data, an output step of extracting and outputting a record including an element classified into any of the groups in the aggregation result,
Receiving a request for change of an element included in the output record, and modifying the element;
Tabular data processing program that causes a computer to execute
JP2015523912A 2013-06-26 2014-05-09 Tabular data processing program, method and apparatus Active JP6623754B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013134184A JP5497948B1 (en) 2013-06-26 2013-06-26 Tabular data processing program, method and apparatus
JP2013134183A JP5497947B1 (en) 2013-06-26 2013-06-26 Tabular data processing program, method and apparatus
JP2013212378A JP6283190B2 (en) 2013-10-09 2013-10-09 Tabular data processing program, method, and apparatus
PCT/JP2014/062498 WO2014208205A1 (en) 2013-06-26 2014-05-09 Program, method, and device for processing tabular data

Publications (2)

Publication Number Publication Date
JPWO2014208205A1 JPWO2014208205A1 (en) 2017-02-23
JP6623754B2 true JP6623754B2 (en) 2019-12-25

Family

ID=52141558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015523912A Active JP6623754B2 (en) 2013-06-26 2014-05-09 Tabular data processing program, method and apparatus

Country Status (2)

Country Link
JP (1) JP6623754B2 (en)
WO (1) WO2014208205A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6668580B2 (en) * 2015-10-06 2020-03-18 前田建設工業株式会社 File editing method, file editing device and file editing program
CN108369584B (en) 2015-11-25 2022-07-08 圆点数据公司 Information processing system, descriptor creation method, and descriptor creation program
CN110476159A (en) 2017-03-30 2019-11-19 日本电气株式会社 Information processing system, characteristic value illustration method and characteristic value read-me
SG11202003814TA (en) 2017-10-05 2020-05-28 Dotdata Inc Feature generating device, feature generating method, and feature generating program
JP2019159837A (en) * 2018-03-13 2019-09-19 日本電気株式会社 Database binding apparatus, database binding method, and database binding program
WO2020188670A1 (en) * 2019-03-15 2020-09-24 株式会社日立製作所 Data integration evaluation system and data integration evaluation method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5375413B2 (en) * 2009-07-30 2013-12-25 富士通株式会社 Data conversion apparatus, data conversion method, and data conversion program
US8429117B2 (en) * 2010-12-28 2013-04-23 Hewlett-Packard Development Company, L.P. Data loading method for a data warehouse

Also Published As

Publication number Publication date
WO2014208205A1 (en) 2014-12-31
JPWO2014208205A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6580737B2 (en) DATA SEARCH DEVICE, DATA SEARCH METHOD, DATA SEARCH PROGRAM, AND RECORDING MEDIUM
JP6283190B2 (en) Tabular data processing program, method, and apparatus
JP6623754B2 (en) Tabular data processing program, method and apparatus
JP4580518B2 (en) Database design system
CN107111639B (en) Building reports
KR101505858B1 (en) A templet-based online composing system for analyzing reports or views of big data by providing past templets of database tables and reference fields
CN116097241A (en) Data preparation using semantic roles
JP5424798B2 (en) METADATA SETTING METHOD, METADATA SETTING SYSTEM, AND PROGRAM
US11809459B2 (en) Using objects in an object model as database entities
Alexander et al. Access 2013 Bible
US20120117093A1 (en) Method and system for fusing data
JP2006146802A (en) Text mining device and method
CN111241176A (en) Data management system
US11599533B2 (en) Analyzing data using data fields from multiple objects in an object model
WO2022215276A1 (en) Data extraction device, data extraction method, data extraction program, data extraction assistance device, data extraction assistance method, and data extraction assistance program
US11977722B2 (en) Interactive patent visualization systems and methods
JP5470308B2 (en) Legal analysis support device, legal analysis support method, and legal analysis support program
JP5497948B1 (en) Tabular data processing program, method and apparatus
JP6244521B2 (en) Database processing program, database processing method, and database processing apparatus
US11232120B1 (en) Schema viewer searching for a data analytics platform
JP5916974B1 (en) Data search device, program, and recording medium
JP5497947B1 (en) Tabular data processing program, method and apparatus
JP6810347B2 (en) Application creation support system
CN115934864A (en) Data asset management method and related device
JP5971571B2 (en) Structural document management system, structural document management method, and program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170405

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191111

R150 Certificate of patent or registration of utility model

Ref document number: 6623754

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150