• ベストアンサー
  • 困ってます

関数の値が真の時、選択した範囲の表示は可能?

IF関数で真の値の条件を満たした時に、選択した範囲の表示、 例えば、  A   B  C  D   E・・・ 1 2 3 A1~E1までのデータを1つずつ関数を入力しないで選択した行を 丸ごとA3~E3に表示させる事は可能でしょうか? 可能ならば、やり方を教えていただけませんでしょうか。

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数166
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.5
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんにちは。 VBA以外の方法では、以下のようにすると出来ます。    A   B   C   D   E 1  あ  い  う  え  お 2 (ここは何もないとします) 3  ここに表示 最初に、A1:E1 をコピー 次に、 A3 にセルポインターをもってきて、シフトを押しながら-編集-リンク貼り付け 次に、 A10: 1 A11: =IF(A10=1,"A1:E1","A2:E2") とします。 A11 にセルポインターを置いて、メニュの挿入-名前-定義 名前  「表示」 参照範囲  「=INDIRECT(Sheet1!$A$11)」 次に、 A3 をクリックすると、 =$A$1:$E$1 となっていますから、 =表示 に書き換えます。 そうすれば、IF の条件文で、A1:E1 の内容を、A3:E3 に表示することが可能です。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます!IF関数でもできるんですね!このやり方をやってみたのですが、 >シフトを押しながら-編集-リンク貼り付け の部分がよく分からないんですが・・・、というか、「図のリンク貼り付け」になってしまいます。=表示 に書き換えをしてもA3-E3の内容表示が変わらないんですが・・・。 使用している Verは Excel2003です。

関連するQ&A

  • excel2003散布図で軸目盛範囲を自動設定にすると表示範囲が広くなり困ってます

    以下のA1~A3、B1~B3のセルを選んで散布図を作りたいのですがA1~A3に式が入っているせいか、最大最小目盛を自動に設定するとY軸範囲がとても広くなり(150,155の数値範囲に対して0~200)困ってます。 グラフデータ範囲 Y:式 A1=IF(count(D1:E1)=2,H1,"")→今回A1は150と表示されています A2=IF(count(D2:E2)=2,H2,"")→今回A2は155と表示されています A3=IF(count(D3:E3)=2,H3,"")→今回E3が空白のためA3は空白です X:値 B1=1,B2=2,B3=空白 ちなみにセルの選択範囲をA1A2,B1B2もしくはA1A2,B1~B3とするとY軸範囲は149~159と妥当な範囲を示してくれます。A3の空白を含むとY軸範囲が0~になるようです。 A1~A3、B1~B3を選択して、最大最小目盛の自動設定で範囲が149~159前後になるような方法をご存知の方、お教えください。よろしくお願いします。

  • 以下のIF関数について間違いがあればご指摘ください

    当方、関数式を学び中ですがIF関数を以下の例を使って組み立てましたが違っているかもしれませんのでご指摘ください。 たとえばA3に、A1かA2いずれかのセルから減算した数を示す場合の関数式を求めることが目的です。 A1セルとA2セルの一方は正数、かつ一方は0となる。 (たとえば「A1」に「100」という数値がある場合はA2は必ず「0」が入力される。同様、「A1」が「0」の場合には「A2」は「100」と入力される条件) 式はIF関数式の構成に合わせ、アバウトに作って試してみたところ一応結果は正常にでました。 それがこの式 =IF(A1<>A2,A3-A1,A3-A2) なのですが、疑問があります。 IF関数の条件に対応させた場合の引数1は「判定条件」であり「A1とA2は等しくない」となるそうなので「A1<>A2」としましたが、「A3-A1」は引数2の「判定が真の場合の処理」、「A3-A2」は引数3「判定が偽の場合の処理」となってしまいますがこれでよいのでしょうか?それとも間違った式の偶然の正しい結果だったのでしょうか。 そこで正しい式と構成についての筋道を教えていただきたく思います。 また「" "」という点を入れる場合はどのようなものに対してでしょうか? これについても教えてください。

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

    こんにちは。 ISNUMBER と IF関数を用いてセルに"真"か "偽"を表示させたいのですが・・・ 例えば、セルに特定の数値が入力されれば“真”を表示する。ということです。 どうやら、数字の「1」は「10」「12」なども 「1」が含まれていると認識するようで、困っています。 また、他のセルの関数を参照していることからどのような式を組めばよいのか分かりません。 詳しく説明すると以下のようになります。 (( ))はセルに入力されている関数です。        A         B         C 1    2009/01/20   2      1    (( =MONTH(A1) )) 3     4、10月    (( 文字列  )) 4     真    (( = IF(ISNUMBER(SEARCH(A1,A3)),"真", "偽") )) A1 シリアル値で入力された日付 A2 その日付より“月”だけ取り出して表示 A3 真か偽かを判断する為の基本となるデータを入力 A4  ISNUMBER関数 → A2の数値がA3に含まれていれば“真”をそうでないらな“偽”を表示する。 上記のように 1 は 10月 とは異なるので“偽”としたいのですが、10月の 10 の 1 を読み取ってしまうようで “真”と なってしまいます。 11月、12月 等も 1、2、と 読み取ってしまうようで・・・・ 1は 1月のみ“真”と表示。 2は2月のみ“真”と表示。というようにするにはどうしたら良いのでしょうか? 宜しくお願いします。

