Excelでの指定した並べ替えと表わけ

このQ&Aのポイント
  • Excelで指定した並べ替えを自動的にする方法や、行ごとの並べ替えの方法を教えてください。
  • Excelで種類ごとの売り上げの有無を数える方法や、特定の文字列や空白を無かった件数として数える方法を教えてください。
  • Excelで種類と値段ごとの合計数を計算する方法を教えてください。手入力による間違いを防ぎたいです。
回答を見る
  • ベストアンサー

Excel(エクセル)での指定した並べ替えと表わけ

まず Excelでの 指定した並べ替えを自動的にする事は可能でしょうか? 例えば図1のように 50音順ではなく りんご→みかん→スイカ→モモの順番で並べ替えたいです。 この時、行ごとの並べ替えをしたいです。 次に図2のように 種類ごとの売り上げがあった件数と無かった件数を数えたいです。 「文字列」や「空白」は無かった件数として数えたいです。 (セルF2~G5に入る関数式を教えて欲しいです。) 最後に 種類&値段ごとの合計数が知りたいです。 (セルB2~E5に入る関数式を教えて欲しいです。) 今まで手入力をしていたのですが、 何度も何度も数え間違いや合計間違いをしてしまい 上司には怒られ呆れられ 関係者へは迷惑をかなりかけました。 もし手入力せずに済む 上記のようなことが可能であるならば、ぜひ教えてください!! よろしくお願い致します!!

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

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

Excel2007以降を使っているならCOUNTIFS、SUMIFS関数で求められますが、何を使っているのですか。 とりあえず次の通り作成します。 手順1. ツールメニューのオプションの「ユーザー設定リスト」で、あなたの思っている並び順の通りに りんご みかん スイカ モモ と登録します 手順2. 表全体をまず値段の昇順で並べ替え、続けて種類の昇順で、並べ替えのオプションで登録したユーザー設定リストを指定して、並べ替えます 手順3: シート1に元のリスト(並べ替える前でもあとでも)があるとして。 シート2に図2の左の表を、縦項目と横項目をキチンと用意して。 G2には =SUMPRODUCT((Sheet1!$A$2:$A$100=A2)*(Sheet1!$C$2:$C$100="")) F2には =COUNTIF(Sheet1!A:A,A2)-G2 それぞれ下にコピー B2には =SUMPRODUCT((Sheet1!$A$2:$A$100=$A2)*((Sheet1!$B$2:$B$100=B$1)*Sheet1!$C$2:$C$100+(Sheet1!$D$2:$D$100=B$1)*Sheet1!$E$2:$E$100)) 右にコピー、下にコピー。 #補足 「種類の一覧」や「出てくる値段の一覧」は、エクセルの機能を使いたとえばデータメニューのフィルタの「フィルタオプションの設定」で「重複を無視する」を利用して収集し、漏れの無いようにリストアップします。 ネットで「フィルタオプションの設定」で検索して、使えるようになってください。

miruo_o
質問者

お礼

私のパソコン内のExcel2007でやってみたらできました! 丁寧な手順も書いていただき、とても参考になりました ありがとうございました。

miruo_o
質問者

補足

さっそくの回答をありがとうございます。 同僚に確認したところ、Excel2003とのことでした。

その他の回答 (1)

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

