• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2003 条件付でリストを表示 他)

Excel2003 条件付でリストを表示する方法とピボットテーブルの使い方

このQ&Aのポイント
  • Excel2003で条件付でリストを表示する方法についてご教示いたします。具体的には、「入金」と「出金」という条件に応じてリストを表示する方法を説明します。
  • また、Excel2003でデータ入力後に摘要項目ごとに集計し、日付順にプリントするための方法もお伝えします。具体的には、「ピボットテーブル」という機能を利用することで簡単に集計と並び替えを行うことができます。
  • 質問内容に関して、詳細な手順と共に解説いたしますので、Excel2003をお使いの方はぜひ参考にしてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.1です! あちゃぉ~!エラーになってしまいましたか? 確かにExcel2003では数式のコピー&ペーストができませんので、 手入力になってしまいますね。 今Excel2007でやってみて、補足にある数式をそのままコピー&ペーストしてみると ちゃんと表示されました。 数式自体は間違いないと思います。 エラーの原因として考えられることと言えば・・・ (1)Sheet1のC1・D1セルデータと名前定義した「名前」が一致していない。 (2)前回の画像ではB2セル以降を範囲指定した数式でしたので、範囲指定がずれている。 ※ 後者に関してはエラーではなく、行がすれた「リスト」表示されると思います。 パッ!と思いつくのはこの程度ですが、 今一度、Sheet2の名前定義した範囲(2行目以降)を範囲指定してみてください。 名前ボックスに「入金」「出金」と表示される場合はちゃんと名前定義されていますので、 問題ないはずです。 ん~~~ この程度しか判断できません。 あまりお役に立てなくてごめんなさいね。m(__)m

wetshy5
質問者

お礼

わかりました! 初歩的なことですみません。実際に作成しているファイルの表は見出しを付けるためにと上に4行空白行があったんです。当然、式の絶対値(というんでしたっけ?)もずれるわけで、数式の意味をじっくりと考え直していて気付きました。 単純に、書かれた式を挿入して考えもしなかった自分が恥ずかしいです。 とりあえずリストは出来たので、項目ごとの集計はこれから皆さんのご意見を元にやってみます。 有難うございました!^^

wetshy5
質問者

補足

2003では使えない関数ということはあり得ないのでしょうかね。。 再度、教えていただいた事項は確認してみます。 有難うございます!

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.1・5です。 たびたびごめんなさい。 投稿後に気になったのですが・・・ エラーというのは 「元の値はエラーと判断されますが・・・」といったアラートでしょうか? もしそうであれば無視して、「はい」とすれば大丈夫だと思います。 本当のエラーならごめんなさいね。m(__)m

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No2,3です。 並べ替えについてはNo2で示したような関数を使わないでも単なる並べ替えの操作で対応できますね。 A5セルからF列の終わりの行までを選択してから「ホーム」タブの「並べ替えとフィルター」で「ユーザー設定の並べ替え」を選択します。 最優先されるキーにはB5の摘要を選んで「昇順」とします。 同じ画面の左上にある「レベルの追加」を選択して次の優先されるキーにはA5の日付」を選び「昇順」としてOKします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。 印刷などでG列が目障りでしたらG列を選択して右クリックし、「非表示」を選択すればよいでしょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

最初のご質問の件ですがお示しの表がシート1に有るとしてリスト表示させたい項目についてはシート2を利用してA列には出金の場合の摘要項目名をA1セルは空白にしてA2セルから下方に並べます。また、入金の場合の摘要項目名をB1セルは空白にしてB2セルから下方に並べます。 その後にシート1に移ってB6セルは繰越の項目が入るでしょうからB7セルから下方の行を選択して、「データ」タブの「データの入力規則」をクリックします。入力値の種類の窓では「リスト」を選択し、元の値の窓には次の式を入力してOKします。 =IF(C6<>"",Sheet2!$A:$A,IF(D6<>"",Sheet2!$B:$B,"")) 摘要項目ごとにデータを並べて表示する。また、日付を昇順で表示する。そのためには作業列を作って対応するのがよいでしょう。 G5セルには抽出用とでも項目名を入力し、その後にG6セルには次の式を入力して下方にドラッグコピーします。 =IF(A6="","",IF(ROW(A1)=1,1000,IF(COUNTIF(B$6:B6,B6)=1,ROUNDDOWN(MAX(G$5:G5),-8)+100000000+A6*1000,ROUNDDOWN(INDEX(G$5:G5,MATCH(B6,B$5:B5,0)),-8)+A6*1000+COUNTIF(B$5:B5,B6)))) その後にG5セルを選択してから「ホーム」タブの「並べ替えとフィルター」から「フィルター」を選択し、「昇順」で並べ替えを行います。 これで項目別に日付は昇順で整理することができます。

wetshy5
質問者

補足

ありがとうございます。 ご指導どおりに実行してみますと、 「抽出条件 データの入力規則で、他のワークシートまたはブックへの参照は使用しません。」と出てしまいます。 何が悪いのでしょうか。。。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 勘定科目を選択 → 金額入力 の順が普通だと思いますが、 ご希望としては金額を入金した後に勘定科目(摘要の欄に項目をリスト表示したい!というコトですね? 一例です。 ↓の画像で左側がSheet1で右側がSheet2です。 Sheet2に項目表を作成しておきます。 Sheet2のA2~A8(すべての項目)を選択 → 名前ボックス(画面左上のセル番地が表示されているところ)に 入金 と入力しEnter! 同様にB2~B8セルを範囲指定 → 名前ボックスに 出金 と入力しEnter! これでSheet2のA2~A8セルが「入金」・B2~B8セルが「出金」と名前定義されました。 (A1~A8セルを範囲指定 → メニュー → 挿入 → 名前 → 作成 → 「上端行」を選択してもOK) 次にSheet1のB2セル以降を範囲指定 → メニュー → データ → 入力規則 → リスト を選択 元の値の欄に =INDIRECT(INDEX(C$1:D$1,,SUMPRODUCT((C2:D2<>"")*(COLUMN(A1:B1))))) としてOK 何とか希望に近い形にならないでしょうか? 次に >データ入力完了後、摘要項目ごとに集計したいので・・・ の件について どんな方法でも構わないと思います。 SUBTOTAL関数を使用すると、オートフィルタとの兼用で項目ごとの集計も可能です。 この方法に関しては長くなりますので、調べてみてください。 ※ SUBTOTAL関数の「集計方法」は「9」になります。 参考になりますかね?m(_ _)m

wetshy5
質問者

補足

早速のご回答有難うございます。一点目の質問の回答どおりやってみました。 元の値の欄にも =INDIRECT(INDEX(C$1:D$1,,SUMPRODUCT((C2:D2<>"")*(COLUMN(A1:B1))))) と入れてokにするとエラーになります。その欄はコミペが出来なかったので手入力しましたが、何回も確認して誤字はないと思います。指定するセルの位置も指示どおりにしたつもりなのですが。。。 何が間違っているかわからなく困っています。 もちろん前段でのSheet2の名前の定義もしてあります。

関連するQ&A

専門家に質問してみよう