• ベストアンサー

【エクセルの数式を教えて下さい】

【エクセルの数式を教えて下さい】 エクセルで、A列を参照して、B列に次のように反映させたいです: A列 A1 apple A2 a banana A3 a cup of tea B列 B1 a B2 b B3 c スペースを含まない文字列の場合は、最初の一文字を、スペースを含む文字列の場合は、最初のスペースの次の一文字を返す数式を作りたいのです。 countif や find を使って作れるかと思ったのですが、自分のレベルではダメでした。 関数が出来る方、教えて頂けますか? よろしくお願い致します。

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

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.5

エラー処理を忘れていました。 B1=IF(ISERROR(FIND(" ",A1,1)),LEFT(A1,1),MID(F13,FIND(" ",A1,1)+1,1)) " "の中は半角スペースです。 FIND関数は検索対象の中にキーワードが含まれていないとエラーになります。 エラーになったときは、文字列の最初の文字を抽出します。 2、3のケースで確認しました。これで、最初のスペースの後の文字が抽出されると思います。 本当は、a cup of tea は、c ではなく t にしたいのでしょうけど。これは難しい。VBAならできると思いますが。

lightgray
質問者

お礼

m_and_dmp様 ご回答、ご教示どうも有難うございました。 欲しい文字がちゃんと返りました。 ISERROR関数は、「=()」や「=NOT()」で避けていましたね…。使えるようになりたいと思いました。 また、恥ずかしながら、「エラーになったときは、文字列の最初の文字を抽出」するという、FIND関数のルールも知りませんでした。勉強になりました。 今回はお世話になりました。

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

その他の回答 (4)

  • tear13
  • ベストアンサー率33% (3/9)
回答No.4

=MID(ASC(A1),IF(ISERROR(FIND(" ",ASC(A1))),0,FIND(" ",ASC(A1)))+1,1) とか、 =IF(ISERROR(FIND(" ",ASC(A1))),LEFT(ASC(A1),1),MID(ASC(A1),FIND(" ",ASC(A1))+1,1)) ではどうですか?

lightgray
質問者

お礼

tear13様 ご回答、ご教示どうも有難うございました。 2式とも、欲しい文字がちゃんと返りました。 ISERROR関数は知りませんでしたので、使えるようになりたいと思いました。 最初の式は、MID関数から始めて収めてあって、格好よいですね。 今回はお世話になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.3

最初の文字列が決まっていない場合は、FIND関数で正解です。 B1=MID(A1,FIND(" ",A1,1)+1,1) " "の中は半角スペースです。

全文を見る
すると、全ての回答が全文表示されます。
  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.2

theにならなくても、an になることはありそうなので、修正します。 B1=IF(Left(A1,1,2)="a ", MID(A1,3,1),IF(LEFT(A1,1,3)="an ", MID(A1,4,1),Left(A1,1))) この方法ですと、IFをもう一つネストすると the でもOKです。

lightgray
質問者

お礼

m_and_dmp様 ご回答を有難うございました。 修正バージョンも考えて下さって有難うございます。 確かに、apple と a banana と a cup of tea は例示に過ぎなくて、"a" "an" "the" には限らないのです。今後どういうフレーズ(というか、アルファベットの並び)が出てきても対応できるように、限定しない数式を作っておきたいのです。 シンプルなようでいて、考え始めたら、自分ではお手上げでした。 スペースの有る無し、どこに入るか、で区別するのって、難しいようですね…。

全文を見る
すると、全ての回答が全文表示されます。
  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.1

B1=IF(MID(A1,2,1)=" ",MID(A1,3,1),Left(A1,1)) " "の中は半角スペースです。 でどうですか? a bananaは、the bananaとなることはないですね?最初がtheだともう少し複雑になります。

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

