ITパスポート 2011年 春期 問73
問題文
表のセルA1~C2に値が入力されている。表の値をCSV形式で出力した結果はどれか。ここで、レコード間の区切りは改行コード“”を使用するものとする。

選択肢
ア:月, 1月, 2月 売上高, 500, 600 (正解)
イ:月, 売上高 1月, 500 2月, 600
ウ:月 / 1月 / 2月 売上高 / 500 / 600
エ:月 / 売上高 1月 / 500 2月 / 600
🔒 解説は解答すると表示されます
表のセルA1~C2のCSV出力【ITパスポート 解説】
正解の理由
CSVは「CSV(Comma-Separated Values:カンマ区切りの値)」という形式で、各セルの値を左から右へカンマで区切って並べ、行(レコード)ごとに改行コードで区切ります。問題ではセル A1~C2 に値が入っているので、上段が1行目、下段が2行目の2レコードになります。行の区切りには問題文の通り改行コード“”を使います。したがって、上の行は「月, 1月, 2月」、下の行は「売上高, 500, 600」となり、これを改行()でつなぐ ア が正しい出力です。
ポイント:
- 表の薄い灰色の「A,B,C」や「1,2」は列・行の見出し(ラベル)であり、セルの値ではありません。出力には含めません。
- フィールド区切りはカンマ(,)。選択肢のスラッシュ(/)はCSVで使う区切りではありません。
解法ステップ
- 表の中で値が入っているセルを確認する(A1,B1,C1,A2,B2,C2)。
- 各行(行1と行2)について、左から右へセルの値を並べ、値と値の間をカンマで区切る。
- 行1:A1 = 月、B1 = 1月、C1 = 2月 → 月, 1月, 2月
- 行2:A2 = 売上高、B2 = 500、C2 = 600 → 売上高, 500, 600
- 行(レコード)間は改行コード“”で区切る。
- 結果:月, 1月, 2月 売上高, 500, 600 (改行で終わることが多い)
選択肢別の誤答解説
- ア:正解。上段が1レコード、下段が2レコードで、カンマ区切り+で正しく表現している。
- イ:列優先ではなく、「列ごとに改行している」形になっている。CSVは行単位でレコードを作るため、行1の3つの値を1つのレコードにまとめる必要がある。イは列を縦に並べ替えた形で誤り。
- ウ:スラッシュ「/」を区切りに使っている。CSVはカンマ(,)が標準であり、問題文でもカンマ区切りが前提になっているため不正解。
- エ:ウと同様にスラッシュ区切りかつ行や列の配置が異なるため不正解。表の横並び(行ごと)を正しく表していない。
よくある誤解
- 「A,B,C や 1,2 の見出しも出力される」
→ それらは列・行ラベルであり、セルの値ではありません。CSV出力は実際のセルの値のみを行順・列順で出力します。 - 「区切りに / やタブを使えば同じ」
→ 実務や試験では区切り文字の指定が重要です。問題で「CSV」とある場合はカンマが基本です(別の区切りはTSVなどと呼ばれます)。
補足コラム
- CSV内でフィールドにカンマが含まれる場合は、そのフィールド全体をダブルクオート(")で囲みます。例:「東京都,港区」は "東京都,港区" とします。今回の問題ではセル内にカンマがないため囲む必要はありません。
- 実際のアプリケーションでは、行末に改行()を付けるかどうかで動作が違うことがあります。多くは最後の行にも改行を付けますが、試験問題では「レコード間の区切りは改行」とあるので行と行の間に改行が入ることが重要です。
FAQ
Q. 表の見出し(例えば列名 A,B,C)をCSVに含めるべきですか?
A. 問題で「セルA1~C2に値が入力されている」とある場合は、その範囲の値のみを出力します。見出しは画面表示上のラベルで、値として入力されていなければ含めません。
A. 問題で「セルA1~C2に値が入力されている」とある場合は、その範囲の値のみを出力します。見出しは画面表示上のラベルで、値として入力されていなければ含めません。
Q. は何を表しますか?
A. レコードの区切りに使う「改行コード」を示しています。プログラムやファイルで行を分けるためのコードです。
A. レコードの区切りに使う「改行コード」を示しています。プログラムやファイルで行を分けるためのコードです。
Q. 値にカンマがあった場合はどうしますか?
A. そのフィールドをダブルクオートで囲みます(例:"値, の一部")。
A. そのフィールドをダブルクオートで囲みます(例:"値, の一部")。
関連キーワード: CSV、カンマ区切り、改行コード、セル範囲、データ出力、ファイル形式、フィールド区切り、レコード区切り

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

