• ベストアンサー

エクセルについてです

エクセルのワークシートに小遣い帳(程度の帳簿)を作っています。 日付順に並んでいますが、任意の項目、たとえば「マンガ代」の行だけを 他の場所に並べて表示出来ますか。 集計ではなく、ただ同じ項目を集めて、一覧したいのです。 分る方、ぜひお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

丁寧に作成していけば、普段使いの関数だけでも十分結果を出せます。 添付図: A2に =C2&TEXT(COUNTIF($C$2:C2,C2),"-000;;;") と記入、以下沢山コピー G1に一覧したい項目を記入する事として F3に =IF(ROW(F1)>COUNTIF(C:C,$G$1),"",ROW(F1)) 下向けにほどほどコピー G3に =IF($F3="","",VLOOKUP($G$1&TEXT($F3,"-000"),$A:$D,COLUMN(B3),FALSE)) 右に下にコピーして完成。 検索キーのA列は、邪魔ならA列を「隠す」などしておいてください。 作業列を使わない数式も、まぁやれば出来る方法は幾つかありますが、ご相談のような用途ではすぐにシートが超重たくなってしまって、しっかり調整して使わないと現実には使い物になりませんので注意してください。

takatuka
質問者

お礼

ありがとうございました。 理解するのに苦労しましたが、 何とか出来ました。(理解は七割くらいです。) 丁寧なご指導に感謝いたします。 継続的ご指導をお願いしたいくらいです。 また機会がありましたら、よろしく お願いします。

その他の回答 (4)

回答No.4

No.2 です。一つ、大事なことを言い忘れました。 数式を使っている表で実行する並べ替えには、注意が必要です。横方向のみに参照している数式なら問題ないのですが、縦方向に参照している(表中の他の行から参照している)のにいきなり並べ替えると、計算結果にエラーが発生したりします。小遣い帳ということは、縦にも参照している可能性が高そうですね。 ただし元の順序に戻せば、計算結果も正しくなります。 リボンの並べ替えボタンから実行する場合でも、オートフィルタにより並べ替える場合でも、どちらでも同様になります。 そのようなデータを並べ替えるには、事前に表を別の場所に値複写し(*)、貼り付けた表において並べ替えてください。 * 表をコピーし、「形式を選択して貼り付け」ダイアログ(Ctrl+Alt+V)で「値」を指定して貼り付け なおオートフィルタで、並べ替えではなく指定の値のみに絞り込んだというだけでは、エラーにはなりません。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>日付順に並んでいますが、任意の項目、たとえば「マンガ代」の行だけを他の場所に並べて表示出来ますか。 出来ます。 >集計ではなく、ただ同じ項目を集めて、一覧したいのです。 IF関数、INDEX関数、SMALL関数等を組み合わせて抽出できます。 支出金額の列 =IFERROR(INDEX(D:D,SMALL(IF(B:B="マンガ代",ROW(B$1:B$1000),""),ROWS(B$2:B2)),0),"") この関数式は配列値を扱うので計算式を入力してCtrl+Shift+Enterで確定します。 日付の列 =IFERROR(INDEX(A:A,SMALL(IF(B:B="マンガ代",ROW(B$1:B$1000),""),ROWS(B$2:B2)),0),"") この関数式も同様にCtrl+Shift+Enterで確定します。 Excel 2013での参考画像を添付します。 Excel 2007/2010でも同じことができます。

takatuka
質問者

お礼

ありがとうございます。 みなさんすごいですね。 理解に時間がかかりますので、 しばらく放置をお許しください。 いやー 感謝と感激の 還暦世代です。

回答No.2

No.1 さんのおっしゃっているオートフィルタや並べ替えが簡単かつ実用的で、使用頻度が高いので、お勧めです。 並べ替えでは、日付、通し番号などの列を設けておけば、いつでも元どおりの順番に戻すことができます。 またオートフィルタでは、「指定の値を含む」などのオプションが使えるので、まずまず融通が効きます。オートフィルタをより使いやすくするために、フラグの列を用意して、そこに必要な値を数式などで作製しておくというケースも多々あります。 一応、関係のない位置のセル範囲に SMALL、ROW 関数による配列と INDEX、OFFSET、VLOOKUP 関数などを組み合わせた数式を記入して抽出するという方法も、なくはないです。しかし難解なので、特にお勧めではありません。 この他、マクロにより、指定の値を含むレコード(行)をどこかのセル範囲に書き出していくという方法もあります。この方法のほうが上の難しい数式よりも、Excel の使い方としては真っ当です。この程度の処理ならそれほど難しくはないので、ご希望があるようなら別途、説明します。

takatuka
質問者

お礼

ありがとうございます。 すでに十分な回答をいただいているようですが、 理解能力の関係で少し、放置させてください。 無理かもしれませんが、教わりきれるか考えます。 NO4も、同様に感謝申し上げます。

  • angkor_h
  • ベストアンサー率35% (551/1557)
回答No.1

そのような関数は用意されていないと思います。 一手間かかりますが、  オートフイルターでそれだけを表示してコピーする、  或いは、「並べ替え」でも。 これが一番簡単では無いでしょうか?

takatuka
質問者

お礼

ありがとうございます さっそくのお答に感謝いたします。 少し残念ですが、お教えの方法で取り組んでみます。

関連するQ&A