• ベストアンサー

EXCEL2002で,IF thenの関数式を使い、値が「空白」なら、もう一方の関数式を代わりに代入する方法

 EXCEL2002で,IF thenの関数式を使い、値が「空白」なら、もう一方の関数式を代わりに代入する方法を教えて下さい! (1) 通常なら、AA5というセルに、 =RSS|'1332.T'!現在値  という関数式が入っているとします。 (2) ここで、元々上記式が入るAA5セルの値が「空白」(⇒決して「0」ではない。ことに留意して下さい。)であるなら、もうひとつ用意した  =RSS|'1332.T'!○○○ を文字通り、選択的に用い、IF thenの関数式を使って、その値を表示させる。  どちらの式も命令文の一文として、勿論、AA5に入っています。  即ち、間違っていると思うのですが、数式のイメージとしては、  IF =RSS|'1332.T'!現在値=「 」 then =RSS|'1332.T'!○○○ (3)こうしたIF thenの関数式の”正しい式”を教えて頂けないでしょうか?   何卒、宜しく御願いします。

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

  • ベストアンサー
回答No.3

(1)>Range("AA5").Formula⇒Range("AA5:AA229").Formulaに変更すれば あくまでAA5が空白でいいという前提ならOKですが たぶんAA6に対しても、となってくるのでは?そうなるとFor~Next使わないとたぶん無理 (2)私もRSSは知らなかったのですが、テストしてみたら何となく外部参照しているくらいしか分からなかったんで… >返される値が、空白 どゆこと?関数が入力されているわけではないのですか? それともマクロで数式=.Valueとなっているのでしょうか? >前の条件式、RSS|'1332.T'!現在値 と比較してみると、唯一の違い は、「○○○」の部分でしかないので、  「○○○」以前の数式「RSS|'1332.T'!」を上手に「置換」を使って、「入力式」を普遍化できないでしょうか? 言っていることがいまいち…

TRADKING
質問者

お礼

 有難うございます。  現在では、随分と難しいことを、取り越し苦労で考え過ぎていたように思い、反省しています。  様々な形で試行作業を繰り返したところ、ANo.4さんの「シンプルな式こそ全てに勝る」という考えに感化され、以後、改めようと思います。  これまで、有難うございました。

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

このアドインの正体はこれですかね http://kabu.muimi.com/k/rakuten_rss/1/ セルAB5に =RSS|'1332.T'!現在値 セルAC5に =RSS|'1332.T'!○○○ を表示させるようにしておいて、AA5には =IF(AB5="",AC5,AB5) とするのが順当ではないでしょうか? =IF(RSS|'1332.T'!現在値="",RSS|'1332.T'!○○○,RSS|'1332.T'!現在値) とIF関数の中に直接アドインを記述して動作するなら、こちらの方がシンプルだとは思いますが…

TRADKING
質問者

お礼

zap35様には、困ったときに、こうして、毎回、タイミング良く窮状を助けて下さり、本当に感謝の言葉に耐えません。  改めて、有難うございます。  仰るとおり、ご指摘の通りのアドインです。  関数式をセルに代入した結果、「現在値」が表示されますので、現在のところは、「問題がない」のですが、  ★セルの値表示が「空白」になる状態というものを、自動的には「作り出せない」ものですから、それが可能になる「月曜日」を待って再び御報告させて下さい。  手前勝手な都合で、御迷惑をお掛けして、たいへん申し訳ありません。また、その節は、宜しく御願いします。

TRADKING
質問者

補足

 御礼をした後で、再び質問ということで、すみません。  下記の算式 >=IF(RSS|'1332.T'!現在値="",RSS|'1332.T'!○○○,RSS|'1332.T'!現在値) で、RSS|'1332.T'!○○○, も「空白」になってしまう場合について、次の選択肢に、  RSS|'1332.T'!△△△, を、選択させる場合、 =IF(RSS|'1332.T'!現在値="",RSS|'1332.T'!○○○,RSS|'1332.T'!△△△,RSS|'1332.T'!現在値) とすれば、良いのでしょうか?  EXCEL2002のヘルプをみても、そこまで詳しくは、書いていないので、そういった情報は、ネットのHP等、どのような所から、一体どうやって探してきたら良いのでしょうか?  良い御知恵が御座いましたら、教えて頂けないでしょか?

