入力された数値とその左側の数値で表を作成する方法

このQ&Aのポイント
  • 質問内容は、表Aから入力された数値とその左側の数値を選び、表Bを作成する方法を教えてください。
  • 質問者は以前、同様の質問をしましたが、新たに補足の質問をしたため、トピックを立てました。
  • 回答が寄せられやすいため、新しいトピックを立てることにしました。ご理解いただければと思います。
回答を見る
  • ベストアンサー

入力された数値とその左側の数値(文字)で表の作成

 http://okwave.jp/qa/q8214979.html(「入力された数値とその右側(左側でした)の数値(文字)での表作成」)で質問した者です。その際は大変お世話になりました。有り難うございました。その後、その回答に対して新たに質問があり「補足」で質問させて頂きました。しかし、トピックを新たに立てた方が回答が寄せられると思い、トピックを立てさせて頂きました。ご理解を頂けばと思います、  質問内容は、下の「表A」から、数値が入力され、かつ「0」よりおおきな数値だけを選んで(この場合「B列)、その数値の左側あるのセルの文字(この場合「A列」。数値の場合もあります)と一緒に移動させて、「表B」を作成することができる関数はどのようにつくれば良いのでしょうか、改めてご教示をお願いします。宜しくお願いします。

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

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

関数というか、前回と同様、Ctrl+Shift+Enter の操作が不要である数式を載せてみます。今回も A 列は、数値と文字列のどちらを記入してあっても平気です。 D2 =iferror(index($A:$B,small(index(row($B$2:$B$3000)+9^9*(countif(indirect("b"&row($B$2:$B$3000)),"")+countif(indirect("b"&row($B$2:$B$3000)),"<=0")),),rows(D$2:d2)),columns($D2:d2)),"") ※ D2 セルをコピーして D2:E10 のセル範囲に貼り付け 前回との違いは、行数を適当に 3,000 行に増やしてみたのと、COUNTIF 関数を 1 つ追加したということです。 まあオートフィルタとかフィルタオプションのほうが簡単で実用的だという状況は、今回も同じです。 あと結果的にデータが表示されなかった D7:E10 のセルの枠線を自動的に非表示にすることも可能です。条件付き書式という機能を使います。 今回は、ご回答を寄せてくださる皆さんに反応してくださると、回答者としてはたいへん助かります。ベストアンサーとかには、ほとんど関心がないのですが。私の場合はたまたま今回のご質問を発見したので、まだ良かったです。

atsushi0927
質問者

お礼

