- ベストアンサー
配列の統計系の関数
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
回答No3です。 EF列をF列の数字順(多い順)に並べることも 関数でできるのですか? その場合にはC4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A$4:A4,A4)=1,SUMIF(A:A,A4,B:B)+1/A4,"") その後にE4セルには次の式を入力し下方にオートフィルドラッグします。 =IF(ROW(A1)>COUNT(C:C),"",INDEX(A:A,MATCH(LARGE(C:C,ROW(A1)),C:C,0))) F4セルは前回と同様に次の式を入力して下方にオートフィルドラッグします。 なお、E列については表示形式を日付にします。 また、Fのデータが同じ場合には古い日付が上段の行に表示されるようになっています。
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
分かり易くしかも計算を重くしないためには作業列を作って対応します。 C4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A$4:A4,A4)=1,A4,"") E4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>COUNT(C:C),"",SMALL(C:C,ROW(A1))) F4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E4="","",SUMIF(A:A,E4,B:B)) H4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)=1,MIN(A:A),IF(MIN(A:A)+ROW(A1)-1<=MAX(A:A),MIN(A:A)+ROW(A1)-1,"")) I4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(H4="","",SUMIF(A:A,H4,B:B)) なお、C,EおよびH列についてのセルの表示形式は時刻にします。 なお、A列などではA1セルからA3セルの間では文字列の入力はあっても数値のデータは入力されていないものとしています。
補足
すばらしい! 関数でできるとおもってなかったのでびっくりしました。 もしかしてなんですが、 EF列を F列の数字順(多い順)に並べることも 関数でできるのですか?
- chiune
- ベストアンサー率24% (30/124)
CについてはNo.1のご回答が最善かと。 Bは、ピボットテーブルではダメなんでしょうか。
お礼
そうなんです。 データが山ほどあるんで、 ピポットでひとつひとつやるのが、つらくて…
- keithin
- ベストアンサー率66% (5278/7941)
Bについてはデータメニュー(データタブ)の統合などを使った方が簡単に結果を得られますが,結局は関数じゃないとイヤなんでしょうから D4: =IF(ROW(D1)>COUNT(1/FREQUENCY(A:A,A:A)),"",INDEX(A:A,SMALL(IF(ISNUMBER(1/FREQUENCY($A$4:$A$20,$A$4:$A$20)),ROW($A$4:$A$20)),ROW(D1)))) をコントロールキーとシフトキーを押しながらEnterで入力,日付の書式を付けて以下コピー E4: =SUMIF(A:A,D4,B:B) 以下コピー。 Cについては G4: =MIN(A:A) G5: =G4+1 以下コピー H4: =SUMIF(A:A,G4,B:B) 以下コピー。
お礼
ありがとうございました!
補足
すばらしい! ありがとうございました!
お礼
すごすぎる! これまで苦労してた、ピポットや 並べ替え作業をやる必要がなくなりました! 神!(笑) 本当にありがとうございました。