• ベストアンサー

英数半角と文字列の中から、文字列だけを対象にSUMPRODUCTをかけたい

英数半角(7桁固定)と文字列の中から、文字列だけを対象にSUMPRODUCTをかけたい場合はどうすればよいのでしょうか? 一旦、別セルにOKウェブでおしえていただいた、SUBSTITUTEで文字列のみを抽出できたものの、最終的にそれらが合致しているかを確認する為のSUMPRODUCTをかけようとするとTRUEのはずがFALSEになります。 抽出したものは、セル内には実際は計算式が入っている為、計算できないなんてことありますか? 直接しかできないのでしょうか? 関数オンチですみませんが、宜しくお願いいたします。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.1

QNo.4058336 http://security.okwave.jp/qa4058336.html の#3です。 > 抽出したものは、セル内には実際は計算式が入っている為、計算できないなんてことありますか? > 直接しかできないのでしょうか? そんなことはないでしょう。 000S58:あかさたな商事 020230:いきしちに会 を =SUBSTITUTE(A1,LEFT(A1,7),"") で あかさたな商事 いきしちに会 としたものをどうSUMPRODUCT関数でやろうとしているのですか?

makiokenko
質問者

お礼

すみません。 関数が全くと言っていいほどわかっていないのでおかしな質問をしてしまっているようですね(^^;; おかげさまで =SUBSTITUTE(A1,LEFT(A1,7),"")で抽出はできました。 もう一度、最初からやり直したらうまくいきました。 ありがとうございました。

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

その他の回答 (4)

noname#79209
noname#79209
回答No.5

#1です。 ここは、SUMPRODUCTも、UBSTITUTEも、REPLACEもすべて忘れて、 「A1のデータが、B1~I1の中にあるかどうか」のチェックに集中しましょう。また、その際、#2さんへのコメントにある「空白セルは一致とみなす」も忘れましょう。 とにかく、「A1と同じものが、B1~I1に存在するかのチェック」に的を絞ります。 そして、「存在=Trueを返す」と決めます。(これをキチンと決めておかないと混乱します) 「存在をチェックする」だけですから、COUNTIFがいいでしょう。 =(COUNTIF(B1:I1,A1)>0) この数式で、存在すればTrueが返されます。 つまり、A1と同じものがあるセルを数えて、1以上なら「存在」です。 次に、「空白セルは一致とみなす」ですが、 多分これが数式を考える上で悪影響を及ぼしていると感じます。 質問者さんが提示した式から考えると、 B1~I1の中に1つでも空白があれば、存在チェックをするまでもなくTrueのようです。 このあたりで、論理式のドツボにハマっているようです。 1.B1~I1の中は数式。 2.それぞれのセル位置は特定の取引先と関連づけられている。 つまり、ある商品を扱っている取引先がB1~I1に表示されるようになっていて、 B1が「○○商事」、C1が「△△物産」というように固定されていて、 その取引先にその商品の扱いがあれば、その取引先名を表示、 扱いがなければ「""」が表示されるのでしょう。 もしそうなら、 「空白セルは一致とみなす」という妙な(曖昧な)考え方でなく、 「空白セルは検索対象から除外(無視)」というスタンスのほうが良いのでは?

makiokenko
質問者

お礼

お2人とも長い間、関数オンチの私に丁寧に教えてくださってありがとうございました。 おかげさまで、無事データ処理も完了しました。 良回答のポイント、どちらにも20ポイント差し上げたいのですが、 そういうわけにも行きませんので、書いてくださった順番にさせていただきます。 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
noname#176215
noname#176215
回答No.4

その表がどんな構成で 何を目的としたもので それぞれのセルに何が 入っているのかが 説明されていないので 何がなんだか分かりません。 以下予想です。 「000S58:あかさたな商事」のようなデータが B1:I1セル内に入って いて A1セルの会社名が範囲内に「8」個あるかどうかを チェックし たいのですか? 指定がない場合は TRUEということで? =COUNTIF(B1:I1,"*"&A1)=8 違うようなら もう少し 最初から説明して下さい。

全文を見る
すると、全ての回答が全文表示されます。
noname#176215
noname#176215
回答No.3

#2の者です。取り除いたデータで何をしようとしているのでしょう。 頭の7文字を取り除くだけなら「=REPLACE(A1,1,7,"")」で済みます。 「最終的にそれらが合致しているかを確認する」の意味が分かりません。 =COUNTIF(A1:A10,"*あいうえお商会") もしくは =COUNTIF(A1:A10,"*"&B1) のようにして個数を数るのとは違いますか? 最終的になさりたいことを省略せずに説明して下さい。

makiokenko
質問者

お礼

ご面倒をおかけしております。 =REPLACEは、別セルですよね。 とりあえず、別セルで取り除くことはできました。 「最終的に合致しているか」は、ひとつの商品に対して、複数の取引先が存在するものがあり、同じ取引先名かをチェックするということです。 個数を数えるのではなく、TRUEかFALSEです。 =SUMPRODUCT((B1:I1=A1)+(B1:I1=""))=8 で合っていますか? 合致していないのに、TRUEが表示されたりします。 かといって、合致=FALSEでもないようです。 参照セル(A1)が空白の場合、B1~I1それぞれが異なる社名が入っていても、TRUEとみなされますか? ちゃんと説明できていますでしょうか? 本当にすみません。でも教えていただいて助かっています!

全文を見る
すると、全ての回答が全文表示されます。
noname#176215
noname#176215
回答No.2

「SUMPRODUCT」は「積の和を返す関数」です。ですが他の用途に利用する 人が非常に多いですね。利用用途が広いので「SUMPRODUCTをかけたい」だ けでは何をしたいのかさっぱり伝わりません。 SUMPRODUCTで どんな計算をしようとしているのか 数式と共に提示して 下さい。 > SUBSTITUTEで文字列のみを抽出できたものの これをやるための作業セルがあるなら 計算に SUMPRODUCTを使う必要が あるとは思えません。

makiokenko
質問者

お礼

「SUMPRODUCT」は「積の和を返す関数」なのですね。 色んな用途があることすらわかっていませんでした。すみません。 できれば、作業セルを新たに作らずに文字列のみを抽出できないかと思ったのですが、複雑でしょうか?

makiokenko
質問者

補足

6桁の半角英数:会社名 が入っているセルがあり、 そのうちの社名だけを対象に、9社が合致するか(空白セルは一致とみなす)をチェックしたかったのです。 作業セルを作らざるを得ないと思い、作業セルでSUBSTITUTEをして抽出しました。 しかし、あまりにも横に長くなりすぎていて、他の比較項目との参照がスクロールをしないと見れない為、元のセルのまま合致の確認をしたかったのです。(合致結果のセルは用意できます)

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

関連するQ&A

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

  • エクセルで英数のみを半角に変換するマクロ

    エクセル2003を使っています エクセルで英数のみを半角に変換するマクロの作り方を教えてください。 予め複数のセルを選択しておいて、それらに含まれる文字列の英数のみを半角に(カタカナは全角のまま)変換したいのです。 以前他のサイトで同様の機能のユーザー関数の作り方は見つけたのですが、マクロにする方法がわかりません。 よろしくお願いします。

  • 半角英数のテーブルでの折り返し

    どなたか、ご存知の方がいらしたら、ぜひ教えてください。 テーブルで、半角英数のスペースなしでつながっている文字列を 改行(<br>や<p>など)を使わないで、折り返すことってできますか? たとえばテーブルの幅が100とか決まっていても、 メールアドレスのような、半角英数つながり文字列を入れると テーブルの幅が延びてしまいます。。。。 どんな方法でも結構ですので、ご存知の方、よろしくお願いします。

    • ベストアンサー
    • HTML
  • 全角半角考慮した文字列分割

    A列           B列         C列 あいうえおかきくけこ  あいうえ      おかきくけこ アイウエオカキクケコ   アイウエオカキクケ  コ あいうえオかきくけこ   あいうえオ    かきくけこ A列に全角半角混在のテキスト項目があります。 B列、C列に以下のルールで分割したいのですが、Excel関数で 実現可能でしょうか?可能な場合は式をご教授して 頂けますでしょうか。宜しくお願い致します。 ※全角をバイト数指定で分割して文字化けしないように 全角半角を考慮して分割したいと考えております。 B列  A列9桁目が半角の場合は半角9文字 A列9桁目全角の場合は半角8文字(全角4文字)をB列へ C列  A列10桁目が半角の場合は、左端10桁目~半角9文字 A列10桁目が全角の場合は、左端9桁目~半角9文字

  • Excelの文字数が決まっていない文字列の抽出

    教えてください。Excelで、文字数の決まっていない文字列を抽出したいのですが、例えば、 セルA1 : プロジェクト1 簡単な文章 2352 PD_JOK セルA2 : プロジェクト13 複雑な文章列とは決まっていない 2453 AO_JKI ・・・・・・ というセルから、 プロジェクト名から、半角数字前までの文字数が決まっていない文字列「簡単な文章」や「複雑な文章~」をセルB列に抽出する方法を教えていただきたいのですが、 そして、半角数字後の半角英字「PD_JOK」をセルC列に抽出する方法も同時に教えてください。 万単位でデータがあるので、関数を使わないと難しいです。 よろしくお願い致します。

  • エクセルシートの文字列加工について

    エクセルのシートのA列に"全角ひらがな漢字"の文字列と"半角英数"の文字列を含むセルが縦に並んでいます。約200行。 ■この中から、"全角ひらがな漢字"の文字列を右となりのB列に、"半角英数"の文字列をさらに右となりのC列に、それぞれコピーしたいのですが、関数・マクロなどでいい方法がありましたら教えて下さい。 ■それから、半角英数文字列のC列から、""で囲まれた文字列のみをさらにD列にコピーしたいのです。 文字列の長さが統一されていれば、比較的簡単なのですが、今回は文字列の長さが不規則です。よろしくお願いします。

  • シフトによる半角英数

    PantherにおいてATOK 16を使用していて、WindowsでATOKを使用するときのように、Shiftを押しながら入力すると、その文字列が半角英数になるように設定したいのですが、ATOK16環境設定のどこで設定すればいいのかわかりません。よろしくお願いします。

    • 締切済み
    • Mac
  • 全角・半角混在の文字列から半角文字のみ取り出す

    エクセル勉強中です。問題集で理解できないところがあります。 数式がどういう意味をもつのか教えて頂けるとありがたいです。 よろしくお願いします。 画像添付の問題になります。 A列に製品名が入っています。(製品番号:半角文字)(製品名:全角文字) B列に半角文字の製品番号だけを取り出しなさいというものです。 半角文字の開始位置がバラバラになっているところが問題のポイントになっています。 回答ですが B2: =MID(A2,MATCH(1,INDEX(LENB(MID(A2,COLUMN(2:2),1))*1,0),),LEN(A2)*2-LENB(A2)) こちらで半角文字のみ取り出せるようです。回答には数式のみで何故この関数を使うのか? 使うことでどういった結果を導くなどの解説が一切ありません。(ちなみに出版会社の便利技的な問題集です) MID関数で製品名A2から開始位置を指定して、全角半角をLEN関数LENB関数で半角文字数を 算出して文字列を抽出するという事は理解できます。 ただ、この開始位置の指定の所が理解できません。 数式を分割してみましたが =MID(A2,COLUMN(2:2),1)の所はどの行も製品名の1文字目ですよね・・・ その値にLENB関数で文字数? 数式の検証で見てみると配列のような結果が次々と現れて・・・ MATCH関数もありますしINDEX関数が何か関係しているような気はしているのですが、 INDEX関数と言えば配列に行番号・列番号と例えば表の該当するセルの位置抽出の 知識しかありません。一つのセルでINDEX関数? すいません。独学で勉強していてこの程度の知識ですが、この数式の考え方教えてくださる方よろしくお願いします。

  • 参照文字列から検索文字列を置きの件

    >SUBSTITUTE(SUBSTITUTE(文字列,検索文字1,置換文字1),検索文字2,置換文字2)  上記の関数は8桁以上は出来ません、他の方法の関数があれば、  よろしくお願いします。(13桁)  尚、マクロ以外でできますか。  例、 A-福岡      B-佐賀

  • 【Excel】 複数の検索文字列を置き換えたい。

    こんにちは 参照文字列から検索文字列を置き換えたいのですが 検索文字列が複数ある場合はどのような式になりますか。 SUBSTITUTEの検索文字列は1つだけだと思うのです。 SUBSTITUTEで置き換えたセルを参照し、またSUBSTITUTEで 置き換えるというふうに繰り返すしかないでしょうか。

このQ&Aのポイント
  • 質問文章から「TPOをわきまえず雑談してる人」についてどう思うか尋ねられた経験があります。
  • 調剤薬局で働いていた際に、患者さんがいるのに大きな声で雑談をしている職員がいたことがありました。
  • それ以外にも、お店に入った時に雑談している店員さんや仕事中に雑談している人に対してもイライラすることがあります。
回答を見る

専門家に質問してみよう