• 締切済み

EXCELの数式を教えて下さい

今朝、ここで数式を教えて頂いて大変助かったのですが 又、一つ私にとって難しすぎるのが出ましたので教えて下さい。 1)EXCELの4行目から53行目までデータがあり、A4とI4とS4列は文字の項目です。G4列は売上の数値です。 2)例えば4行目から53行目までのある1行でA4(*JPY)、I4(*JPY)、S4(*アジア)の3項目が合致した行だけのG4の売上数値だけを4行目から53行目までの数値合計をだす数式をつくりたいです。3項目の合致がない場合はセルに0を表示したいです。 宜しくお願い致します。

みんなの回答

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

解答No12です。 こちらの提案した式では*JPYとはしていません。提案した式では*は必要ありません。却ってエラー表示のもとになります。一度提案した式をそのままコピーして試験してみてください。

a_h25
質問者

お礼

有難うございました。

a_h25
質問者

補足

何度も有り難う御座います。 提案していただいたそのままコピーして試験しましたが、#VALUE が表示されます。 厄介な質問を出して申し訳ありません。

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

次の式ではどうでしょう。 =SUMPRODUCT((RIGHT(SUBSTITUTE(SUBSTITUTE(TRIM(A$4:A$53)," ",""),CHAR(9),""),3)="JPY")*(RIGHT(SUBSTITUTE(SUBSTITUTE(TRIM(I$4:I$53)," ",""),CHAR(9),""),3)="JPY")*(RIGHT(RIGHT(SUBSTITUTE(SUBSTITUTE(TRIM(S$4:S$53)," ",""),CHAR(9),""),3)="アジア")*(G4:G53))

a_h25
質問者

補足

有り難う御座います。 やはり#VALUEが表示されてしまいます。 JPYの前はワイルドカード(*JPY)を2箇所とも使用しております。

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

解答NO4です。 次の式ではどうでしょう。 =SUMPRODUCT((RIGHT(TRIM(A4:A53),3)="JPY")*(RIGHT(TRIM(I4:I53),3)="JPY")*(RIGHT(TRIM(S4:S53),3)="アジア")*(G4:G53))

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.10

No.5 です。  これで最後にしようと思いますが、今回の関数では、 数値合計の算出に =SUM() 関数を使っています。  =SUM() 関数は、文字列属性のセルに数字が入っていても それは 文字情報であるため集計の対象とはしません。  四則演算の場合には、文字情報であっても 数字 だけの セルであれば、集計の対象とします。  G列のセルの属性は、数値属性になっていますでしょうか。  

a_h25
質問者

お礼

有難うございました。

a_h25
質問者

補足

有り難う御座います。 A、I、S列は文字列でG列は数値になっています。 何度も何度も本当に有り難う御座いました。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.9

> どうも"*JPY"や"*アジア"を読み取っていないようです。  前後にスペース(空白)が入っている可能性が考えられます。  できれば、事前に  =TRIM()  関数を使って、空白を除去した方が 良いと思います。  ※データを変更しても問題がなければですが・・・

a_h25
質問者

補足

やはりだめでした。 他の方法を考えて見ます。 何度も有り難う御座いました。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.8

No.5 です。  英字は半角文字のようですから、関数内の比較文字列を 全角から半角にしなければなりません。 =sum(if(a4:a53="*JPY",if(i4:i53="*JPY",if(s4:s53="*アジア",g4:g53,0),0),0))

a_h25
質問者

補足

何度も有難うございます。 アジア以外は全部半角で再確認しました。どうも"*JPY"や"*アジア"を読み取っていないようです。いろいろやってみます。 本当にありがとうございます。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.7

No.5 です。  下記の関数内で判定している、"*JPY" や "*アジア" などの文字列 ですが、これらの文字の前後に スペース(空白文字)が含まれていると、 カウントしません。  セル内は、純粋に *JPY  や  *アジア  だけですか?

a_h25
質問者

補足

再度確認しましたがセル内は"*JPY"や"*アジア"になっています。 1行で3項目合致も希望どうりです。現在表で2行が3項目合致していますが0の表示になってしまいます。何度も試してみます。ちなみにEXCELは2003年です。 色々有り難う御座います。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.6

No.5 です。  先ほど、ご提示した関数では、A列が "*JPY" I列も "*JPY" 、 かつ、S列が "*アジア" という、三つの条件を満足した行の G の 値だけを集計するようになっています。  仮に、A列だけが "*JPY" であってもカウントしません。  この条件で、正しいですか?

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.5

配列式を利用して、・・・ =sum(if(a4:a53="*JPY",if(i4:i53="*JPY",if(s4:s53="*アジア",g4:g53,0),0),0)) こんなのもできます。  ※配列式ですから、上記式を入力後には、単に Enter ではなく、    Ctrl + Shift + Enter と三つのキーを同時に打鍵して   確定してください。

a_h25
質問者

補足

有り難う御座います。入力して確定しましたら 0が表示されます。何かきずかれましたら、教えて下さい。宜しくお願い致します。

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

No3です。 次のように訂正します。 =SUMPRODUCT((RIGHT(A4:A53,3)="JPY")*(RIGHT(I4:I53,3)="JPY")*(RIGHT(S4:S53,3)="アジア")*(G4:G53))

a_h25
質問者

補足

有り難う御座います。入力しましたら、#VAUIEが表示されるのですが、どこがいけないをでしょうか、もしもわかれば宜しくご指導お願い致します。