回答No.2

If Range("AA5").Value = "" Then Range("AA5").Formula = "=RSS|'1332.T'!○○○" End If でいいのかな?

TRADKING
質問者

お礼

いち早い回答有難うございます。  建設的な御意見であり、非常に有難く思います。上記式の中で、 (1)>If Range("AA5").Value  の括弧内の数字を("AA5:AA229")に変更した場合、  下の式は、  >Range("AA5").Formula   ⇒Range("AA5:AA229").Formulaに変更すれば、AA5からAA229まで、同一の作業を行ってくれるのでしょうか?  (2)また、そうした変更を加えるのであれば、AA6以下の各々のセルについても同様に、  >"=RSS|'1332.T'!○○○"(⇒「○○○」は「前日値」です)  を、  前の条件式、RSS|'1332.T'!現在値 と比較してみると、唯一の違い は、「○○○」の部分でしかないので、  「○○○」以前の数式「RSS|'1332.T'!」を上手に「置換」を使って、「入力式」を普遍化できないでしょうか?  手前勝手な、無理めな注文であることは、十分、承知しております。  そこを何卒、一度、乗りかかった船だと考慮して頂き、御回答くださ い     

TRADKING
質問者

補足

 私の為に、本日は、深夜までお付き合い頂き、誠に申し訳ありません。明日、また、下記の質問に、御答え頂けるよう、宜しく御願いします。  申し遅れましたこととして、念のため。 「RSS」というのは、「アドイン」を利用した「外部参照の特別なユーザー定義関数」であり、その為、「返される値が、空白」になってしまうのです。  他、私の、状況と件の問題の説明で解り難い点は、改めて「何なりと御説明致しますので」何卒、宜しく御願いします。

noname#46899
noname#46899
回答No.1

関数式もデータのひとつですから、関数式を入力したらそのセルは空白では有り得ません。したがって質問自体が成り立ちません。 ちなみにExcelのIF関数の文法は if(真偽式,THEN,ELSE) ですから、空白を判断する場合のIF関数の使い方は =if(ターゲットセル="","空白です","空白じゃありません") となります。 ところで、RSSなんて関数は無いと思いますけど?

TRADKING
質問者

お礼

 いち早い回答有難うございます。  「RSS」というのは、「アドイン」を利用した「外部参照の特別なユーザー定義関数」であり、その為、「返される値が、空白」になってしまうのです。私の説明で、お解かり頂けたでしょうか?  率直な御意見であり、非常に有難く思います。  ANo2さんのご意見ですが、御存知であれば、是非、お答え頂きたいのですが、宜しいでしょうか?  上記式の中で、 (1)>If Range("AA5").Value  の括弧内の数字を("AA5:AA229")に変更した場合、  下の式は、  >Range("AA5").Formula   ⇒Range("AA5:AA229").Formulaに変更すれば、AA5からAA229まで、同一の作業を行ってくれるのでしょうか?  (2)また、そうした変更を加えるのであれば、AA6以下の各々のセルについても同様に、  >"=RSS|'1332.T'!○○○"(⇒「○○○」は「前日値」です)  を、  前の条件式、RSS|'1332.T'!現在値 と比較してみると、唯一の違い は、「○○○」の部分でしかないので、  「○○○」以前の数式「RSS|'1332.T'!」を上手に「置換」を使って、「入力式」を普遍化できないでしょうか?  手前勝手な、無理めな注文であることは、十分、承知しております。  そこを何卒、一度、乗りかかった船だと考慮して頂き、御回答くださ い     

TRADKING
質問者

補足

私の為に、本日は、深夜までお付き合い頂き、誠に申し訳ありません。明日、また、下記の質問に、御答え頂けるよう、宜しく御願いします。  他、私の、状況と件の問題の説明で解り難い点は、改めて「何なりと御説明致しますので」何卒、宜しく御願いします。