すべての答えを出すには式がたくさんになって大変ですが一度こちらが述べる通りで試験してみてください。 図1の表がシート1に有るとします。 指定する通りの果物の名前や順序はデータベースとしてシート3のA2セルから下方に入力します。 そこで作業になりますがシート1には作業列を設けF2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",MATCH(A2,Sheet3!A$2:A$500,0)*10000+IF(ISNUMBER(B2),B2,IF(B2="",9000,9500))) G2セルには次の式を入力して下方にドラッグコピーします。 =IF(OR(A2="",D2=""),"",MATCH(A2,Sheet3!A$2:A$500,0)*10000+D2) そこでお求めの表はシート2に表示させることにします。 シート2での作業は次のようにします。 A1セルからE1セルにはシート1と同じ項目名を入力します。 A2セルには次の式を入力してE2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>COUNT(Sheet1!$F:$F),"",IF(INDEX(Sheet1!$A:$E,MATCH(SMALL(Sheet1!$F:$F,ROW(A1)),Sheet1!$F:$F,0),COLUMN(A1))=0,"",INDEX(Sheet1!$A:$E,MATCH(SMALL(Sheet1!$F:$F,ROW(A1)),Sheet1!$F:$F,0),COLUMN(A1)))) シート1のデータがシート3で指おまけねだんが定した果物の名前順に表示されます。 つぎにお求めの表ですが例えばI1セルから1000、500、350、20、売り有り件数、無し件数とN1セルまでに入力します。 H2セルには次の式を入力して下方にドラッグコピーします。 =IF(Sheet3!A2=0,"",Sheet3!A2) I2セルには次の式を入力してK2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ISERROR(INDEX(Sheet1!$C:$C,IF(COUNTIF(Sheet1!$F:$F,ROW(A1)*10000+I$1),MATCH(ROW(A1)*10000+I$1,Sheet1!$F:$F,0),MATCH(ROW(A1)*10000+I$1+1,Sheet1!$F:$F,0)))),"",INDEX(Sheet1!$C:$C,IF(COUNTIF(Sheet1!$F:$F,ROW(A1)*10000+I$1),MATCH(ROW(A1)*10000+I$1,Sheet1!$F:$F,0),MATCH(ROW(A1)*10000+I$1+1,Sheet1!$F:$F,0)))) L2セルには次の式を入力し下方にドラッグコピーします。 =IF(ISERROR(INDEX(Sheet1!$E:$E,MATCH(ROW(A1)*10000+L$1,Sheet1!$G:$G,0))),"",INDEX(Sheet1!$E:$E,MATCH(ROW(A1)*10000+L$1,Sheet1!$G:$G,0))) M2セルには次の式を入力して下方にドラッグコピーします。 =IF(H2="","",COUNTIF(Sheet1!$F:$F,">"&ROW(A1)*10000)-COUNTIF(Sheet1!$F:$F,">="&ROW(A1)*10000+9000)) N2セルには次の式を入力し下方にドラッグコピーします。 =IF(H2="","",IF(COUNTIF(Sheet1!$F:$F,ROW(A1)*10000+9000)=0,"",COUNTIF(Sheet1!$F:$F,ROW(A1)*10000+9000))) これでお求めの表は完成しますが売りの値段が1000,500,350の他にある場合でしたらその数値をK1セルの横に並べてI2の式をその列までドラッグコピーする操作をすればできるようになります。その場合には最初のL列からN列は右にずれることになります。同様に20円の他にもおまけの値段が有るでしょう。その時には20の横にそれらの値段を並べ、L2への入力した式をそれらの列まで横にドラックコピーすればよいでしょう。 すべてが関数で処理されます。並べ替えなどの操作を必要としません。

miruo_o
質問者

お礼

本当に魔法のような式を丁寧に書いていただき ありがとうございました。 よくわからないながらも 書いていただいた文を手順通りにコピペしてみました。 ありがとうございました。

