• ベストアンサー

エクセル・IF関数・レフト/ライト関数について

よろしくお願いいたします。 例えば ある文字の 右から5行目(最後の一文字はいらない)までの文字を 読み込みたいという時の事ですが・・・・ たとえば セルA1 の 日野自動車 (7205) という文字の 7205 だけを読み込みたいのです。 =RIGHT(A1,5) という関数を使うと 表示されるは 7205)と なります。最後の ) がいらないのです。(SAM計算ができなくなるため)   表示    日野自動車 (7205) 式        ↓=RIGHT(I1,5) 表示       7205) 式        ↓=LEFT(I2,4) 表示       7205 このやり方なら できましたが・・・・ IF関数をしこむ セルが2つになってしまうなどで 困ってしまったのです。セル 一つにIF関数をしこめば大丈夫な式はありますでしょうか? すみませんが よろしくお願いいたします。  

  • net24
  • お礼率88% (92/104)

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

=LEFT(RIGHT(A1,5),4) ではいかがでしょう? でもこれで表示される数字は、実は文字列です。 数値にしたいなら =VALUE(LEFT(RIGHT(A1,5),4)) ですね。

net24
質問者

お礼

早速の回答 ありがとうございました。わかりやすい説明をありがとうございます。そのまま コピーして 使用できました。この式が 短く とても 簡素なため 使用させていただきます。本当にありがとうございました。

その他の回答 (3)

  • xcode_15
  • ベストアンサー率18% (19/102)
回答No.4

文字列が固定長なら、Mid関数が使える。 Mid関数・・・Mid(対象文字列、開始位置、終了位置)

参考URL:
http://www.moug.net/tech/exvba/0140016.htm
net24
質問者

お礼

すみません。説明不足でした。 表示文字数は 変化します。たとえば 日野自動車(7205) ソフトバンク(3365) KDDI(1357) という感じです。 MID関数というものも知り勉強になりました。本当にありがとうございました。

  • Us-Timoo
  • ベストアンサー率25% (914/3620)
回答No.3

そういう場合、MID関数を使うと思いますが。

net24
質問者

お礼

すみません。説明不足でした。 表示文字数は 変化します。たとえば 日野自動車(7205) ソフトバンク(3365) KDDI(1357) という感じです。 MID関数というものも知り勉強になりました。本当にありがとうございました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

SUMを行なうのであれば、 例えばA1に文字列があり、"("と")"の間の数字を数値にするなら、 =MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)*1 では、どうでしょうか? ()がないとエラーになっちゃいますけど。

net24
質問者

お礼

早速の回答ありがとうございました。すごい早い回答で ビックリしています。自分なんて 初心者なので 一つの式を作るのに何十分もかかってしまい仕事にならないんですよ(笑)うらやましいです。式を そのまま コピーして 使用できました。本当にありがとうございました。