関連するQ&A

  • Excel関数で 空白値の入力はどう書くの?

    あるセル(B1とします)に =if(A1="a",0,"") とif関数を書きました。 別のセルA2にセルB1を合計するような式( =B1+C1 )と書くと#VALUE! というエラーになります。 多分、B1の値 "" が空白ではなく文字列と認識されているからだと思いますが、""の代わりに空白値をif分の中に指定することはできないのでしょうか? 逃げ手として、A2に書く式を =sum(B1:B1)+sum(C1:C1)とする手はありかと思いますが、できたら空白値を代入したいです。

  • Excel IF関数を短くする式を教えて下さい。

    ExcelのIF関数が長くなりすぎて困っています。 短くする方法あれば教えてください。 =IF(A1="",0,IF(A1<4.5,A1,4.5))+IF(B1="",0,IF(B1<4.5,B1,4.5)) のように"4.5より数が小さい場合はセルの値を返し、 4.5より大きい場合は4.5を返す"というのを繰り返し合計していきます。 60セル以上を合計したいのですが、それだと数式が長すぎて・・・ 何か短くする良い式があれば教えて下さい。 よろしくお願いします。

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

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

  • IF関数(空白の表示)について

    B3のセルに日付が入力されると、C3には「B3]+1日の日付が表示されるように数式を入力したいのですがうまくいきません。 「B3]が空白の場合はC3も空白の表示にしたいです。 IF関数の(空白の表示)がよく分からないのでわかるかた教えてください。

  • IF関数での計算結果を貼り付けたとき、完全な空白セルにしたい

    EXCELのIF関数で例えばA1セルが3のときAを表示して違うときは空白にしたい場合は =IF(A1=3,"A","") と書くと思いますが、IF関数が書かれているセル(計算結果)をコピーして他の範囲に値だけを貼り付けた場合、Aまたは空白セルに見かけ上はなってはいるのですが、その空白セルにはよく見ると '(カンマ)が入っており、完全な空白セルにはなっていないようです。後で貼り付けられた範囲を編集していきたいのですが完全な空白セルでないため作業が続かなくなっています。どなたか詳しい方がおられましたらよろしくお願いします。

  • perl のif文(条件式)内に代入式は使えない?

    例えば、$a =1 という代入式を、if 文の条件式として、( $a = 1){ } とするとエラーが出ますが、代入式はif文の条件式として使えないのですか?

    • ベストアンサー
    • Perl
  • IF関数を算出した値を合計する

    こんにちは。 IF関数を使用した値を合計することができない為、お力を下さい。 IF関数で=IF(A1<B1,C,D)と組んだ式ででた値を合計したいのですが 上手くできません。 文字列かと思いセルの書式設定を数値にしたのですができませんでした。 エラーメッセージも出ないため、何が問題なのかがわかりません。 わかることがあれば教えてください。 宜しく御願い致します。

  • EXCEL2007 IF関数についてです。

    別シート(sheet1)のセルA1には - もしくは数値が入ります。 sheet2のセルB1にIF文で - の時は空白、数値で60以上ならば"有"、それ以下なら 空白としたいのすが、 =IF(ISNUMBER(sheet1!A1)+AND(sheet1!A1>=60),"有","") とB1に記述しても - の時も"有"が出てしまいます。 どう記述したらよろしいでしょうか??

  • EXCEL関数 空白セルを詰める関数

    図1の表を図2のようにオートフィルタを使わず表示させる関数で下記を見つけましたが、実際使うときには、番地がA1からの位置ではなくAA60ぐらいの位置でこの関数を実行すると表示されません。 どの部分をその番地にあわせるとよいでしょうか? <図1>     A     B 1   あいう 2         えお 3   かきく 4         けこ 5   さしす <図2>各行の空白セルを詰めて表示させる     A     B     10  あいう   えお 11  かきく   けこ 12  さしす 13 14 【関数】 A10: =IF(ROW(A1)>COUNTA(A$1:A$5),"",INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1)))) Ctrl + Shift + Enterキーで式を確定します。 右と下にコピーします。

  • エクセルのIF関数で同じ値なのに答えが違う

    質問させていただきます。 エクセルのIF関数とAND関数を使って数式を作ったのですが どうしてもうまくいかないので質問します。 ±0.005以内であれば良、それ以外は不良としたいので =IF(AND(-0.005<=A,A<=0.005),"良","不良") Aにはべつのセルで計算した値が入り A=(1000.0-999.9)/2000*100 この場合だとA=0.005なのに不良となります。 A=0.1/2000*100 これだと良となります。 同じ0.005なのになにが違うのでしょうか? よろしくお願いします。

専門家に質問してみよう