エクセルで特定の文言以外を反映する方法

このQ&Aのポイント
  • エクセル2003についての質問です。データリストの中から特定の2つの文言を含むデータを抽出し、それ以外の文言をセルに反映したい方法について教えてください。
  • 現在、=IF(COUNTIF(A1",*A*"),"A",A1)&IF(COUNTIF(A1,"*B*"),"B",A1)という式を利用していますが、全ての文言がくっついて反映されてしまいます。
  • 具体的には、AとBの文言を抽出し、C以外の文言はそのままデータに反映したいです。どのような組み合わせでも対応できる方法を教えてください。
回答を見る
  • ベストアンサー

エクセル 2つの文言以外を反映したい

エクセル2003について質問です。 データリストの中に2つの文言が含まれるデータを拾って、それ以外はそのままセルに反映したいのです。 たとえば、Aの列にデータが入っていて =IF(COUNTIF(A1",*A*"),"A",A1)&IF(COUNTIF(A1,"*B*"),"B",A1) と、入れてみましたが、全部くっついて反映されます。 たとえば、Aの場合は A**A**,AA***など…はじめのAは数式のAが出るようでその後ろはデータリストの文言がそのままつながっているようです。 AとBは、AまたはBだけを抽出して、そのほかの文言はC****でも****Cでも*C*でもどんな組み合わせでもそのままデータを反映してほしいのです。 A,B,C,D…リストにはたくさんの名前があります。 なにとぞよろしくお願いします

  • s1023
  • お礼率77% (49/63)

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

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

ご質問の意味をよく理解していませんが次のような式にしてはいかがでしょう。 =IF(COUNTIF(A1",*A*"),"A",IF(COUNTIF(A1,"*B*"),"B",A1))

s1023
質問者

お礼

