Excel関数での複数条件指定時の式を教えてください。

A列   B列
DD     ID
あ     あ
12    12
ー     11
11     ー
ー    ー 

このようなデータが入った表から以下の条件でデータを抽出できる関数はありますでしょうか?

(1)A列に文字、数字が存在してB列にも文字、数字が存在するデータの件数を求める。
(2)A列に文字、数字が存在してB列に ー が存在するデータの件数を求める。
(3)A列に - が存在してB列にも ー が存在するデータの件数を求める。

ご存知の方がいらっしゃいましたらよろしくお願いします。
Excelは2003を使用しています。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

 複数条件に合致する件数をカウントする場合には、SUMPRODUCT関数を使用します。


 例えば、A列とB列に、データーが2行目から99行目にかけて存在している場合には、


>(1)A列に文字、数字が存在してB列にも文字、数字が存在するデータの件数を求める。

=SUMPRODUCT((A2:A99<>"")*(B2:B99<>""))


>(2)A列に文字、数字が存在してB列に ー が存在するデータの件数を求める。

=SUMPRODUCT((A2:A99<>"")*(B2:B99="ー"))


>(3)A列に - が存在してB列にも ー が存在するデータの件数を求める。

 そのための関数は、次の様になります。

=SUMPRODUCT((A2:A99="-")*(B2:B99="ー"))

 尚、- と ー は別の文字で、御質問文中の例の中には、- は1個もありませんから、御質問文中の例そのままでは、条件に合う件数は無く、答えは0になります。( - と - も別の文字です)
 因みに、A列に ー が存在してB列にも ー が存在するデータの件数を求める関数は、次の様になります。

=SUMPRODUCT((A2:A99="ー")*(B2:B99="ー"))
    • good
    • 0

こんばんは



Excel2007ならばCountifs関数がありますが、Excel20032はありません。
そこで、作業列を使います。
(1)ならば、
C2に
=IF(ISBLANK(A2),0,1)*IF(ISBLANK(B2),0,1)
以下オートフィル
D2に
=SUM(C:C)
でできます。

(2)は上記の
C2に を
=IF(ISBLANK(A2),0,1)*IF(B2="ー",1,0)
以下、オートフィルとします。

(3)は
=IF(A2="ー",1,0)*IF(B2="ー",1,0)
です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
オートフィルを使用するという考えはまったく思いつきませんでした。
やってみた所、無事に値が返ってきて解決することが出来ました。
どうもありがとうございました。

お礼日時:2011/04/17 16:03

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの、複数条件指定の合計を出すSUMIFS関数の末尾の「 S」は、何の意味でしょうか?

エクセルの、複数条件指定の合計を出す、SUMIFS関数の末尾の「 S」は、何の意味でしょうか?
別にある単数条件指定の合計を出す関数の「SUMIF」関数との区別で気になっています。

詳しい方がいましたら、ご回答、よろしくお願いします。

Aベストアンサー

こんにちは!

SUMIF関数は検索条件がひとつの場合の「合計」に使用する関数ですが、
SUMIFS関数関数は複数条件に対応できる関数になります。
その意味での「s」になるのではないでしょうか?

※ Excel2007以降では同じような関数で
COUNTIFS関数・AVERAGEIFS関数等が準備されています。m(_ _)m

Qif条件の複数指定

基本的な質問ですみません。

Bシェルのif条件文で、例えば
「変数"$VAL"の値が"A"でも"B"でも"C"でもなかった場合はエラーを出力してexitさせる」
という処理を行いたいとします。
("A"、"B"、"C"の場合は何もせず)

もっともシンプルな構文はどういったものになるでしょうか?

宜しくお願い致します。

Aベストアンサー

if [ "${VAL}" != 'A' -a "${VAL}" != 'B' -a "${VAL}" != 'C' ]; then
echo 'ERROR'
fi

とか

case "${VAL}" in
'A') ;;
'B') ;;
'C') ;;
*) echo 'ERROR' ;;
esac

とかいうのはどうでしょうか。

Qエクセル関数(IF)のある条件公式の意味は?

ある商品の売買に関する下記のエクセル関数(IF)のある条件公式の意味がわかりません。
どなたか、教えていただけましたら嬉しく思います。

fx=IF(H28>$F$6,IF(F28>1,"売","-"),
IF(H28<-$F$6,IF(F28>1,"買","-"),"-"))

前半の部分は、Fから6(?)の値がH28の値よりも小さいとき、
かつF28の値が1よりも大きいときは売。
後半の部分はFから6(?)の値がH28よりも大きいとき、
かつF28の値が1より大きいときは買。
という指示ではないかと思いますが正しいのでしょうか?

この条件の公式なのですが、意味がわかりません。
よろしくお願いします。

Aベストアンサー

