• ベストアンサー

(MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させ

(MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させたい。 たとえば、条件1=A列で値が数値であるセルと、条件2=条件1でマッチしたセルと同じ行でC列で値が「その他」という文字列であるセルを検索させます。 そして、A列でマッチしたセルの値をE列に出力させて、C列でマッチしたセルの値をF列に出力させたい、というような感じです。 VLOOKUP関数などで、{配列}を使うなどすれば可能だと思って試行錯誤したけどダメでした。 なお、データベース関数のように条件セルなど作業セルが必要な方法は使いたくないです。 よろしく、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No1です。 空白の行を作らないで表示させるのでしたら次の式をE1セルに入力して入力後はCtrl+Shift+Enterで確定します。その後に下方にオートフィルドラッグします。 =IF(SUM(ISNUMBER(A$1:A$100)*NOT(ISERROR(C$1:C$100="その他"))*NOT(ISBLANK(C$1:C$100))*1)<ROW(A1),"",INDEX(A:A,SMALL(IF(ISNUMBER(A$1:A$100)*(C$1:C$100="その他"),ROW(A$1:A$100),""),ROW(A1))))

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>A列でマッチしたセルの値をE列に出力させて、C列でマッチしたセルの値をF列に出力させたい、というような感じです。 F列の値は検索条件の「その他」になるのでしょうか? 今回のご質問に対する回答は、いずれにしろ配列数式で表示するしかありません。 たとえばA列が数字でかつC列が「その他」のデータのA列の数字を列挙したいなら以下のような数式を使うことになります。 =INDEX(A:A,SMALL(IF(ISNUMBER($A$1:$A$100)*($C$1:$C$100="その他"),ROW($A$1:$A$100),""),ROW(A1))) 配列数式なので、入力後Ctrl+Shift+Enterで確定してください。 エクセルのバージョンが記載されていませんので、上記の数式はデータがない場合のエラー値を表示しない数式を提示しましたが、Excel2007なら比較的計算負荷が少ないCOUNTIFS関数などを利用することができます。

boocyaw
質問者

お礼

ありがとうございます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>複数の条件にマッチする複数のセルを配列?で出力させたい。 E列、F列に条件にあった一覧表を上から詰めて表示したい といったことでしょうか? 作業列を使ってもダメなのでしょうか? 配列関数を利用すれば可能だと思いますが、データの量、式をコピィするセルの数でパソコンに負担をかけます。 とりあえず A列が数値(文字、空白でない)のセルの一覧表をE列に作成します。 E1セルに =IF(SUM(ISNUMBER(A$1:A$100)*1)<ROW(A1),"",INDEX(A:A,SMALL(IF(ISNUMBER(A$1:A$100),ROW(A$1:A$100),""),ROW(A1)))) をコピィして、Ctrl+Shift+Enterで決定して配列関数にします。 E1セルを下までコピィします。 A列の対象範囲は A1~A100 にしています。 F列は、条件をA列が 数値 且つ C列が その他 で関数を組むことになりますが、かなり長くなります。 今の式でも、理解困難であれば、別方法をお勧めします。 意外と、理解しやすい方法は 作業列を使ったほうがわかりやすいし パソコンもかるくなると思います。

boocyaw
質問者

お礼

ありがとうございます。 簡単ではないにしても、もっと短い数式で可能だと思ってました。 数式で済ますのは、チョー非合理というか非効率ですね。 なお、質問を間違ったというか、やりたいことはもっと複雑です。 作業セルを使う方法で、考えてみます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

条件1と条件2を満足する行のA列での値をE列に表示させるのでしたら次の式をE1セルに入力し下方にオートフィルドラッグします。 =IF(AND(ISNUMBER(A1),C1="その他"),A1,"")

boocyaw
質問者

補足

ありがとうございます。 これって、空白のセルや行が発生しますよね。 フィルターで解決できますが、そういうのは無しで、数式だけでやりたいです。

関連するQ&A

  • Excelにて複数条件を満たす行の特定のセルの値を返す関数

    Excelにて複数条件を満たす行の特定のセルの値を返す関数を作りたいのですが、上手く行きません。 <Sheet1>   A列  B列  C列 1 2008/6/1 ★  320 2 2008/6/1 ☆  300 : : : Sheet2のA1に、「A列が2008/6/1で、B列が☆の場合、C列の値を返す」という関数を入れたいのですが、どうも上手く行きません。 良い式がありましたら教えて下さいm(_ _)m

  • エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてくだ

    エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてください。                A列   B列    C列 Aファイルには 行 【注文月日】、【氏名】、【商品金額】が記入されています。 Bファイルには 行 【注文月日】、【氏名】、【税金額】が記入されています。 AファイルのD列に、Aファイルの【注文月日】かつ【氏名】がBファイルの【注文月日】かつ【氏名】と一致する場合のBファイルC列の【税金額】を表示したいのです。 VLOOKUP関数では条件が1つだけなので使用できませんが、似たような関数で複数条件ができる関数があるなら教えてください。

  • エクセルで複数条件に合うセルの数を数えたい

    エクセルで関数を浸かって、複数の条件に合うセルの数を数えたいです。 方法を教えてください 状況としてはA列に日付が入ります。B列は別のデーターが入り、C列に分類が入ります。    A   B   C 1 10/3  まる  山 2 10/3  三角  川 3     三角  川 条件1 A列に日付が入っていてC列の分類が山のもの  ?個 条件2 A列に日付が入っていてC列の分類が川のもの  ?個 条件3 A列に日付が入っていなくてC列の分類が山のもの  ?個 条件4 A列に日付が入っていなくてC列の分類が川のもの  ?個 こんな感じで各条件毎のセル数を数えたいです。よろしくお願いします。

  • Excel2003、配列から、複数の条件一致する行のデータを取り出す方

    Excel2003、配列から、複数の条件一致する行のデータを取り出す方法 配列は最大で10行、10列程度ですが、このデータはリアルタイム(0.5秒間隔)で更新されますので、 分類等はできません。 A列のデータがZ1のセルのデータと一致し、かつ、B列は、特定の”文字列”と一致し、かつ、C列は数量で、0より大きい(負のデータは無いが、""はあり得る)という条件に合致した行があったら、その行のD列の値をZ2のセルに格納したい。 条件に合致する行は複数あり得るが、そのときは最初に条件が合致した行のデータが必要。 いくつかの関数を調べましたが、つまづいています。

  • エクセル2010、複数条件のセルを数える

    エクセル2010です。 A列のリストの中から、「B1またはC1のセル」と同一の名前がいくつあるか、という計算式を作りたいです。 複数条件ですから、COUNTIFS関数で、 =COUNTIFS(A:A,B1,C1) としてみたのですが、これではエラーが出ます。 よく考えてみたら、「または」という、どちらかの条件が含まれるということですから、これでは駄目なようです。 そこで調べたところ(http://support.microsoft.com/kb/275166/ja)、こういう場合SUM(IF())を使うというのがわかり、 =SUM(IF((A:A=B1)+(A:A=C1),1,0)) としてみましたが、これでも結果がすべて0になってしまいます。 私は何か捉え違いをしているのでしょうか? こういう条件の場合、どういう式にすればよいのでしょうか。 どうぞよろしくお願いします。

  • 複数の条件に合う行の特定のセルを返す

    ほぼ同じ質問をいくつか見かけたのですが、その式を自分の内容に置き換えても全く希望通りの結果が出ず、質問させてください。 2 1 Aさん 4 1 Bさん 5 1 Cさん 2 2 Dさん 5 2 Eさん セルのA1には「2」、B1には「1」、C1には「Aさん」と入ったシートがあり、例えばセルのD1に A列、B列ともに「2」が入力されている4行目のC列「Dさん」という値が反映して欲しいのですが、その関数が分からなく困っています。 他にもA列が「5」、B列が「1」の結果が(Cさん)が欲しい時もあり、条件にはA列の値とB列の値を使う方法で考えています。 お知恵を貸してください。

  • excelで1つのセルに複数の値を返す方法はありますか?

    おせわになっております。 excelで質問です。 excel関数でもVBAでもいいのですが、1つのセルに複数の値を返す方法はありますでしょうか?? たとえばVLOOKUP関数だと1つのセルに1つしか返せませんよね?? a=りんご b=バナナ c=すいか d=いちご e=キウイ と設定したしたとして、 a,c,dと入力すると→りんご,すいか,いちご とすべて1つのセルに出るようにしたいのです。りんご,すいか,いちごという値にしたいので、それぞれを別々のセルに入れることはしたくありません。可能でしょうか?? よろしくお願いいたします。

  • エクセルでセルの検索

    エクセル2000で複数検索条件に当てはまるセルの個数を関数で処理したいのですが、何かいい方法はありますか? たとえば、 A列 日付(2004/12/11など) B列 状態(○or×) C列 会社名(A社など) となっていて、 A列が「2004/12/11」でB列が「○」でC列が「A社」の条件を満たすセルの個数を知りたいなどです。 オートフィルターで絞り込むようなイメージです。 この結果を値として欲しいのです。 宜しくお願いします。

  • エクセル 複数条件での検索を関数を使って解決したいです。

    エクセル関数を使って複数の条件を満たしたときの 特定のセルの文字列を返す方法を考えています。 例を挙げると    A    B    C     D    E    F 1  金額  日付  名称   金額  日付 名称 2  100  1月5日  a    100  2月1日 =??? 3  200  1月5日  b 4  300  1月6日  c 5  400  2月1日  d 6  100  2月1日  XYZ 7  100  2月3日  e 8  200  2月3日  f 上のような表のときに 金額=「100」 かつ 日付=「2月1日」 という2つの条件を 満たしたときのC列の文字列「XYZ」を返すということをやりたいのです。 金額だけですとVLOOKUP関数を使って =VLOOKUP(D2,A2:C8,3,false) とやって「a」という文字列はかえってくるのですが どうやっても「XYZ」という文字列が返せません。 (日付の条件を入れていないので当たり前ですが...) なにかいい方法がありましたらお願いします。

  • 複数の条件を満たすセルの個数

    同時に複数の条件を満たすセル(行)の個数を知りたいです。  ABC 1●●○ 2○○○ 3●○● 4○○● 5●○○ たとえばB列が「○」でC列が「○」の 両方の条件を満たしている件数を調べるのは どういう関数を使えばよいのでしょうか。 「COUNTIF」とオートフィルタをあわせたような 感じなのですが、COUNTIFは複数の条件をいれられないのでしょうか。 どなたか教えてください。

専門家に質問してみよう