プロが教える店舗&オフィスのセキュリティ対策術

エクセルの関数をどのように組めば、上下のセル内容を検索して、1個としてカウント出来ますでしょうか?

(例)
      A B  C D
    1  a   a  b a
    2 @  *  @  @
    3 

上記の場合に、A3のセルに『aかつ1つ下のセルの値が@の個数(今回は2)』を計算式で導き出したいのです。

もし、出来る方法があれば教えて下さい。
宜しくお願いします。

質問者からの補足コメント

  • つらい・・・

    書き忘れてしまいましたが、行・列ともにもっとたくさんあります。
    なので、検索範囲は30x30くらいと仮定して下さい。すいません。

      補足日時:2016/04/21 16:59

A 回答 (3件)

結果を表示するセルに


={ SUM( ( 範囲1=条件1 )*( 範囲2 = 条件2)* ・・・・ )}

と記載して配列確定( Ctrl + Shift + Enter ) をする

質問例だと、F1セルに結果を表示するとして、以下の数式を代入。
(配列確定でない場合はエラー)
={ SUM( (A1:D1="a") * ( A2:D2="@") ) }

何をやっているかというと
(A1:D1="a") → 1行目の値がaのセルをTrue、それ以外をFalse
( A2:D2="@") → 2行目の値が@のセルをTrue、それ以外をFalse

Trueはプログラム的には数値の1、Falseは0なので、以下の様なセル内容に置き換えられます

    A B C D
1行目 1 1 0 1
2行目 1 0 1 1

そして、それぞれの列ごとに乗算しているので
{1,1,0、1}*{1,0,1,1}={1,0,0,1}
となり、最後にSumで合計をすると
SUM{1,0,0,1}=2となります
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

とても解りやすい文章で、数式の過程までしっかりと理解出来ました。
私の説明不足により、今回の問題では行列が多くあるため、こちらの方法は難しいですが、今後の作業に活用させて頂きます。

また、何か困ったことがありましたら宜しくお願いします。

お礼日時:2016/04/22 09:25

>上下のセルを1つの物として


>上下のセル内容を検索して
>検索範囲は30x30くらいと仮定して下さい
補足で分からなくなったのですが、2行づつ計算するのか、1番上の行と該当する行の計算でしょうか?
とりあえず、1番上が"a" 同行が"@"として
一案(というか↓3つ同じようなもの)
E2セルに どれでもいいけど
=COUNT(INDEX(1/(A$1:D$1&A2:D2="a@"),))

=COUNT(INDEX(1/((A$1:D$1="a")*(A2:D2="@")),))

=SUMPRODUCT((A$1:D$1="a")*(A2:D2="@"))
下へオートフィル
「エクセル 上下のセルを1つの物としてカウ」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

私の説明不足により、困惑させてしまい申し訳ありません。
『a,b』と『@,*』はそれぞれ同じ行にしか無く、かつ上の行には『a,b』で、すぐ下の行には『@,*』という配列のみなのです。
しかし、こんな便利な数式を教えて頂きありがとうございました。
今後の作業に活用させて頂きます。

また、何か困ったことがありましたら宜しくお願いします。

お礼日時:2016/04/22 09:32

こんにちは!



>検索範囲は30x30くらいと仮定して下さい。

Excel2007以降のバージョンをお使いだとして
表示したいセルに
=COUNTIFS(A1:AD30,"a",A2:AD31,"@")
としてみてください。
検索条件範囲を1行ずらします。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

こちらの方法でピシャリでした。
こんな簡単に出来るとは思いませんでした。素晴らしいです!

また、何か困ったことがありましたら宜しくお願いします。

お礼日時:2016/04/22 09:34

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