参考に
=IF(F28>1,IF(H28>$F$6,"売",IF(H28<-$F$6,"買","-")),"-")
式をこのようにすることもできます。
売買の条件
1.F28>1 であること
2.H28>F6 ならば 「売」
3.H28<-F6 ならば 「買」
4.1~3に当てはまらない場合はすべて 「-」

QExcel countifの複数条件

Excelで作成したリストで年代別且つ、男女別を求める関数をご教示下さい。

年代別は、
=COUNTIF(A1:A10,">19")-COUNTIF(A1:A10,">29")
で20代に人数を求めることが出来るかと思います。

また、男女別は、
=COUNTIF(C1:C10"男")
で求められると思います。

これらを両方一緒に求める関数はありますでしょうか?
ご教示お願いいたします。

Aベストアンサー

>両方一緒に求める関数はありますでしょうか?

年齢はA列のA1~A10の範囲
性別はC列のC1~C10の範囲 として・・・

複数条件ですので一つ目の数式は「SUMPRODUCT」関数を使って・・・
答えを返すセル位置をクリックして
=SUMPRODUCT((A1:A10>=20)*(A1:A10<30)*(C1:C10="男")) の式を使う方法

Excelのバージョンが2007以降の場合は
=COUNTIFS(A1:A10,">=20",A1:A10,"<30",C1:C10,"男") の式を使う事も出来ます

Qこのポイント獲得条件の意味がわからないんですけど分かりやすく説明してくれる方お願いします(T_T)

このポイント獲得条件の意味がわからないんですけど分かりやすく説明してくれる方お願いします(T_T)

Aベストアンサー

「インストールしてアプリ起動」と書いてありますね。そのままです。
上のボタンから、AppStoreにへ入って、ダウンロード。アプリ起動です。
大抵はアプリ起動後にブラウザが勝手に立ち上がります。遷移しない場合はポイント付かない(失敗)してる事が多いです。(なお、失敗したと思ってやり直し2度めインストールしても付きません。1度インストールしてるため)

こういったポイント付くと書いてあっても、ポイント付かない場合もあります。
特定のゲーム会社のもので付かないという事があります。(偽広告?)
すぐポイントと書いてあっても、5分後ぐらいの事もあります。

QExcelのVBAマクロ作成で他のExcelから条件つきでデータを取り込みたい

毎日の在庫データが記載されたファイル群の中から特定のデータのみを他のファイル(貼付け先ファイル)の一つのシートに縦一列にして取り込みたいのですがどうすればよいのでしょう?

具体的には…
・在庫データは年ごとにファイルが分かれている(ファイル名「在庫2003年.xls」など)

・在庫データファイルは月ごとにシートが分かれている(シート名「2003年04月」など)

・シートの中のA列に「日付」(上記のシートなら2003/4/1から2003/4/30まで)、D列に「製品A在庫数」、F列に「製品B在庫数」が入力されており他の列にも様々なデータが入力されている。

・貼付け先ファイルはA列に日付(2000/1/1~2006/12/10)が入力されている。

この状況で、例えば2003年4月と指定してマクロを実行すると、指定の在庫データファイルのシートから「製品A在庫数」と「製品B在庫数」を貼り付け先ファイルの、日付に対応したB列、C列の部分に入力してくれるようにしたいのですが、VBAの記述の仕方がわかりません。どうすればよいのでしょう?

お願いします!

毎日の在庫データが記載されたファイル群の中から特定のデータのみを他のファイル(貼付け先ファイル)の一つのシートに縦一列にして取り込みたいのですがどうすればよいのでしょう?

具体的には…
・在庫データは年ごとにファイルが分かれている(ファイル名「在庫2003年.xls」など)

・在庫データファイルは月ごとにシートが分かれている(シート名「2003年04月」など)

・シートの中のA列に「日付」(上記のシートなら2003/4/1から2003/4/30まで)、D列に「製品A在庫数」、F列に「製品B在庫数」...続きを読む

Aベストアンサー

マクロを使わなくても、vlookup関数を使えば実現できます。
ただ、ファイルの大きさにもよりますが、かなり重い処理になってしまうと思います。

2003年4月に対応する、日付のB列に

=vlookup(A1, [在庫2003年.xls]2003年04月!A$1:D$1000, 4)

C列には

=vlookup(A1, [在庫2003年.xls]2003年04月!A$1:F$1000, 6)

と入力します。
上記「A1」は日付の記入されているセルのアドレスに書き換えてください。
また、A$1:D$1000およびA$1:F$1000の最後の「1000」は、2003年04月シートのデータ数に応じて書き換えます。
後は、この数式を下方向にコピーしてやれば、データが書き換わるはずです。

Q戦略的互恵関係の成立条件とその意味とは?

戦略的互恵関係の成立条件とその意味とは?

