質問: エクセル等でのデータ抽出 こんばんは、愚生は、エクセルデータベースの全くの初心者でございます。以下の質問をさせていただきたく、ブログをたてたせてもらいました。 以下のようなa列に日付;b列に地名;c列に数値が載せたtableがございます。(行数は総計約5000程度まで続きます) a1: 2009/10/3, b1: 東京; c1: 12000 a2: 2009/10/3, b2: 大阪; c2: 10000 a3: 2009/10/3, b3: 名古屋; c3: 7000 a4: 2009/10/3, b4: 京都; c4: 3000 a5: 2009/10/3, b5: 金沢; c5: 500 a6: 2009/10/3, b6: 神戸; c6: 4000 a7: 2009/10/5, b7: 大阪; c7: 7000 a8: 2009/10/5, b8: 東京; c8: 8000 a9: 2009/10/5, b9: 京都; c9: 5000 a10: 2009/10/5, b10: 横浜 c10; 4000 a11: 2009/10/6, b11: 東京; c11: 9000 a12: 2009/10/6, b12: 大阪; c12: 7000 a13: 2009/10/6, b13: 名古屋; c13; 8000 a14: 2009/10/6, b14: 京都; c14: 4000 a15: 2009/10/6, b10: 横浜; c15: 5000 2009/10/3には計6個のデータがあります 2009/10/3には計4個のデータがあります 2009/10/6には計5個のデータがあります → 「各日にちごとに、c列の値が大きい順にベスト3ずつを選び、表示させたい訳でございます。」 a1: 2009/10/3, b1: 東京; c1: 12000 a2: 2009/10/3, b2: 大阪; c2: 10000 a3: 2009/10/3, b3: 名古屋; c3: 7000 」 a4: 2009/10/5, b6: 東京; c6: 8000 a5: 2009/10/5, b7: 大阪; c7: 7000 a6: 2009/10/5, b8: 京都; c8: 5000 」 a7: 2009/10/6, b9: 東京; c9: 9000 a8: 2009/10/6, b10: 名古屋 c10; 8000 a9: 2009/10/6, b11: 大阪; c11: 7000 」 もし、mysql (sql server)等のデータベストソフトが必要な場合も、対処させていただきます。 それでは、よろしくお願い申し上げます。
回答: まず、a列-昇順、c列-降順で、並べ替えしておきます(図のa~c列) 図で、 e6 =if(and($a6=$a5,$a6=$a4,$a6=$a3),"*",a6) とし、f,g列にもコピーし、下にもコピーします (3~5行まではa~c列をそのままコピーしておく) これで、上位3位が表示され、4位以下は「*」表示になります 次に、出来たe~g列をコピーして、i~k列に「形式を選択」で「値」貼り付けします そうして、もう一度e~g列をソートすると1~3位分づつが残ります