• ベストアンサー

配列数式の答を計算式入力セルに出す方法は?

Wendy02の回答

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

こんにちは。 >お尋ねしたのは例えばSUM関数や単純な加減乗除の答のように、数式バーじゃなく計算式を入力したセルに直接答が表示出来ないかという意味だったんですが おっしゃっていることが、良く理解できませんが、MS社が、ある関数に関して、ある設計の元に作られたものの仕様を否定することは出来ません。それが使いにくいのなら、一般関数で代用すればよいだけだと思います。 >答の文字列が無数に並ぶ可能性がある配列数式 どんなにデータ個数は多くても、配列数式は、区間に対して、ひとつ足すだけですし、また、基本的には、数字のデータのみです。 >式入力セルにはやはり「0」しか出ないのです もし、0と出るなら、その区間に数字がないのでしょう。 具体例がないので、こちらか出しますが、例えば、以下のように試してみればよいでしょう。ただし、区間を最後に、ひとつ付け足す必要があります。 C1:~ =SUMPRODUCT(($A$1:$A$30>=B1)*($A$1:$A$30<B2)) ただし、区間が、1~10 までなら、最後に、11 を足します。 A     B   C  15   1   式   5   2   1   3  20   4  14   5  15   6   4   7  20   8  15   9  11   10  16   11 ←付け足す。  ・  ・  ・

doubt34
質問者

補足

 再度のご回答、ありがとうございます。  やはり私の説明というか表現が素人っぽかったんでしょうね。すれ違いの理由がおぼろげながら分かりました。  例示いただいた、SUMPRODUKT関数の場合の答と、(例えばつきでしたけど)私が最初取り上げたFREQUENCY関数の場合の答とでは、前者は答の数値が1個だけなのに対し、後者の場合は{}の中に区間配列中の数値の個数分だけ並ぶので、式が入力されたセルの列幅の関係等でそもそも表示できないようになっているのか、あるいは何らかの方法を加えれば出来るのか、それだけを知りたかたのであって、別にMS社の仕様を否定しようなんて爪の垢ほども思っておりません。 もしできないのなら、一言そう仰って頂ければ氷解するんです。  具体例をあげて説明させていただきます。    A     B     C     D 1  得点 成績区分(以下)該当数  該当データ 2  25    20       0 2  60    40       2   25,33 3  52    60       3   52,58,60 4  58    80       1   69 5  33    100       1   94 6  94 7  69          8         9       0         ↑             CD列は手入力した答の人数と該当者の点数  これはあるグループの得点配分(20点以下は何人かなど)を調べるための表です。  セルB9に次の式を入れます。(なぜC2でなくB9かは後で説明します。) {=FREQUENCY($A$2:$A$8,$B$2:$B$6)}  するとB9にはA列の点数中、B2(20)を下回る人数「0」が返されます。  しかし求めたい答は、F2→F9と押して数式バーに現れる「={0;2;2;2;1;0}」です。この答は同時にB9に(=を除いて)反転表示で現れます。  この答え「={0;1;2;3;1;0}」を、F2→F9を押さなくても最初からB9に出す方法はないか、というのが質問の趣旨です。  最初の希望は、C2に前記の計算式を入力するとB2に対応する答「0」が返ってくるので、C2の計算式をC3以下にコピーすることにより、C3~C6に「2,3,1,1」と答が現れる方法(Wendy02さんが例題のSUMPRODUCT関数で示されたような方法)がないかいろいろチエを絞ったのですが、どうしてもその方法が見付からず、仕方がないからどこでもよい適当なセルに直接「={0;2;2;2;1;0}」が現れればよいと考えた訳です。    絞ったチエというのは、計算式 {=FREQUENCY($A$2:$A$8,$B$2:$B$6)} の「$B$2」を行相対の「$B2」にし、下方にコピーしたらと考えやってみましたがもちろん失敗でした。(C2以下、「0,2,5,6,7」となる)  次に試したのはB2~C6に下記のように入力し、D2の式を {=FREQUENCY($A$2:$A$8,$B2:$C2)} と区分配列を変更し、行相対にして下方にコピーしてみましたがこれもやっぱり失敗でした。   A   B     C     D        E 1 得点 成績区分(以下) セルに出た数 F2F9押した答                     2  25  0.00    20    0        0,0,7 3  60  20.01   40    0        0,2,5 4  52  40.01   60    4        2,3,2 5  58  60.01   80    10        5,1,1 6  33  80.01   100   13        6,1,0 7  94 8  69  と、こんな調子で何度も試行錯誤を繰り返し、結局お手上げとなって最初のような質問になったというのが事の真相です。  最初からこのように詳細に経緯を説明すれば私の言いたい内容をご理解いただけたのではないかと思いますが、要はC2~C6にB列の区分配列に応じた答(0,2,3,1,1)が返ってくる方法はないかということなんです。  多分私の考えには何か幼稚というか根本的な発想のミスがあるのでしょう。  であるとすればこういう場合、B列の区分配列をどのように入力するのか、そして計算式はどこにどのように設定するのか、そこのところを教えていただければ幸いです。  よろしくお願いします。

