- 締切済み
EXCELの数式を教えて下さい
今朝、ここで数式を教えて頂いて大変助かったのですが 又、一つ私にとって難しすぎるのが出ましたので教えて下さい。 1)EXCELの4行目から53行目までデータがあり、A4とI4とS4列は文字の項目です。G4列は売上の数値です。 2)例えば4行目から53行目までのある1行でA4(*JPY)、I4(*JPY)、S4(*アジア)の3項目が合致した行だけのG4の売上数値だけを4行目から53行目までの数値合計をだす数式をつくりたいです。3項目の合致がない場合はセルに0を表示したいです。 宜しくお願い致します。
- みんなの回答 (13)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
解答No12です。 こちらの提案した式では*JPYとはしていません。提案した式では*は必要ありません。却ってエラー表示のもとになります。一度提案した式をそのままコピーして試験してみてください。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次の式ではどうでしょう。 =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))
補足
有り難う御座います。 やはり#VALUEが表示されてしまいます。 JPYの前はワイルドカード(*JPY)を2箇所とも使用しております。
- KURUMITO
- ベストアンサー率42% (1835/4283)
解答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.5 です。 これで最後にしようと思いますが、今回の関数では、 数値合計の算出に =SUM() 関数を使っています。 =SUM() 関数は、文字列属性のセルに数字が入っていても それは 文字情報であるため集計の対象とはしません。 四則演算の場合には、文字情報であっても 数字 だけの セルであれば、集計の対象とします。 G列のセルの属性は、数値属性になっていますでしょうか。
お礼
有難うございました。
補足
有り難う御座います。 A、I、S列は文字列でG列は数値になっています。 何度も何度も本当に有り難う御座いました。
- DIooggooID
- ベストアンサー率27% (1730/6405)
> どうも"*JPY"や"*アジア"を読み取っていないようです。 前後にスペース(空白)が入っている可能性が考えられます。 できれば、事前に =TRIM() 関数を使って、空白を除去した方が 良いと思います。 ※データを変更しても問題がなければですが・・・
補足
やはりだめでした。 他の方法を考えて見ます。 何度も有り難う御座いました。
- DIooggooID
- ベストアンサー率27% (1730/6405)
No.5 です。 英字は半角文字のようですから、関数内の比較文字列を 全角から半角にしなければなりません。 =sum(if(a4:a53="*JPY",if(i4:i53="*JPY",if(s4:s53="*アジア",g4:g53,0),0),0))
補足
何度も有難うございます。 アジア以外は全部半角で再確認しました。どうも"*JPY"や"*アジア"を読み取っていないようです。いろいろやってみます。 本当にありがとうございます。
- DIooggooID
- ベストアンサー率27% (1730/6405)
No.5 です。 下記の関数内で判定している、"*JPY" や "*アジア" などの文字列 ですが、これらの文字の前後に スペース(空白文字)が含まれていると、 カウントしません。 セル内は、純粋に *JPY や *アジア だけですか?
補足
再度確認しましたがセル内は"*JPY"や"*アジア"になっています。 1行で3項目合致も希望どうりです。現在表で2行が3項目合致していますが0の表示になってしまいます。何度も試してみます。ちなみにEXCELは2003年です。 色々有り難う御座います。
- DIooggooID
- ベストアンサー率27% (1730/6405)
No.5 です。 先ほど、ご提示した関数では、A列が "*JPY" I列も "*JPY" 、 かつ、S列が "*アジア" という、三つの条件を満足した行の G の 値だけを集計するようになっています。 仮に、A列だけが "*JPY" であってもカウントしません。 この条件で、正しいですか?
- DIooggooID
- ベストアンサー率27% (1730/6405)
配列式を利用して、・・・ =sum(if(a4:a53="*JPY",if(i4:i53="*JPY",if(s4:s53="*アジア",g4:g53,0),0),0)) こんなのもできます。 ※配列式ですから、上記式を入力後には、単に Enter ではなく、 Ctrl + Shift + Enter と三つのキーを同時に打鍵して 確定してください。
補足
有り難う御座います。入力して確定しましたら 0が表示されます。何かきずかれましたら、教えて下さい。宜しくお願い致します。
- KURUMITO
- ベストアンサー率42% (1835/4283)
No3です。 次のように訂正します。 =SUMPRODUCT((RIGHT(A4:A53,3)="JPY")*(RIGHT(I4:I53,3)="JPY")*(RIGHT(S4:S53,3)="アジア")*(G4:G53))
補足
有り難う御座います。入力しましたら、#VAUIEが表示されるのですが、どこがいけないをでしょうか、もしもわかれば宜しくご指導お願い致します。
- 1
- 2
お礼
有難うございました。
補足
何度も有り難う御座います。 提案していただいたそのままコピーして試験しましたが、#VALUE が表示されます。 厄介な質問を出して申し訳ありません。