関連するQ&A

  • エクセル数式の質問です

    エクセルの質問です。 文字列「A」と「B」を検索して個数が知りたいのですが、文字列「A,B」というデータの優先されるのがAであった場合、A=1個。B=0個とカウントしたいのです。何か良い数式はありませんか?

  • Excelで数式中に他セルの値

    Excelで数式について、他のセルに書いてある数字を文字列として代入したいのですが、 どうすればよいでしょうか。 具体的には 1  A1に10と入っており 2-1 B2に=COUNTIF(OFFSET(A1:D10, 0, 1), "=【A1】") 2-2 SUMIF(~~~, "=【A1】", ~~~) のような形で、A1の値に応じてCOUNTIFとSUMIFの条件分岐をしたいのです。 よろしくお願いします。

  • Excel 数式 数え方について

    こんにちは!エクセルの数式について教えて下さい! 同じ範囲からAとBとCとDを数える、ということをやりたいのですが COUNTIFを4つ用意するより簡単なやり方は無いでしょうか?

  • エクセルで数式を教えてください。

    エクセルで数式を教えてください。 通帳で考えると分かりやすいです。 A列には入った金額、B列には出て行った金額、C列には差し引き残高です。 データは100行目まで使います。 C列に入れる数式を教えていただきたいです。 また、残高がマイナスのときは、赤文字になると嬉しいです。 いや、-でも嬉しいです。

  • エクセル:~か~が含まれている場合~と表示の数式

    はじめまして。 エクセル2003を使用しているのですが、 画像のように、B列の文字で判断をして含まれる文字に応じてA列に『0』か『1』という結果を返したいです。 具体的には、 B列に『銀行振込』か『かんたん』という文字がどちらかが入っていたら『0』、『商品代引き』という文字が入っていたら『1』という数字をA列に表示させたいのです。 ※B列にはこの3種類の文字しか入りません。 COUNTIFで数式を組み始めたのですが全然分からずこちらの質問掲示板を初めて利用させて頂きました。 過去の質問を確認いたしましたが検索の仕方が悪い為か中々同じ内容が見つからず困っております。 初めての質問で勝手が分からずご迷惑お掛けしてしまうかもしれませんがどなたかご教授よろしくお願いいたします。 仕事でCSVデータを規定のテンプレートに飛ばす為に必要ですのでよろしくお願いいたします。

  • セルに数式が入ってるかどうかを取得する関数は?

    C1には、=SUM(A1:B1) C2には、0 が入力されています。 実際、A1:B1の値は0なので、 C1もC2も0が表示されています。 D列で、ちゃんとC列にsum関数が入ってるか調べてたいのですが =COUNTIF(C1,"*sum*") をオートフィルしても、0が返ります。 C3に「sum」と言う文字列を入れて、=COUNTIF(C3,"*sum*")をしたら 1が返りました。 COUNTIF関数は文字列は認識しますが数式は認識しないようです。 このような場合、セルに数式が入ってるかを取得する方法はありますか?

  • エクセルの関数の数式がわかりません。

    A列 B列 1 10 2 20 3 30 a 4 40 エクセルの関数の数式がわかりません。 B1~B4のどこかにaの入力があった場合、aの入力がある行と同じ行のA列に入力されている数字を別のセルに表示させたいです。 例えば、上記のようにB3にaがあるので、A3の30を、別のセルに自動で30と出るようにしたいです。 B列には、ランダムにaを入力しますので、aが別の行にある場合もあります。 この場合の数式を教えてください。 よろしくお願い致します。

  • エクセル セルを3つに分割する数式

    お世話になります。 表題通り セルを3つに分割する数式についてアドバイスを頂けると助かります。 作業の円滑化のために、区切り位置は使用しないつもりです。 1つのセルに 「10 20 30 」(数字スペース数字スペース数字)のような 3つの数字が入っており、それを分割したいのですが、 次のような桁数がバラバラなものも、正しく分割できるA2,A3,A4の数式はありますでしょうか? 例:       1        2      3     4 A  5 10 200      5 10 200 B  100 0 100  100 0 100 C 30 30 30 30 30 30 A2の場合は、 =LEFT(A1,FIND(" ",A1)-1) でうまくいきましたが、 真ん中、右側がうまくいきません。 宜しくお願いいたします。

  • エクセル 追加質問

    【質問】 A1のセルに「日本一株式会社 マーケティングスタッフ 山田太郎」 と一行で書かれた時に、 日本一株式会社を判別してB1にはその住所、B2は電話番号、B3はFAX番号を 書かせたいのですがどうのようにしたらいいのでしょうか。 の質問に対して以下のような解答を頂きました。 【回答】 シート1のA1セルに入力されるデータはスペースでいくつかの文字列に分かれているとして、最初のスペースまでの文字列を対象として住所や電話番号FAX番号を表示させるとしたら、次のようにします。 データベースとしてシート2にはA列に日本一株式会社などの文字列が、B列には住所、C列には電話番号、D列にはFAX番号が入力されているとします。 そこでシート1のB1セルには次の式を入力してB3セルまでオートフィルドラッグします。 =IF(COUNTIF(Sheet2!A:A,LEFT(A$1,FIND(" ",A$1)-1))=0,"",INDEX(Sheet2!B:D,MATCH(LEFT(A$1,FIND(" ",A$1)-1),Sheet2!A:A,0),ROW(A1))) と頂きましたが、 Sheet1 B3 まで反映されるのですが、B4、B5・・・と以降反映させる為にはどこを書き換えればよろしいのでしょうか。 ちなみに B4は =IF(COUNTIF(Sheet2!A:A,LEFT(A$1,FIND(" ",A$1)-1))=0,"",INDEX(Sheet2!B:D,MATCH(LEFT(A$1,FIND(" ",A$1)-1),Sheet2!A:A,0),ROW(A4))) になっています。 変更箇所の指摘、回答よろしくどうぞ。

  • エクセルで、文字の完全一致ではなく、文字の一部が含まれているかをチェックする方法

    質問させてください。 エクセルのA列の文字の一部に、B列の文字が含まれているかどうか、 をチェックする数式を教えて頂けないでしょうか。 例えば、 A列:「赤 青」、「白 黄」、「緑 黒」 B列:「赤」「青」「黒」 この場合、A列の「赤 青」と「緑 黒」のセルの横に○、 というようにしたいのですが。。 VLOOKやCOUNTIFでは、“文字の一部”というのはチェックできないようで、 かつ、LEFTやRIGHTも使いづらい場合です。 きっと簡単な数式があるのでは、と思いお尋ねしました。 どうぞ宜しくお願い致します。

このQ&Aのポイント
  • 「FMVA51C3W」を利用している人が気になるWindows11 Insider Previewのインストール中止方法について解説します。
  • 最新のWindows11 Insider Preview25158をインストールしてしまった結果、パソコンの動作が遅くなってしまいました。個人的には必要のないバージョンですが、Windowsアップデートを確認すると、ダウンロード中の状態です。インストールを無視する方法や中止する方法について説明します。
  • Windows11 Insider Preview25158のインストールが保留中で、「今すぐインストール」を押せば開始されますが、これを消すことはできないのでしょうか?また、インストールしないで無視し続けても問題はないのかという疑問についても解説します。
回答を見る