関連するQ&A

  • Excel2000で数式を配列にしてセルに放り込むと計算されない

    一定の法則で作成されて数式をセルに放り込む場合、 (1)のようにループさせると非常に時間がかかりま した。(実際の数式セルはもっとたくさんあります。) それで数式を一度、(2)のように配列に入れて放り 込んだところ約1/10の時間で処理はすみました。 ただ、放り込まれた数式が計算されずに式のまま表 示されてしまいます。 セルをダブルクリックして、その後、リターンを押すと計算され ます。 これを自動的に計算させることはできないのでしょうか? (1)    For i = 1 To 3      For j = 1 To 10        Cells(i, j).Formula = "数式"      Next j    Next i (2)    myFomula(3, 10) = "数式" '← この中に数式を入れる。    Range(Cells(1, 1), Cells(3, 10)).Formula = myFomula

  • セルに入力した数式が数式バーに表示されない

    Windows8.1でエクセルを使用し表計算をしています。今までセルに入力した内容が数式バーに表示されていましたが表示されなくなりました。「表示」の「数式バー」にはレ点が入って《エクセルの基本オプションー詳細設定ー表示にもレ点あり》います。しかし数式バーに表示されないのですがこの解決策を教えてください。

  • 一つのセルに数値入力し計算し答えも同じセルに表示

    一つのセルに数値入力し計算し答えも同じセルに表示 例)A1セルに100と入力したら同じA1せるの答えが98になる計算、入力値を変えても答えが-2 された答えを同じセルに表示。

  • Excelのセルが計算結果ではなく数式になってしまいます。

    Excelでワークシートを作って計算させているのですが、突然、数式を入力しているセルが、その計算結果ではなく、数式そのものが表示されてしまうのです。 例:セルを参照しようとして、「=H5」と入力すると、本当なら、H5のセルにある数字、文字が表示されるわけですよね。しかし、突然そのセルが「=H5」という計算式そのものの表示になってしまいました。 F2を押して、Enterするとまた参照してきたりするのですが、原因が分かりません。ずっと=H5のままということもあります。 原因と対処方法を教えてください。よろしくお願いします。

  • エクセルで一つのセルに数式を二つ以上入力する方法はありますか?

    エクセルで一つのセルに数式を二つ以上入力する方法はありますか? 昨晩から プルダウンメニューで ある文字列を選び、その文字列により、違った計算をさせて、その答えをセルに表示させようとしていますが、全く上手くいきません・・・。 Sheet1の任意のセルに ABC, DEF, GHI, JKL と言う文字列を作り、プルダウンメニューで選べる様にしました。 そして、選んだ文字列により、下記の通り 切捨ての簡単な計算をさせて、その答えを Sheet2 の任意のセルに表示させたいと思ってます。 Sheet2の任意のセルにこの様な数式を教えて頂きまして入力しましたが、上手く行きませんでした。 =IF(F3="ABC", ROUNDDOWN(H3,2)*0.976),"DEF",ROUNDDOWN(H3,2)*0.976),"GHI", ROUNDDOWN(H3,2)*0.975), "JKL", ROUNDDOWN(H3,2)*0.978) 何かと試行錯誤してますが、全く分りません・・・(>_<)。 どなたか助けて下さい(/_;)

  • EXEL:入力中のセルの数式を非表示(あるいは表示位置を変える)には

    EXELで、数式を入力中に、数式が長くなってくると隣接しているセルが数式で隠れてしまい、そのセルを選択できなくなってしまうので、入力中の数式を数式バーでのみ表示したい(入力中のセルには表示しない、あるいは表示される位置をそのセルの右側、左側、など邪魔にならない位置に変更したい)のですが、可能でしょうか? ちなみに例えばですが(文章で書くと伝わりにくいと思うのですが、、) セルC3内に「=A3+B3+D3」という数式をA3、B3、D3というセルを選択して数式に入れていく場合、D3を選択しようとすると、それまでの数式「=A3+B3+」にD3が隠れてしまい、選択できない、という状況になります。 数式を直接入力すれば問題ない話ではあるんですが・・・ けっこうまわりでも困っている人が多かったので。 いい方法があれば教えてください。

  • エクセルの配列数式、配列定数について教えてください

    エクセルに配列数式、配列定数というものがあることを最近知りました。 エクセルのA1セルに={1,3,3}と入力し、A2セルに=COUNTIF(A1,{1,2,3})と入力すると、 A2セルに1と表示されます。A2には1以外の数字が含まれることは何となく理解できるのですが、どのような計算結果が算出されるのかが理解できません。また、A2の1以外の計算結果を表示させる方法がわかりません。 同様に、A1セルに={1,2,2,3}と入力し、A2セルに=COUNTIF(A1,{1,2,3})と入力した場合(これもA2セルに1と表示されます)のA2の計算結果と表示方法がわかりません。 ご教示をよろしくお願いいたします。

  • Excelセル内に数式が入らない

    sheet1のB2に数式バーの内容で入力したのですが入りませんシートFまでの数式は入力できるのですが(B1セル数式)実はシートOまでの同数式を入力したいのですが数式が多すぎて入力できないエラーの場合はどうすればよいのか皆目解りませんどなたか解る方宜しくお願いします。 VBAコード入力でも結構です。

  • Excel - 数式で引っ張った数式を有効にする方法

    お世話になります。 ちょっと説明が難しいのですが・・・ 数式で引っ張ってきた数式を、値として貼り付けると、最初に【=】が付いていても即座に数式として認識してくれません。 まぁ値で貼り付けてあるので当然と言えば当然なんですが。 これらはF2で数式バーに一旦移行し、その後ENTERで確定すると、その時点で初めて数式として認識します。 このようなセルを一括で、数式にする方法はないでしょうか。ひとつずつF2→ENTER→F2→ENTERとやっていくのは非常に面倒でして。 再計算、置換等、色々試してみましたが、どうも効果がないようです。 何かお知恵のある方、どうぞご協力宜しくお願いします。 【例】 A1に【=】 A2に【C3】 C3に【10】と入っているとします。 任意のセルに【=CONCATENATE($A$1,$A$2)】と入力しますと、そのセルには【=C3】と表示されます。 このセルをコピーし、別のセルに値貼り付けします。 するとコピー先のセルには【=C3】と表示されます。 本来は【10】と表示させたいので、F2で一旦編集に入り、ENTERで確定すると、ここで初めて【=C3】が【10】に変わります。 これを一括でやる方法、ということです。

  • 数式の計算結果により表示されたセルを数える関数を教えてください

    Excel2003です。 「=COUNTA(範囲)」で文字や数値、式などのデータが入力されているセルを数えることができますが 数式の計算結果により表示された文字や数値の入ったセル(数式の計算結果で空白のセルを数えない)を数える関数を教えてください