最近、国会の予算委員会をラジオで聞いていると「戦略的互恵関係」という言葉が頻繁に聞こえてくるのですが、意味がわからないのです。
まあ、主義主張が同じ国であれば「互恵関係」は成立すると思いますが、主義主張が全く異なる国との間に「戦略的互恵関係」など存在し得ないように思うのですが、どのような考えや哲学で主義主張が全く異なる国家間で「戦略的互恵関係」なるものが成立するものなのでしょうか?
成立するとなれば、どのようなものでしょうか? 
強いて追加すると、北朝鮮とは「戦略的互恵関係」は成立しないですよね。同質同根の中国とも同じですよね。
どういう成立条件で何を意味するのかをお教え願いたい。

Aベストアンサー

+共産主義を標榜する共産党の答弁の方がむしろ哲学的ですね。では彼らはなんなのでしょうね。

原理主義者です。

原理主義者には、聖書・聖典があります。

工作部員とプランナーの役割分担と言い換えることでしょう。

鉄砲玉兵卒とイマームといっても良いかもしれません。

社会主義者を装う共産主義者の特徴として

孤立する(自分はゲリラだと思っている)。
人間はうんざり。(家族関係がギクシャクしている)
世界の景色こそ大事。人間は邪魔。

基本的に組織はいらないと主張するが、
政党・病院は、戦略的互恵関係に基づき、常に組織は利用している。
損をしたと感じたら、社会性がないと主張する。(愛は損得関係だと思っている)

「宗族社会」を理想の社会と思い込み、「変な過疎村」が現存する原始共産主義だと勘違いしている)
自分の考えが聖典。(そういう意味では新教キリスト的)

共産党は政権を取れないから投票しない。というのも戦略的互恵関係です。
同党が政権を取れば真っ先に指導的立場に就職したいと思っている。

民主党に対してそう考えているように、
共産党が、政権をとれば
いままでこの党には何かあると思っていた。と饒舌さを発揮し、取り入ろうとするはずです。

自己中心を基礎とした戦略的どっちつかず。
便所に行くことさえ「精神的充足」と名づける「俗物唯物論者」です。
自分に合う人がいないといつも半泣きの顔をさらけ出している不幸な人たちです。

+共産主義を標榜する共産党の答弁の方がむしろ哲学的ですね。では彼らはなんなのでしょうね。

原理主義者です。

原理主義者には、聖書・聖典があります。

工作部員とプランナーの役割分担と言い換えることでしょう。

鉄砲玉兵卒とイマームといっても良いかもしれません。

社会主義者を装う共産主義者の特徴として

孤立する(自分はゲリラだと思っている)。
人間はうんざり。(家族関係がギクシャクしている)
世界の景色こそ大事。人間は邪魔。

基本的に組織はいらないと主張するが、
政党・病院は、戦略的互...続きを読む

Qqmailでの複数LANインターフェース指定

RedhatES3+qmail+tcpserver構成で使用しています。
とあるホームページに「qmailが動作しているホストに複数のIPアドレスを割り振っている場合(複数のLANインターフェイスを持っているなど)、特定のIPアドレスでのみサービスを受け付けるように設定できる。「アドレスAはSMTP用、アドレスBはPOPサーバ用」などの使い分けが可能」とあったのですが、具体的にこれはどのように設定すればできるのでしょうか?
ちなみに、eth0のエイリアスとしてeth0:0を定義し、グローバルIPをそれぞれに割り当てています。
宜しくお願いします。

Aベストアンサー

> 送信時のIPは受信したIPからではなく(IPエイリアス側ではなく)、
> プライマリ(言い方が違うと思いますが、IPエイリアスの元:ifcfg-eth0)
> からの送信になってしまうようです。

 これ良い質問ですね(個人的感想)
 これはdefault gatewayに依存した結果です。
# route
とした時には、
default ホストIP 0.0.0.0 UG 0 0 eth0
などと表示される事と思います。
 このホストIPがヘッダー中に表れてくるのでしょう。

 サーバ1台に複数NICを用意したとして、同一方向のゲートウェイがあった場合、先に設定した方に向けられてしまいます。
(今回はエイリアスですが、同じことですね)

 ルータとしてみれば、静的ルーティングは別として、インターネット側については 「それ以外の全て」 と解釈されているので、この事が起きます。
 つまりは特に差異がでないのからなのです。

 私もこれについては、一回悩んだ覚えがありますが、物理的にサーバを別にする事より他方法が見つかりませんでした。
 あるいは、デフォルトゲートウェイを今回の場合でしたら、エイリアス側のIPに設定することで、目的は果たせますが、他のサービスもすべからく、インターネット側のマシンからはエイリアス側IPからの通信と見なされます。

 便乗になりますが、私も方法しりたいですね^^;
 1つのサーバに、複数のインターネット(不特定)側ネットワークへサービス事にルーティングを変更する方法については・・。

 参考になりますでしょうか。