ありがとうございます。 出てきました(#^.^#) すっきりしました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

最終的にどういう結果が欲しいかというと、  Aが含まれていたらAと出したい  Bが含まれていたらBと出したい  どちらも含まれていなかったらそのまま出したい。 で。 AもBも含まれていたら、AとBを出したい?それとも何かAが出たらBはもう要らないみたいな優先順位がある、あるいは説明されていない前提で複数含まれる事は絶対に無いと保証済みである? 作成例: =IF(OR(ISNUMBER(FIND({"A","B"},A1))), IF(COUNTIF(A1,"*A*"),"A","")&IF(COUNTIF(A1,"*B*"),"B",""), A1)&""

s1023
質問者

お礼

説明不足ですいません((+_+)) 初めに、おっしゃっておられた通りです。        ↓ Aが含まれていたらAと出したい Bが含まれていたらBと出したい どちらも含まれていなかったらそのまま出したい。 エクセルはいろいろできるのはわかっているのですが 求めるものがなかなか出せず、へこんでしまいます。 教えていただいた数式も参考に いろいろチャレンジしてみます。 ありがとうございました。

関連するQ&A

  • エクセル 2つのセルを反映

    エクセルを使って成績処理のシステムを作っています。 そこで,次のようなことができないかと思っているのですが,どなたかご教授いただけましたら幸いです。    セル1(平均値を算出する数式)     セル2(手入力※通常は空欄)     セル3(成績確定となるセル※セル1,またはセル2を反映する。) セル1には,他シートのデータの平均値が出るような数式が組み込まれています。データの平均値はA,B,Cに換算されてA,B,Cで表示されます。 通常は,このセル1のデータが,そのままセル3に反映されるようにします。(A,B,C)この場合,セル2は空欄となります。 しかし,セル1のデータが,児童の成績の実態と異なるとき(本当はAなのにB,とかCなのにB等),セル2に手入力でデータを打ち込み( A or Bor C )ます。すると,セル3にはセル2で打ち込んだデータが優先されて反映されるようにしたいのです。 こんなことができたら理想なのですが…。 あるいは別のアイディアがありましたら,あわせてご教授くださったらありがたいです。 どうぞよろしくお願いいたします。

  • エクセル 配列数式 #DIV/0!があると反映されない

    話がややこしいかと思うのですが、宜しくお願いします。 以前に、「楽天みんなで解決」のビジネス&キャリアで質問させていただいたことに大して再び質問させていただきたいのです・・。 どうかお力を・・・!! 以前はこんな質問を致しました。 ーーーーーーーーーーーー エクセルについての質問です。   A B  C 1 ○ 佐藤 ■ 2 × 鈴木 3 ○ 後藤 4 △ 近藤 5 △ 小林 6 × 大山 7 △ 大林 8 × 小山 9 ○ 松田 のようなデータがあります。 この中で、■(つまり、C1セル)に、「○」の行にある、B列の文字を返したいのですが、■(つまり、C1セル)に =VLOOKUP("○",$A$1:$B$9,2) と入力し、C10セルまでコピーしても、うまく反映されません。 私がほしい結果としては、 ○  △  × 佐藤 近藤 鈴木 後藤 小林 大山 松田 大林 小山 という具合に抽出したいのです。 ーーーーーーーーーーー この質問にたいする回答といたしまして、 ========== 一例です。 データをSheet1、Sheet2の1行目に記号があるとします。 Sheet2のA2に次の数式を入力して、縦横にコピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =IF(COUNTIF(Sheet1!$A:$A,A$1)>ROW(A1)-1,INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A$1:$A$100=A$1,ROW(Sheet1!$A$1:$A$100),99999),ROW(A1))),"") ========== という回答を頂きました。 一度はこれで解決したのですが、今回また問題が発生してしまったのです。 「○」や「△」の記号や「定価」といった文字ではうまくいくのですが、【#DIV/0!】というエラー値が一個でも入ると、とたんにうまく反映されなくなるのです。 例:前述のデータ表に沿うとします。以下のようにA5セルにエラーが入ると、とたんに全部#DIV/0!となってしまいます。   A   B    1 ○   佐藤  2 ×   鈴木 3 ○   後藤 4 △   近藤 5 #DIV/0! 小林 6 ×   大山 7 △   大林 8 ×   小山 9 ○   松田 <抽出後> ○    △    × #DIV/0! #DIV/0! #DIV/0! #DIV/0! #DIV/0! #DIV/0! #DIV/0! #DIV/0! #DIV/0! 大変困っております・・・。 自分で解決しようものにも、数式の意味が解読できませんでした。。配列数式とはなんぞや、括弧がたくさんあって意味がよくわからず・・。 解決方法をどなたかご教授を!! ついでに、なぜこのような現象がおきてしまうのか、できたら教えていただきたいです・・。

  • 「エクセルでデータのある行だけを他のシートに抽出する」を参考にしたのですが・・・

    下記過去の質問・回答を見つけ私も参考にさせて頂きましたが手詰まって困っています。 http://okwave.jp/qa943364.html なおこの質問の数式・例は全て過去質問の回答者:imogasiの回答を参考にさせて頂きました。 やりたい事→データを抽出する場所(A1をA3/B1をB3)を変更したいのです。 現状は(例データ)Sheet2のA1:B9(C列は関数式を入れた結果) A  B C 210 伊藤 1 211 山田 2 212 0 2 214 2 216 近藤 3 217 鈴木 4 219 0 4 220 4 221 大田 5 Sheets2の C1に=IF(A1="","",COUNTA($B$1:B1)-COUNTIF($B$1:B1,0))がはいり下にコピーしてます。 抽出するSheets3の A1に=IF(ROW()>MAX(Sheet2!C:C),"",OFFSET(Sheet2!$A$1,MATCH(ROW(),Sheet2!$C$1:$C$30,0)-1,0)) B1に=IF(ROW()>MAX(Sheet2!C:C),"",OFFSET(Sheet2!$A$1,MATCH(ROW(),Sheet2!$C$1:$C$30,0)-1,1)) 上記でうまくデータを抽出できるのですが、抽出する場所をA1及びB1を変更するとうまく抽出できません。 抽出場所をA3及びB3にする為にはどのような工夫が必要になるのでしょうか?

  • Excelの文字列関数について

    Excelの文字列関数について こんにちは。Excel2007を使用しています。 先日、こちらで質問させていただいた【QNo.5785641】の続きになるのですが・・・ セルの中にある特定の文字が含まれている場合は、ある文字の後ろの数値を抽出したいという質問で、 例えば、セルA1に『AA-11 $100.00』、A2に『BB $ 95.00』と入力されている場合、『AAという文字が含まれている場合はB1に$マークの後ろの数値を抽出、BBという文字が含まれている場合はC1に$マークの後ろの数値を抽出する』というものを関数を使用して作りたいというものに対し、 =IF(COUNTIF(A1,"*AA*")=1,RIGHT(A1,LEN(A1)-FIND("$",A1)),"") =IF(COUNTIF(A1,"*BB*")=1,RIGHT(A1,LEN(A1)-FIND("$",A1)),"") という回答をいただきましたが、さらに追加で質問です。 例えば、セルA1に『AA-11 $100.00 aabbcc』、A2に『BB $ 95.00 abc』というように、抽出したい数値の後ろにも文字が入力されている場合はどのようにしたらよいのでしょうか? 宜しくお願いします。

  • エクセルのIFについて

    何度もすみません、いつもありがとうございます。 また行き詰ったのでお力を貸してください。 前回 【状態】 ・B2:E2の中に【空白、◎、●、▲】のいずれかが入っている ・条件によりF2に【S,A,B,C,ネタ】が入る 【条件】 ・S⇒すべて◎ ・A⇒3回連続した◎がある ・B⇒◎3つ以上だが連続していない ・ネタ⇒●が1以下かつ、◎がない ・Cがそれ以外 で関数についてご質問したのですが、条件が変わってしまい以下のように作成したのですが FALSEになってしまいました。 =IF(COUNTIF(B2:E2,"◎")=4,"S",IF(COUNTIF(B2:E2,"◎")=3,IF(COUNTIF(C2:D2,"◎")=2,"A","B"),IF(COUNTIF(B2:E2,"●")=3,IF(COUNTIF(C2:D2,"●")=2,"C","ネタ"),IF(COUNTBLANK(B2:E2)=0,IF(COUNTIF(B2:E2,"▲")=0,"B","ネタ"),IF(COUNTIF(B2:E2,"▲")=1,IF(E2="▲","C","")))))) 新条件は ・S⇒すべて◎ ・A⇒3回連続した◎がある ・B⇒A以下、C以上 ・C⇒●が連続して3つ以上 ・ネタ⇒空白が1つ以上ある、または▲が2つ以上、未達成である 記号は ◎>●>▲>空白で、3/4が●以上かつ、B2からD2が●以上であると達成になります。 Bは組合せが多いですが、たとえば◎が2つ、●が2つだと達成になりますがC以上なのでBになる…といった具合です。 何度もすみません! 皆様のご協力に感謝します*

  • EXCELでうまく反映させたい

    A列に名前、B列に数、C列に日付が入っています。 それが100行あります。 D列以降の1行目にに7/1から7/31まで日付が入っていて、A列からC列までをD列の2行目から100行目までに反映させて、表を作りたいと思っています。 A・B列・C列にそれぞれ名前や数、日付を入れるとD列以降の日付の下に必要な数量が入るように数式を作る方法はありますか? A・B・C列は専用端末からデータを持ってくるので、その度にD列以降を手で作るのは大変です。A・B・C列だけだと、見た目に見づらいので何日にいくつ(数)必要かを一目で見られるようにしたいのです。 何かいい方法を思いつく方いらっしゃいますか? よろしくお願いします。

  • 品番と複数のオプションの有無を判断してテキスト表示

    EXCELで管理番号から関数で色々なデータを表示させるシートがあり、その中に品番とオプションで引用するセルのかわる部分があるのですが、 【品番-AA-WW】という形式で品番とオプションの情報が一つのセルに入っていてIFとVLOOKUPの組み合わせが使えず 現在は大本のデータを見ながら品番を自分で入力して、COUNTIFでオプションの有無を確かめて、 =IF(B2&"-"&B5="1-1",VLOOKUP(A5,Sheet4!A1:C200,2,FALSE),IF(B2&"-"&B5="1-0",VLOOKUP(A5,Sheet4!A6:B200,2,FALSE))) というやり方やっているのですが、一日にこなす数が多く手作業で入力する手間を省きたいと思い、何かいい方法がないかといろいろやってみたのですがうまくいかず・・・ 【品番】【品番-オプション】【品番-オプション-オプション】と、0~2個のオプションが付くのですが、これらすべてに対応するような方法はあるのでしょうか・・・? 【現状】 A1 B1 C1 品番-AA-WW =COUNTIF(A1,"*-AA*") =COUNTIF(A1,"*-WW*") A2 品番(手入力) A3 =IF(B1&"-"&B3="1-1",VLOOKUP(A2,Sheet4!A1:C200,2,FALSE),IF(B1&"-"&B3="1-1",VLOOKUP(A2,Sheet4!A6:B200,2,FALSE))) うまく説明が出来ないのですが、助言を頂けますと助かります。

  • EXCELのオートフィル抽出結果に連続数字

    EXCELでオートフィル抽出結果に連続数字を打ちたく思い、 抽出結果を出した上に、B6セルに=IF(A6="○",COUNTIF($A$6:A6,"○"),"")と数式を入れましたが、 この方法だと1からしか数字が振れないのですが、中途半端な数字(例えば450)から連続数字を入れたい場合は 数式をどのようにしたら宜しいでしょうか。 ご回答お願い致します。

  • EXCELで再遅時間を抽出する

    エクセルの表において、該当の日付の中から、一番遅い時間を抽出したいのです。再早時間は同じような質問内容の「再早時間の抽出」から関数をコピーして抽出することはできました。 =IF(ISNUMBER(1/DAY($C20)),IF(COUNTIF($A:$A,"<"&INT($C20)+1)-COUNTIF($A:$A,"<"&INT($C20))>0,MOD(SMALL($A:$A,COUNTIF($A:$A,"<"&INT($C20))+1),1),""),"") 上記の関数と逆で再遅時間を抽出する関数を教えていただきたいです。 具体的には↓のような資料で作成しています。

  • エクセル、毎回2づつ増えいくデーターの式?

    よろしくお願いいたします。エクセルで別表からA2、B2に ともに145行までデーターが入っていて、C1に各当するものをA列から引っ張ってくる式が下の数式です。 【=IF(ROWS($2:2)>COUNTIF($A:$A,$C$1),"",INDEX($B:$B,SUMPRODUCT(ROW($A$2:$A$145)*($A$2:$A$145=$C$1)*(COUNTIF(OFFSET($A$2,,,ROW($A$2:$A$145)-ROW($A$2)+1),$C$1)=ROWS($2:2))))) 】 行数が一定で、中だけ数値が変化する分にはいいんですが、毎回2行分データーが増えていきますので、毎回A145の式を147に変えて、手数がかかって、なんかいい式がないもんかとのお伺いなんです。 よろしくお願いいたします。

専門家に質問してみよう