【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード

お世話になります。
表題のとおり、Excelに関してです。

例えば
1/1 A
1/3 A
1/3 A
1/6 A
1/1 B
1/1 B

というデータがあったとき、3と返す計算式は存在するでしょうか。
(Aが2つ以上の日付なので2、Bは日付1つなので1、合計3)
何列追加や置換をしても構いません。

アクセスログで、再アクセスしたアカウントがいくつあるのかを知りたいのですが、うまい関数が思いつかず…。
(日付列と名前列を足して1セルにまとめたりしたのですが、そうすると値は4になってしまう)
お詳しい方、ご教授頂けますと幸いです。

A 回答 (3件)

こういう時こそ「ピボットテーブル」!

    • good
    • 0

A列に使用した日付、B列に名前があるとする。



1/1 鈴木
1/3 鈴木
1/3 鈴木
1/6 鈴木
1/1 佐藤
1/1 佐藤

鈴木と佐藤がそれぞれ使用した日数を求めなさい。

…ならば。
A列とB列の組み合わせの数を数えればよいという事になる。
C1セルに
 =COUNTIFS(A$1:A1,A1,B$1:B1,B1)
と入力し、必要な行までコピーする。
すると、
1/1 鈴木 1
1/3 鈴木 1
1/3 鈴木 2
1/6 鈴木 1
1/1 佐藤 1
1/1 佐藤 2
となる。
これは、名前と日付が一致している数を数えているのだが、
2以上の数を無視し、1だけに注目すると名前に対する日付の数を数えることができる。
続いて
D1セルに、
=COUNTIFS(B:B,"鈴木",C:C,1)
D2セルに、
=COUNTIFS(B:B,"佐藤",C:C,1)
ここで名前に対する日付の数を数える。
引き続き
E1セルに
 =IF(D1>2,2,D1)
E2セルに
 =IF(D2>2,2,D2)
これで2を超えるカウントは2に置き換えられる。
さらに
F1セルに
 =SUM(D1:D2)
で合計。
などとしてはどうか。

作業列が増えても差し障りは無いのでしょ?
それにこの方が、何をやっているのか一目瞭然。
途中結果を表示しているので、意図しない結果になる場合にどこで間違えているのかを確認しやすいです。
・・・
実は配列数式で一発…ができなかったのだw


※COUNTIFS関数はExcel2007から追加された関数です。
 Excel2003などで使用する場合は、SUMPRODUCT関数を使うなど工夫してみてください。
    • good
    • 0

No.2 銀鱗さんと同じく、作業列を使いまくりです。


説明は難しいのですが、やってみれば「あ~、こんな感じね」って分かると思います。

C1セル =COUNTIFS($A$1:$A1,$A1,$B$1:$B1,$B1)=1
D1セル =COUNTIFS($B$1:$B1,$B1,$C$1:$C1,$C1)<=2
C1:D1を範囲選択して、下にオートフィル。

E1セルに =COUNTIFS($C:$C,TRUE,$D:$D,TRUE) で答えが出ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!