• ベストアンサー

列と行での検索

Excel2000の関数で質問です。 関数やVBAは本に載っているような物を修正して使っているので初歩的な事しかわかってません。 A      B      C     D     E 1     A会社  B会社  C会社  D会社 2 肉     100   200    300    400 3 野菜    100   200    300    400 4 卵     200   200    200    200 5 卵1    100   100    100    100 6 牛乳    300   300    300    300 このような表があるのですが、 A10にA会社 A11に卵 といれると、卵と卵1の合計の300がでてくるような関数はありますか? A列は1文字とは限らず、最大10文字位あります。(あいうえお1など) INDEXとMATCHをつかって卵の200だけは出せたのですが、どうしても合計が出せません。 作った関数は =INDEX(B1:E6,MATCH(A11,A2:A6,0),MATCH(A10,B1:E1,0)) です。よろしくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

A1に"商品"と項目名をセット A10に"会社"、B10に"商品"として A11に"A会社",B11に"卵"なら =DSUM($A$1:$E$6,A11,B10:B11) で300となります。 DSUM(集計する表の範囲,集計する項目(列)名,集計条件) 上記は表の範囲からB10の項目がB11の、A11の会社の列の合計を表示します。

markana
質問者

お礼

ありがとうございます! 求めていた事ができました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 A12セルに=SUMIF(A2:A6,"*"&A11&"*",INDIRECT(CHOOSE(MATCH(A10,1:1,0)-1,"b","c","d","e")&"2:"&CHOOSE(MATCH(A10,1:1,0)-1,"b","c","d","e")&"6"))

markana
質問者

お礼