完璧でした。本当に有り難うございました。実際にはA、Bの2列ではなく、A、B、Cの3列で抽出しました(行数は50列程度)。確かにオートフィルタとかフィルタオプションを利用した方が簡単ですが、関数で行いたかったので質問させて頂きました。またの機会にお世話になるかもしれませんが、その際は宜しくお願いたします。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 一例です。 ↓の画像のようにC列を作業用の列とします。 C2セルに =IF(B2>0,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 E2セルに =IFERROR(INDEX(A:A,SMALL($C:$C,ROW(A1))),"") という数式を入れ、列・行方向にオートフィルでコピー! これで画像のような感じになります。 ※ 作業列を使わずに一気にやりたい場合は 表示したいセルに =IFERROR(INDEX(A$2:A$1000,SMALL(IF($B$2:$B$1000>0,ROW($A$1:$A$999)),ROW(A1))),"") これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は上記数式をコピー → 表示したいセルを選択 → 数式バー内に貼り付け → そのまま(編集可能のまま)Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列・行方向にオートフィルでコピー!でも同じ結果となります。 上記数式は1000行目まで対応できる数式にしていますが、配列数式はPCにかなりの負担を掛けますので データ量が極端に多い場合は最初の作業列を使う方法をおススメします。m(_ _)m

noname#204879
noname#204879
回答No.2

何を血迷っていたか、[No.1]は聊か冗長過ぎました。 次のように訂正します。 G2: =IF(B2,ROW(),"") H2: =SMALL(G:G,ROW(A1)) D2: =IF(ISERROR($H2),"",INDEX(A:A,$H2))

noname#204879
noname#204879
回答No.1

G2: =IF(B2,ROW()+B2/10000,"") H2: =SMALL(G:G,ROW(A1)) I2: =MATCH(H2,G:G,0) D2: =IF(ISERROR($I2),"",INDEX(A:A,$I2))

関連するQ&A

  • 入力された数値とその右側の数値(文字)での表作成

    Excel Ver2007 任意の列(この場合はB列)のセルに入力してある数値(「表A」のB2、B4、B5、B8)と、その右側にあるのセルの数値(文字の場合もあります。「A表」のA2、A4、A5、A8)だけを選んで、「表B」のように作成できる関数はありますか、ご教示をお願いします。

  • できるだけ簡単に数値を入力したい

    下のような表があって A列 B列   C列   D2列 社名 管理No 1日  2日 3日~31日 A 001 B 002 小計 M N 小計 Y Z 小計 総計 この場合に「社名」「管理No」「日付」が入力できる表があってそれに連続して入力すれば 上の表に数値が入ってゆくような方法は作成できないでしょうか。 お知恵をお貸し下さい。

  • テーブルタグで作った表を左側に、右側に表とは関係なく文字入力をするにはどのようにHTMLを組めば良いでしょうか?

    テーブルタグで作った表を左側に、右側に表とは関係なく文字入力をするにはどのようにHTMLを組めば良いでしょうか? よろしくお願いします

    • ベストアンサー
    • HTML
  • エクセルでの他の表から数値を表示(リンク?)

    質問の仕方も非常に難しいのですが、 ご容赦ください。 まず、表1と表2という下記のようなものがあるとします。 表1 あ い う A 1 2 3 B 4 5 6 C 7 8 9 アルファベットとひらがなは項目で数字が数値という 表です(あいだに罫線があると思ってください) 表2はそれに基づいて新たに作成しようと思っているのですが 表1で「Aあ」の場合は数値は「1」、「Cい」の場合は数値は「8」となります その数値を表2で「Aあ」、「Cい」と入力した時点で、数値を引っ張ってくるようには出来ないでしょうか。 表2 (入力セル)Aあ と文字入力すると (リンク表示したいセル)1 と出る (入力セル)Cい と文字入力すると (リンク表示したいセル)8 と出る 質問の内容すら伝わりにくいかもしれませんが、 もし方法があれば是非とも知りたいんです。 どうか皆様よろしくお願いいたします。

  • 文字を入力したら数値が自動入力!(エクセル)

    いつもお世話になっています。 例えばA列の1行目に「りんご」と入力(若しくはリストの中から選択)すれば、B列の1行目には自動的に「5」と数値が入力されるという仕組みを教えて頂ければと思います。 因みにA列1行目に入力する文字(上記の例では「りんご」)が仮にA列の1行目以外に入力しても、それに対応し、数値を出せるようにしたいのです。(例:A列5行目に「りんご」を入力すると、B列5行目に数値の「5」が表示) 以上の説明で分かりにくいかもしれませんが、宜しくお願いします。

  • Excelで2つの表を比較して重複しない数値をすべて一覧表にして取り出

    Excelで2つの表を比較して重複しない数値をすべて一覧表にして取り出したいのですが簡単な方法がありましたらどなたか教えていただけませんか。 A列とB列にそれぞれ縦方向に4桁の数字が「A1:A500」「B1:B1000」にランダムに入力されています。A列の表とB列の表を比較して、B列の中からA列に入力されている数値と重複していない数値を全てC列に取り出したいのです。 よろしくお願いいたします。

  • エクセルの表作成にあたって

     お世話になります。  エクセルで下記のような表を作成したいのですが、ご教授お願いいたします。  A列には元々時間が入っており、B列にはその時間の数値が入ります。 A1が10時、B1の数値が10 A2が11時、B2の数値が12 A3が12時、B3の数値が40 A4が13時、B4の数値が23 A5が14時、B5の数値は未入力(空欄) A6が15時、B6の数値は未入力(空欄)  A列では元々時間が入っておりますが、実際にその時間が来た時にB列に数値を手入力して行きます。  任意のセルに上記の数値の最新データを表示したい。上記の場合はB4の数値23を任意のセルに表示したい。  時間が過ぎていくことにより、常に最新のB列の数値データを取得して任意のセルに表示するような方法を教えて下さい。 (つまりB列で空欄の一つ前のデータを自動的に取得したい。) 【補足】  最新数値データの下は常に空欄になっています。  説明不足な点があれば補足いたします。  これが出来れば非常に助かります。よろしくお願いいたします。

  • エクセル 文字列で入力した数字を数値にする

    エクセルで、文字列の設定で入力した数字は、[セルの書式設定]で、数値として設定しても、文字列のままになります。 (セルの左上に、文字列と分かる緑の三角が付いたままになり、表を作ってもグラフの表示は出来ません。) 数値として数字を入力をした後、[セルの書式設定]で文字列にして、再び[セルの書式設定]で数値にすると、数値にはなります。 (この場合、文字列にしても、セルの左上に緑の三角が付かず、このまま表を作ると数値(小数点以下が0の場合は小数点以下が削除されます。)の扱いとなりグラフの表示が出来ます。) 文字列で入力した数字は、数値にはならないのでしょうか? よろしくお願いいたします。

  • Wordの表作成:行間隔の設定

    Wordで表作成を頼まれました。 もともとあった表と同じ形式で作って欲しいと言われています。 横2列、縦右35列程度、縦左30列程度の表です。 縦列の左右で横線の間隔が所々違えてあります。 まず外枠を作成後、真中に縦線を引き、 左列に横線を引き文字入力しました。 右列を作成しようと思い、適当に30本ほど横線を引いた後、 文字入力をしました。 その後、不要な線を消して行間隔を調整しようとしましたが、 真中線より右の横線を動かすと、左側の横線も動いて表が崩れてしまいます。 また、右側下段の罫線を数本消したところ、 最下段のセルのみ行間が広がりすぎ、狭めることができません。 右側の横線だけを左側の横線と連動させずに、動かすことはできませんか。 不可能ならば、別の方法等アドバイスをいただけると助かります。

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

専門家に質問してみよう