その他の回答 (5)

  • 回答No.6
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんにちは。Wendy02です。 Excel 2003 でも大丈夫です。 >シフトを押しながら-編集-リンク貼り付け これは、 「図のリンク貼り付け」でした。失礼しました。 おそらく、以下の部分が、正しく入っていないと思います。 メニューの[名前]-[定義] の名前(W) 「表示」 の参照範囲(R)は、 「=INDIRECT(Sheet1!$A$1:$E$1)」 と入っていますか? (INDIRECT関数が大事です) (ただし、Sheet1!は、そのコピーして貼り付けたシート名です。)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

昨夜できました! Wendy02さんのアンサー集をみせてもらっていたら、タイトルは違っていますがほぼ同内容の質問があり、それを元にもう一度やってみると出来ました!!最初のA1:E1のコピーをブランクのコピーに、INDIRECTの参照範囲をA11に変えてみました。二度もお付き合いいただき、本当にありがとうございました。助かりました!!

質問者からの補足

すみません・・・。 全部キッチリ打ち込んだのですが、ダメでした・・・。(T_T) 入力終了後にA1:E1の内容を打ち変えてもA3:E3に反映されません・・・。参照範囲はANO.5の方とANO.6の両方試してみました。 IWendy02さんはIF関数を入れたA11の所の表示はどうなっていますか? こちらは回答していただいた文をコピーして貼るとA1:E1で、自分でIF関数を入力すると(範囲をドラッグ)「あ」と表示されます。どこがおかしいのか、どうかもう一度チャンスを下さい。お忙しい所本当に申し訳ありません。

  • 回答No.4
  • imogasi
  • ベストアンサー率27% (4592/16442)

質問者の発想がプログラム的に向かってますが、VBAを経験ないために、質問のようになったと思います。 <表計算の関数の大原則>。 (1)関数は値を問題にするもの (2)関数式を入れるセルの値を決めるもので 式を入れる以外のセルの値を左右できない。 =IF(A1>1,B3=B1,"") のような式を、たとえばA6に入れられない。 式の中に、値をセットしたいB3のようなセルの番地を指定できない。 =IF(A1>1,B1,"")のように式を入れるB6のセルの値しか、左右できない。=IF(A1>1,=B1,"")の表現もエラーになる。 VBAなら Sub test01() If Range("A1") > 1 Then Range("B3") = Range("B1") Range("C3") = Range("C1") Range("D3") = Range("D1") Range("E3") = Range("E1") End If End Sub とか Sub test02() If Range("A1") > 1 Then Range("B1:e1").Copy Range("B3:e3").PasteSpecial End If End Sub とかできます。後者は意味が少し違いますが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。ご指摘の通り、プログラムに関する事柄については、まったく理解できていません。入力内容によって注文書の書式を様々に表示させたいという思いから上記質問をさせていただいたのですが、せっかく色々な方に見ていただいたのに、私の無知のせいで皆さんには意味不明にうつってしまったようです。VBAに関してはこれから少しずつ勉強していきたいと思います。ありがとうございました。

  • 回答No.3

A3に「 =IF(条件,A1,"") 」 B3に「 =IF(条件,B1,"") 」 C3に…(略) …とやれば出来ることを、3行目のセルに一つ一つ関数を入力することをせずにできないか? ということですね? A3だけいれて、B3以下にオートフィルで一気にコピーできるけれども、それもしないで、ということであれば、 マクロ(VBA)を使うしかありません。

共感・感謝の気持ちを伝えよう!

  • 回答No.2