ありがとうございます。 この方法も試してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数シートから検索し、その行から15列下までを抽出したい。

    使用しているのはWINDOWS XP EXCEL2000です。 マクロ、VBはあまりよくわかっていません。 ひとつのファイルに6sheetあります。 シートY1~Y6があり、シートY1のB1に入力されたデータと同じものをシートY1~Y6全てから検索し、 その行から15列したまでを抽出するということをしたいのです。 現状は1シートのみからの検索で、A3からA17までMATCH関数とINDEX関数が入っていて抽出しています。 (下記のように関数が入っています。)  YIシート A3 → =MATCH(B1,T1_A1!D:D,0) B3 → =INDEX(T1_FMRA!E:E,A3,1)  YIシート A4 → =A2+1 B4 → =INDEX(T1_FMRA!E:E,A4,1) ↓ ↓  YIシート A17 → =A16+1         B17 → =INDEX(T1_FMRA!E:E,A17,1) これをA1に入力されたデータを全シートから(Y1~Y6)検索、抽出する方法が知りたいのですが・・・ 説明がわかりづらくすみません。 よろしくお願いいたします。     

  • ExcelセルにVBAでINDEX関数を入力

    ExcelでINDEX関数とMATCH関数で"B11:E13"セルに以下の数式データがあります。 数式は "B11"=IF(ISERROR(INDEX($A$1:$A$9,MATCH(1,B$15:B$23,0))),"",INDEX($A$1:$A$9,MATCH(1,B$15:B$23,0))) "B12"=IF(ISERROR(INDEX($A$1:$A$9,MATCH(2,B$15:B$23,0))),"",INDEX($A$1:$A$9,MATCH(2,B$15:B$23,0))) "B13"=IF(ISERROR(INDEX($A$1:$A$9,MATCH(3,B$15:B$23,0))),"",INDEX($A$1:$A$9,MATCH(3,B$15:B$23,0))) "C11"==IF(ISERROR(INDEX($A$1:$A$9,MATCH(1,C$15:C$23,0))),"",INDEX($A$1:$A$9,MATCH(1,C$15:C$23,0))) "B15~B23"に数値1~3を入力した場合イニシャルA~I が入力される式ですが、列を連続で入力できるような処理をVBAのWorksheetFunctionで行うにはどのようにコードを記述すればよいのでしょうか。 ご回答のほどよろしくお願いします。

  • 関数 複数条件での検索を【&】を使わない別の方法

    エクセル関数を使って複数の条件を満たしたときの 特定のセルの数値を返す方法が分かりません。 同じような質問が過去にはありました。ご回答の式は =INDEX(C2:C8,MATCH(D2&E2,INDEX(A2:A8&B2:B8,),0))でした。 大半はこれでいけるのですが、1ッ問題が、、式中「&」で数値をつなげてしまうと 下図で「11」-「1」と「1」-「11」が共に「111」となり、おかしなことに なってしまいます。(11-6・1-16も同じことになります) 例を挙げると    A..............B..............C...................D...............E ..........F   1.......11..............1.............100................1...............11...........200 2.......10............ 4..............120...............11...............1...........100 3.........1..............11........... 200..............10...............4............120 4.........3...............5..............500................1...............16..........700 5.........1.............16..............700 6........13..............1..............650 7........11..............6..............800 上のような表のときに D-1に「1」  E-1に「11」という2つの条件を 満たしたときのF列に200を返すということをやりたいのです。 上記にも書きましたが =INDEX(C2:C8,MATCH(D2&E2,INDEX(A2:A8&B2:B8,),0))の式に いろいろ手を加えてみましたが、とても答えが見つかりませんでしたので なにかいい方法がありましたらご伝授ください。 よろしくお願いします。

  • Excel 複数条件一致による文字列取得

    途中まで作成してみましたが、できなかったのでお教え願います。 (1)シート<入力用>に以下のように入力されています。 ┃ ┃A ┃B   ┃C  ┃D     ┃E     ┃  ━━━━━━━━━━━━━━━━━━━━━━━ ┃1┃日付┃社員番号┃休暇等┃業務開始時間┃業務終了時間┃ ┃2┃0926┃11111111┃休  ┃      ┃      ┃ ┃3┃0927┃11111111┃直  ┃8:30    ┃17:30    ┃ ┃4┃0928┃11111111┃   ┃8:30    ┃18:30    ┃ ┃5┃0926┃22222222┃研  ┃8:30    ┃17:30    ┃ といった状態で約120名のランダムなデータがべた打ちされてます。 (2)(1)を以下のような集計表に飛ばしたいのです。   ┃ ┃A   ┃B ┃C ┃D ┃E ┃・・・・・・ ━━━━━━━━━━━━━━━━━━━━━━━ ┃1┃    ┃0926┃0927┃0928┃0929┃・・・・・・ ┃2┃11111111┃休 ┃直 ┃  ┃・・・・・・ ┃3┃22222222┃研 ┃  ┃  ┃・・・・・・ ┃4┃33333333┃・ ┃・ ┃  ┃・・・・・・ ┃5┃44444444┃・ ┃・ ┃  ┃・・・・・・ 行:日付 列:社員番号 飛ばしたい情報は、(1)の<休暇等>文字列です。 ためしに、(2)のB2に以下の式を入れてみました。 B2=index(入力用!A2:E5,match(B1,入力用!A2:A5,0),match(A2,入力用!B2:B5,0)) 当然ですが、日にちが帰ってきました。が、なぜか0927が帰ってきました。 このINDEXとMATCHを利用して(1)のC2:C5にある文字列を拾えないでしょうか? 宜しくお願いいたします。

  • INDEX関数の値を合計する方法

    =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1) という関数で出た値と、 =INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) という関数で出た値の合計を、Sheet1のセルに入れたいのですが、どのようにすればスマートにいくでしょうか。(検索値である、Sheet3!B4,の部分が違います) =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1)+=INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) とすれば、合計は出るのですが、 Sheet3のB4、C4、D4・・・と、4の行を検索した結果の値を足していきたいのです。 そうなると、 =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1)+=INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1)+・・・・・・・・ と、非常に長くなってしまいます。 他の関数でスマートに計算する方法はないでしょうか。

  • Excelで文字列を独自の二進数で表したい。

    A,B,C,D,Eのいずれかを含む文字が順不同でセルに入っているものから、 A=10000 B=1000 C=100 D=10 E=1 と置換して足した、二進数であらわしたり、逆にその二進数から文字列に戻したりしたいです。 (例:DAなら10010、EBCなら1101) VBAの自作関数を含めてExcelの関数でできる方法があればお教えくださると助かります。

  • エクセル 項目が一致する行で空白以外を表示したい

    以下のように,東京の食品の価格がセル(B2:B7)に入力されているとして,それらを別の位置(F2:F5)に表示させるために, セルF2に =INDEX($B$2:$C$7,MATCH($E2,$A$2:$A$7,0),MATCH(F$1,$B$1:$C$1,0)) セルF3に =INDEX($B$2:$C$7,MATCH($E3,$A$2:$A$7,0),MATCH(F$1,$B$1:$C$1,0)) セルF4に =INDEX($B$2:$C$7,MATCH($E4,$A$2:$A$7,0),MATCH(F$1,$B$1:$C$1,0)) と入力しました。 するとセルF4の野菜の価格が0円になってしまいました。 セルF4の野菜の価格が150円と表示するためには,どうしたらよいでしょうか。 よろしくお願いいたします。  A          B    C        D    E    F 1        東京                     東京 2米     1000                米  1000 3ビール    230               ビール  230 4米                         野菜     0 5野菜    6ビール 7野菜      150

  • 検索の仕方を教えて下さい

    Excelの検索の仕方を教えて下さい。 下記のような表があります。  A B C D E D … 1 あ い う え お か 2 1 A氏 5 3,198 35 計算式       6 3,215 27       7 3,148 41       8   0 0       9   0 0 7 2 B氏 5 18,000 25       6 17,250 41       7 18,140 30       8    0 0       9    0 0 1行目には、文字列が入力されています。 A2~A6・B2~B6及びA7~A11・B7~B11はセルが結合してあり、それぞれ1つのセルになっています。 D2に計算式を入れる場合ですが… 別のシートに表があり、=IF(Sheet2!A1=0,0,ここからの計算式です。) Sheet2のA1には数字の1が入力されています。 まず、A2の1という数字を検索し、次にC列の5を検索し、5の横列E列の数字(3,198)を求める。 C列とE列の交わる値を結果と出したいのです。 =IF(Sheet2!A1=0,0,VLOOKUP(Sheet2!A1,A2:E11,INDEX(C2:E11,MATCH(5,C2:C11,0),MATCH("え",C2:E2,0)))) としたのですが、計算結果は#REF!です。 どのように計算式を立てれば良いのでしょうか?

  • Excel関数を使って、対象文字が検索文字列でn番目に出現した位置を知りたい

    どうもお世話になります。 Excel関数を使って以下の検索を行いたいのですが、可能でしょうか。 例)以下のような表があったとします。  A B C D E F G 1 0 0 1 1 0 0 0 2 1 1 0 1 0 0 0 ⇒○(例えば1)行目を検索し、□(例えば0)が△(例えば3)回目に出てくる位置を返す。 【答え】E1 表の中の文字列は、数字でなく色々な文字(ABとか)を使ってもいいです。 OracleのInstr関数のような使い方と言えばよいでしょうか。 できればマクロは使いたくありません。 Lookup、match、index関数など色々試しましたがダメでした。 ご教授のほどよろしくお願いします。

  • #N/A の消し方

    セルI11に =INDEX(形材!D:D,MATCH(B11&C11&D11,INDEX(形材!$E$1:$E$10000&形材!$F$1:$F$10000&形材!$G$1:$G$10000,),0))&"" 上記の関数だと、B、C、Dに何も入力しなくてもI11は空白なのですが、 違うシートのセルH7に =INDEX(部品!D:D,MATCH(B7,INDEX(部品!$E$1:$E$10000,),0))&"" を入れると、Bに何も入力しないとH7に#N/Aが表示されます。 #N/Aを表示させない方法はありますか

専門家に質問してみよう