関連するQ&A

  • エクセルの並べ替えで動作がおかしいので、わけが知りたい。

    エクセル2000で並べ替えをやっていますが、セルに、大文字の英字を入力すると、並べ替えができません。 例1 A1:A10のセルにAAA,1,2,3,.....と入力し、昇順と降順を交互に押しても、AAAの位置は変わらない。 例2 A1:A10のセルにaaa,1,2,3,.....と入力したら、正常に並び替えができる。 例3 A1:A10のセルにAAA,BBB,2,3,.....と入力したら、正常に並び替えができる。 実際は、A6:J1500の表でA6:A1500には=IF(C6=C$5,1,0)という式が入っており、B6:B1500には日付け、C6:C1500には会社名、D6:J1500には数字と、数式が入っています。C5セルに会社名を入力し降順で並べ替えをやっています。C6セルに、英大文字を入れたら並び替えができなくなりました。 エクセルを再インストールすれば直りますでしょうか。 よろしくお願いします。 

  • VLOOKUP関数が入ったリストの並べ替え

    並べ替えの結果、「検索値」のセル番号も「並べ替え後」の値に変わってほしいのですが、「並べ替え前」の値のままです。なにか方法はないものでしょうか? 例 並べ替え前 関数式が入ったセル:B4 検索値:A4 並べ替え後 関数式が入ったセル:B100 検索値:A4 これを 並べ替え後 関数式が入ったセル:B100 検索値:A100 にしたいのですが・・・。

  • ExcelのIF関数を使って

    エクセルのことについて教えて下さい。 エクセル2003のIF関数を使って、次のようなことがしたいのですが、どのようにしたらいいでしょうか? 例えば、A1のセルに1と入力したら、B1のセルにミカンと自動的入力され、2と入力したらバナナ、3と入力したらモモ・・・・となるようにです。(A1セルには1から5までの数字が入ります。) よろしくお願いします。

  • エクセルの並べ替え・・・

    エクセルで並べ替えをしたいんですが、思うようにいきません。教えてください。 A列:日にち B列:ナンバー C列:名前   が入っています。 C列には、関数が入っています。 B列にナンバーを入力すると、名前が自然に入るようになっています。 関数は、 =IF(B2="","",VLOOKUP(B2,' 名 簿 '!$A:$B,2,FALSE)) です。 A~C列を選択して、 C列(名前順)に並び替えをすると、(データ→並び替え) 空欄のセルが上の方に来て、日にち、NOが入力されているセルは、下の方で並び替えされている状態です。 入力されているセルを上にするには、どのようにすればいいのか、教えてください

  • 次のような場合のエクセルの関数の使い方を教えてください。

    よろしくお願いします。エクセルで家計簿を作ったみました。簡単なものなんですが統計を出すのに関数を使うと楽だと聞いたので挑戦してみようと考えたんですが、難しいです。A列に各費目(電気代、食費等)がありD列にその値段があります。毎日買い物等をしたたびに書き込んでいくので各費目それぞれの合計を出すのにその月が終わった後に並べ替えをして合計していますが、できれば費目ごと入力するたびに合計を任意のセルに表したいと思っています。何らかの関数を使えばできるでしょうか?わかりづらい質問で申し訳ございません。どうぞよろしくお願いします。

  • エクセルの並べ替えがうまくできません。

    お世話になっております。売掛管理の為、(2000人)を合計、定額部分、定率部分というように、3枚のシートに分けて、入力しておりまして、B5からB2000にあ-1、あ-2・・か-1のように、名前を区分けして管理しております。シート1にはシート2とシート3の合計がくるようになっておりまして、あ-1、あ-2・・か-1はシート2とシート3にリンクさせておりまして、数式や関数が入っております。この場合、挿入をすると、数式や関数が自動的に入らない為、例えば、あ-3を後で入れる場合、行の最後に入れておりますが、印刷する時にだけあ-3をあ-2の次に表示というように、シート1で並べ替えとフィルタでやってみた所、シート1はできましたが、シート2のリンクさせているB5からB2000は並べ変わりましたが、DからBLまで、(1)期日、入金日、未収状況、入金額、残額、(2)期日、入金日、・・・・繰り返して入力してあるのですが、DからBLまでの部分は元のままで、ずれてしまい

  • 下記表の合計をINDIRECT関数(フィルハンドル)で表示するには(エクセル)

    下記のような表があり、答えは分かっているのですが 1~10組までの明細シートが分かれており、合計値は各シートのF16セルにあります。これの合計値をINDIRECT関数を使って統括用別シートのC列に表示させたく、C2セルに次の式を入力し8250の値が表示され、それを下のセルにフィル操作でドラッグコピーしたのですが全て同じ8250の値が表示されてしまいます。この式をそのセル番地にあわせて手入力すると正確な数値が出ます。何故こうなるのか?よく分かりません。  =INDIRECT(A2&"!F16")=8250 C3セルにフィルドラッグコピー=8250×⇒1950ならない。手入力で=INDIRECT(A3&"!F16")=1950となるが セルの参照の仕方、式の組立が悪いのでしょうか?インターネットのエクセルHPからサンプルファイルにはそれで答えがでると表記してありましたがその通りにならず、この関数理屈がよく分かりません。  効率よくコピー、貼付するにはどうすれば良いのでしょうか? A B C 1 組名 組合員数 合計 2 1組 5 8250 3 2組 1 1950 4 3組 4 7180 5 4組 6 7980 6 5組 10 17290 7 6組 9 19810 8 7組 11 19330 9 8組 8 15470 10 9組 4 7900 11 10組 9 14370 12 合計 67 119530

  • エクセルの関数について

    エクセルの関数について困っております。 関数については、詳しくありません。お力をおかし下さい。 添付にある図の、sheet1 のリンゴ ミカン ブドウ を sheet2 の別のセルに、リンゴ.ミカン.ブドウと入力した際、その下に記入してある11111111111111 の数字を、同じように反映する為には、sheet2 のリンゴ等の文字の下には、どの様な関数を入れればよいですか? 関数でそこまで出来るのでしょうか? よろしくお願いします。  

  • Excelでの文字列とりだしについて

    Excel(version2013)について質問です。 ある文字列を検索範囲内で検索し、みつかった場合、 その文字列を返すようにしたいです、どのような関数を使えば宜しいでしょうか。 例えば下記A列に検索したいリスト(りんご、ばなな、ぶどう)があり、 検索したい範囲がD1~E5とします。 その場合、B列に関数を使った式を入れ、 りんご、ばなな、空文字、りんご、ぶどうと並ぶようにしたいです。 どのような関数を使えば宜しいでしょうか。       A         B      C      D        E 1  りんご   (式)        りんご  みかん 2  ばなな  (式)        ばなな すいか 3  ぶどう   (式)        すいか みかん 4              (式)        りんご  すいか      5              (式)        ぶどう  みかん                                      

  • エクセルでの表(関数)について

    いつもお世話になっております。 また、お力添えをお願いします。 例えですが下記添付画像のような表を作りたいと思っています。 A表には、果物の種類(りんご、みかん、スイカ、ぶどう)、個数、購入年月日を入力します。 A表で入力したデータをB表に表示させるにはどうしたらいいのでしょうか。 よろしくお願いします。

専門家に質問してみよう