> 送信時のIPは受信したIPからではなく(IPエイリアス側ではなく)、
> プライマリ(言い方が違うと思いますが、IPエイリアスの元:ifcfg-eth0)
> からの送信になってしまうようです。

 これ良い質問ですね(個人的感想)
 これはdefault gatewayに依存した結果です。
# route
とした時には、
default ホストIP 0.0.0.0 UG 0 0 eth0
などと表示される事と思います。
 このホストIPがヘッダー中に表れてくるのでしょう。

 サーバ1台に複数NICを用意したとして、同一方向のゲートウ...続きを読む

Q不問求人条件にかかる特記事項・・・ 意味?

求人情報に以下の用語がありましたが、何を意味しているのでしょうか?

不問求人条件にかかる特記事項正社員雇用(試用期間3ヶ月:賃金同じ)

このように、ハローワークや求人情報特有の言葉をわかりやすく解説したサイトなどありますか?

Aベストアンサー

正社員だけれど試用期間が3ヶ月ありますという意味です。
特記事項なので、注意すべき項目という意味かと思います。

ハローワークの独特の用語の参考になるかどうかわかりませんが
ハローワークインターネットサービス+転職サイトの情報を
両方掲載しているサイトがあるのでよければ参考までに。

参考URL:http://www.indivision.jp/promo/guide.html?banner_id=ad_hw

Qbashのif文複数条件について

お世話になります。
まず、下記のスクリプトをご確認ください。

if [ ! -f ${E_FILE} -o -f ${E_FILE} -a `grep -c 'ERROR' ${E_FILE}` -ne 0 ] ; then

上記条件文は次のような論理解釈で作成しました。
(${E_FILE}というファイルが存在しない) or 
(${E_FILE}というファイルが存在する and ファイル内に'ERROR'という文字列が存在する)

これを実行すると: too many argumentsというエラーが返ってきます。
原因をご存知の方がいればご教示いただきたく存じます。
よろしくお願いいたします。

Aベストアンサー

原因は${E_FILE}が存在しないからです。
まず、下記の部分についてどのように実行されるとお考えでしょうか?

if [ ! -f ${E_FILE} -o -f ${E_FILE} -a `grep -c 'ERROR' ${E_FILE}` -ne 0 ] ; then

おそらく、以下のように考えておられるのではないでしょうか?
1.test ! -f ${E_FILE}
2.これがFALSEなら test -f ${E_FILE}
3.これがTRUEならgrep -c 'ERROR' ${E_FILE}
4.test (3の結果) -ne 0

しかし、残念ながら実際には、
1.grep -c 'ERROR' ${E_FILE} →ファイルが存在しないのでエラー(標準出力はなし)
2.test ! -f ${E_FILE} -o -f ${E_FILE} -a -ne 0

2の部分で-a -ne 0の部分が文法エラーです。

理由は2が1つのコマンドとして解釈され、その前に``の部分が解釈されるからです。


されたいことを実現するには下記のように書くべきです。

if [ ! -f ${E_FILE} ] || [ -f ${E_FILE} -a `grep -c 'ERROR' ${E_FILE}` -ne 0 ]; then

さらに言えば、[ ! -f ${E_FILE} ]がFALSEならtest -f ${E_FILE}は必ずTRUEなので、
下記のように簡略化できます。

if [ ! -f ${E_FILE} ] || [ `grep -c 'ERROR' ${E_FILE}` -ne 0 ]; then


余談ですが書かれているコードをきっちりと書くならこんな感じ。

if test ! -f "${E_FILE}" || grep 'ERROR' "${E_FILE}"` > /dev/null; then

・例えば上記のようなことがあるから、-a、-oはあまり使わないほうが良い
(さらに、-a、-oは評価順序に関する規定が曖昧だから、右側から評価されても文句は言えない)
・変数はスペースが入ってきた場合を考慮してダブルクォーテーションで括る
・`grep -c ~` -ne 0はgrep ~ > /dev/nullで置き換えが可能
・[]よりもtestを使う。(Autoconfのドキュメントにある移植性の高いプログラムを書くためのガイドライン)

原因は${E_FILE}が存在しないからです。
まず、下記の部分についてどのように実行されるとお考えでしょうか?

if [ ! -f ${E_FILE} -o -f ${E_FILE} -a `grep -c 'ERROR' ${E_FILE}` -ne 0 ] ; then

おそらく、以下のように考えておられるのではないでしょうか?
1.test ! -f ${E_FILE}
2.これがFALSEなら test -f ${E_FILE}
3.これがTRUEならgrep -c 'ERROR' ${E_FILE}
4.test (3の結果) -ne 0

しかし、残念ながら実際には、
1.grep -c 'ERROR' ${E_FILE} →ファイルが存在しないのでエラー(標...続きを読む


人気Q&Aランキング

おすすめ情報