関連するQ&A

  • if関数とright関数を組み合わせて…

    初めて質問させていただきます。 if関数とright関数を組み合わせて、*だけを消して表示させる式を作成したいのですが… セルA1には、別シート(入力画面)のセルを参照する式が入っています。 入力文字末尾に『*』が付くと男性、付かないと女性を示します。 入力画面では『*』を意識しますが、表示画面には『*』を表示させたくありません。 そのため、参照しているセルに、『*』があった場合は、『*』を表示させないという式を作成したいのですが、どのように作成すれば良いでしょうか? よろしくお願い致します。

  • LEFT RIGHT関数のことで教えてください

    いつもお世話になっております LEFT RIGHT関数のことで教えてください Private Sub Worksheet_Change(ByVal Target As Range)内のマクロで セルに式を書き込んでいます Range("D" & Target.Row).FormulaR1C1 = "=LEFT(RC[-1],5)" セルD16には機器名5と書いてあります この時 Range("D" & Target.Row).FormulaR1C1 = "=LEFT(RC[-1],5)" の5は、セルD16の機器名5の右から1文字目の5なのですが 式ではどう表現したらいいのでしょうか?

  • Left関数とRight関数を合わせたような

    こんにちは いつもお世話になっています。 A列に文字列があります。 文字の長さは不定ですが、左から3文字、右から4文字は共通して不要なので削除したいです。right,leftの両関数を合わせたような関数を教えてください。 二列で分けて処理するのではなく一回の関数で処理希望です。 =LEFT(A2,LEN(A2)-4)&RIGHT(A2,LEN(A2)-3) こんなので失敗しています。 よろしくお願いします エクセル2007

  • エクセルのif関数で

    エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。

  • エクセル IF関数について

    エクセルのIF関数で困っています。 A1のセルは、他のセル(B1)から飛ぶような設定をしている(=B1) B1に入力しない事があるで、A1の「0」に表示しないようにユーザー設定で「#,##0;"△ "#,##0; 」としている。 A2のセルには、A1に文字が表示されたときのみ「日」と表示するようにIF関数を入れた。「=IF(A1="","","日")」 しかし、A1に何も表示されていないのに、「日」が表示されてしまう。 試しに「=IF(A1="0","","日")」としたが、これでも「日」が表示されてしまう。 このような場合、IF関数はどうすればいいのでしょうか。 説明が下手ですいません。 どうか教えてください。

  • エクセルのIF関数で、文字が入力されていたならば~

    エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。 =IF(A1="『どんな文字でも』","",+B1-C1) A1セルに『どんな文字でも』入っていたならば、空白に。 文字が入っていなければB1セルからC1セルを引く、という状態です。 この『どんな文字でも』の部分に何を入れればいいのか教えてください。 またIF関数以外でも同様のことができれば構いません。 宜しくお願いします。

  • IF関数の条件に関数を指定

    Excelに関する質問です。 ちょっと分かりづらいのですが、例えばセルA1とB1があるとします。 A1には別シートのセルが参照されています。(「="あ!A1"」など) ここで、B1にはIF関数を入れたいのですが、その時A1の関数式内の文字を条件にしたいのですが、そういうことはできますか? つまり、B1にIF関数で「A1セル内の関数式内に"あ"の文字がある時に"い"と表示する」のようにしたいのです。 普通に「=IF(A1="あ","◯","")」ではできません。 Google先生でも調べてみたのですが、分かりませんでした。 お知恵をいただければ幸いです。

  • エクセル 空白を消す関数 IF?

    エクセル2002を使っています。 A1のセルに「あい うえお」 A2のセルに「かきく けこ」 A3のセルに「さ しすせそ」…と200行入力してあります。 空白(スペース)を消したいのですが、スペースが入っている位置はまちまちなので、リプレイス関数は使えません。 何とか関数を使って、空白を消す事は出来るのでしょうか? 私が思いついたのはIF関数で、『もしA1のセルに空白があったら空白を消す』と命令できるかも・・・と思ったのですが、式がどのようになるのか分からないし、もっと簡単な、もしくは別の関数があったらぜひ知りたいです。

  • エクセルIF関数について

    エクセルIF関数について A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。 という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。 IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか? どなたか教えてください。

  • EXCELのIF関数の入れ子について

    すみませんよろしくお願いします。 EXCELでセル(A1)~(L1)までに不特定の文字列が入力されており、(M1)に「もし(L1)が入力されていたら(L1)の値を表示、もし(L1)がブランクなら(K1)の値を表示、もし(K1)がブランクなら(J1)の値を表示、もし(J1)がブランクなら(I1)の値を表示・・・・」といった具合で関数を作成したいのです。また、(A1)~(L1)のセルで穴あき状態で入力されていた場合は最も(L1)寄りのセルを表示させたいです。 EXCEL2003のIF関数だと、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="","",E2),F2),G2),H2),I2),J2),K2),L2) で最後の(A1)までの入れ子を作ることができせん。 EXCEL2007を使用すると、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="",IF(D2="",IF(C2="",IF(B2="",IF(A2="","",A2),B2),C2),D2),E2),F2),G2),H2),I2),J2),K2),L2) と作成できます。 EXCEL2003で作成するいい方法はありますでしょうか? ご指南の程よろしくお願いします。

専門家に質問してみよう