私も正直なにがしたいのかさっぱり見えていませんが、 ひょっとして、各セルに関数を打ち込んでいくのが面倒 と言う話ですか? セルをコピーすれば済むって言う問題じゃないんですか?

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • edomin
  • ベストアンサー率32% (327/1003)

何処のセルのIF関数が真になったときですか? 何の関数も設定されていないセル(例えばE3)に表示させるにはVBAを使わなければ無理です。 もう少しやりたいことを具体的に書いてください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

すみません、言葉足らずでした。 「どこのセルが真の値か」ですが、これはどこでも構いません。 ただ、IF関数の値が”真”の時のかえして欲しい値にA1~D1などの範囲を指定して、範囲内のセルのデータを同じ大きさのセルの範囲に表示させる事ができるのか?という事ができるならば、やり方を教えていただけませんでしょうか。・・・うまく伝わってますでしょうか。

関連するQ&A

  • エクセル Ifで、真の場合は前月の年月を表示、偽の場合は"本日"と入力

    エクセル Ifで、真の場合は前月の年月を表示、偽の場合は"本日"と入力したい。 J3セルにDateと入力された状態で、A1セルに、Ifとして、B1セルの値がAAAなのかBBBなのかによって、AAAの場合は、J3を参考にして、前月の年月を表示する。 BBBの場合には、本日と表示したい。 If関数で真の場合の欄に関数式を入れてみたがうまくいかない。 単純に表示するだけなら、 セルに=DATE(YEAR(J3),MONTH(J3)-1,DAY(J3))と入力し、表示形式をユーザ定義の年月表示にすることで、できたが、これに条件式を組み合わせて、真の場合にだけ、上記表示がでるようにしたい。 すみませんが、よろしくおねがいします。

  • 別セルで選択した内容に応じて、表示項目を変えるには

    すいません。 色々サイトを巡回して勉強したのですが、どうしても分からない関数がある為、質問させて頂きます。 まず、E1~E7の欄に、次のようなリストをつくります。 E1「太郎」、E2「次郎」、E3「三郎」、E4「花子」、E5「咲子」、E6「椿」、E7「他人」 次に、入力規則を使って、A1に、E1~E7のリストを表示させます。 ここまでは全く問題ありません。 しかし、B1に次のような設定にしようとすると、上手く行かないのです。 (1)A1で「太郎・次郎・三郎」のいずれかを選択したら、B1に、C1に入力しておいた文が表示される。 (2)A1で「花子・咲子・椿」のいずれかを選択したら、B1に、C2に入力しておいた文が表示される。 (3)A1で「他人」を選択したら、B1に、C3に入力しておいた文が表示される。 (4)A1にそれ以外の文字を入力したら、B1に、C4に入力しておいた文が表示される。 (5)A1に「不明」と入力したら、B1は空白になる。 (6)A1を空白にしておけば、B1も空白のまま。 という設定にする。 (7)B1に何か表示される度に、かならず語尾に*印(他の記号でも可)が付く。 色々勉強して、↓のような関数を書いたのですが、 =IF(A1="太郎",C10,IF(A1="次郎",C10,IF(A1="三郎",C10,IF(A1="花子",C20,IF(A1="咲子",C20,IF(A1="椿",C20,IF(A1="不明","",IF(A1=" ","")))))) 今ひとつ上手くゆきません。関数が長すぎるので、簡略化も試みましたが、これも上手く行きませんでした。 それに、(7)の方法に関しては全くわかりません。 このような場合、どんな関数を書けば良いのでしょうか?

  • エクセルで範囲内の条件を満たす数値を返す関数を教えてください。

    エクセルで範囲内の条件を満たす数値を返す関数を教えてください。 100以下なら1111 100超~200以下なら2222 200超~300以下なら3333 300超~400以下なら4444 400超~500以下なら5555 500超~600以下なら6666 600超~700以下なら7777 700超~800以下なら8888 800超~900以下なら9999 900超なら10000 上記のような条件があり、入力した数字が該当する条件の範囲内に該当している数字を抽出したいのですが、それができる関数を教えてください。 例えばA1セルに650と入力するとB1セルに上記の条件で該当する7777を表示する、 A1セルに100と入力するとB1セルに1111、 901とA1に入力するとB1に10000と表示されるなどのようにしたいのです。 IFを使った関数では7つまでしかネストできないので、上記の場合10ネストしなければならないのでIF関数が使えません(使える方法があるかもしれませんが私は知りません)。 ネストせずに「&」を使う方法も考えたのですが、それだと数値として扱われず文字として扱われてしまい表示形式を自在に編集することができなくなってしまいます。 良い解決方法を教えてください。

  • IF関数で・・ただし・・・

    教えてください。 表があります。セルA1に数値があります。セルA2に他の場所での合計が入ります。A3にA1とA2の小さい方の値が入ります。A3の関数は、MIN(A1,A2)。隣のB3に別の合計数があり、C3にA3+B3の値がきます。 B4に関数で、IF(A3<A1,B3,IF(A3>A1,0))と入れてます。そこで少し問題の場合が出てきたんです。B4に「但しC3がA1より大きくなる場合はA1-A3の値にするという条件」を付け加えたいのです。どうすればいいのでしょうか? 説明もややこしくてすみませんが、よろしくお願いします。

  • Excelの関数で求めた値を行数として使用出来ますか。

    例えば A1 =A2+5 A2 10 という値が入力されていた場合、A1には15が表示されると思います。 ここで、A3の関数として=HLOOKUP(A2,A15:D15,1)のような関数を入力する場合A15:D15の値をA(A1):D(A1)のように使うことは出来ませんでしょうか。 要するに関数で出した値を行数として使用することは出来るかということです。 INDIRECT関数も試してみましたがだめでした。 最悪、関数で求めた値でなくてもセルに入力されている値を行数として使用できれば構いません。 マクロ等を組めば出来ることかもしれませんが、そのような時間もないので解決策があれば教えていただけますでしょうか。 よろしくお願い致します。

  • Excel :条件が一致した時にその数字を表示する関数

    以下の内容をExcelの関数で表す場合にどのような関数が有効でしょうか?どなたかお知恵を拝借願えると幸いです。 「A1,A2,A3にランダムに数字が入っています。仮に、3つにセル中、2つ以上の数字が一致した時には、A4セルに一致した数値を表示させ、3つのセルの数字がどれも一致しない場合は、ゼロと表示させます」 以下のようなIF関数を考えてみたいのですが、「真の場合」に一致した数字を表示させる方法が分からず悩んでいます。 IF(OR(A1=A2,A1=A3,A2=A3),一致した数字,"0") 勿論、このIF関数に拘っていないので、上述「」内の内容が関数で表現できればよいと考えております。

  • MAX,MIN関数で空白の値を返したいのですが?

    MAX,MIN関数で空白の値を返したいのですが、中々上手く行きません。 何方か、ご教授頂けないでしょうか、宜しくお願い致します。 ※本題 MAX,MIN関数などの場合、真の0値が返されるので0が表示されると思います。 A1:AV10が未入力の場合:=MAX(A1:AV10) =0 又、AVERAGE関数の場合は、対象となるセルが未入力の場合(#DIV/0!)エラー表示されるので、下記載の様に空白の値を返す事が出来ます。 「=IF(ISERROR(AVERAGE(AN3:AV3))=TRUE,"",AVERAGE(AN3:AV3))」 そこで質問なのですが! MAX,MIN関数で値が入力されて無いとエラーを返す方法は有りますか? AVERAGEと同様に空白の値を返したいと思ってます。 ただ、差分で0が返ってくる場合が有り、オプションでゼロ値の非表示等は使えません。

  • 値の範囲チェックの方法

    値の範囲をチェックし、該当範囲の値に対し所定の文字をひも付ける方法を教えてください。 ※関数等でないか調べました(調べ不足かもしれませんが)が該当の関数がありませんでした。 0~9ならばY 10~19ならばZ と定義したとします。 A1セルに5が設定されたらばA2セルにYを表示したいです。 if文を使ってマクロを組むしかないでしょうか。

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

    今までの質問で探してみたのですが、解決できなかったので質問させていただきます。 IF関数とVLOOKUP関数を使って表を作成しています。 例えば… IF(A1="","",VLOOKUP(A1,Sheet2!A1:E10,3,0) としました。 表示させたい列番号の値が何も入力されていないとき、「0」となります。 何も入力されていないのだから、何も表示されないようにしたいのです。 間に合わせで、スペースキーで空白を入力した所、「0」が消えて空白(何も表示されない)表示されました。 結構な量の資料ですと、間に合わせで空白を入力するのは大変です… どなたか詳しい方、回答お願いします。

  • if関数について教えてください。

    if関数について質問です。指定したセルに、任意のセルの値が他の任意のセルと同じなら「1」、その他の場合なら「0」となる関数を教えてください。例えば、A1の値が「100」でA2が「100」なら、A3に「1」。A2が「100」以外なら、A3に「0」と入力されるようにしたいです。よろしくお願いします。