• ベストアンサー

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

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

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

D2セルには次の式を入力し、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。その後にその式をE2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>COUNT($B$2:$B$20),"",INDEX($A$2:$B$20,SMALL(IF($B$2:$B$20<>"",ROW($B$1:$B$19),1000),ROW(A1)),COLUMN(A1)))

atsushi0927
質問者

補足

 早速回答を頂き感謝しております。実際に上記の関数で行ったところ出来ました。  そこで、追加の質問があります。B3に「0」、B6に「0.5」、B7に「入力なし(空欄)」が入力されていた場合(当然B2に「1」、B4に「2」、B5に「2」、B8に「1」が入力されています)、入力され、かつ「0」よりおおきな数値だけを選んで表を作成することができる関数はどのようにつくれば良いのでしょうか、改めてご教示をお願いします。

その他の回答 (3)

回答No.4

オートフィルタを取り付けて、絞り込んでみては? と思いつつ、数式を聞かれてるんで一応、お勧めでない難解なのも載せておきます。なお A・B 列は、数値と文字列のどちらを記入してあっても両列とも平気です。 D2 =iferror(index($A:$B,small(index(row($B$2:$B$8)+9^9*(countif(indirect("b"&row($B$2:$B$8)),"")),),rows(D$2:d2)),columns($D2:d2)),"") ※ D2 セルをコピーして D2:E8 のセル範囲に貼り付け

noname#204879
noname#204879
回答No.3

別解(添付図参照 Excel 2002) 1.範囲 A1:B1 の左から項目名として fld1、fle2 を入力 2.範囲 A1:B1 を[コピー]して、此れをセル D1 に[貼り付け] 3.セル C1 は空白のままにして、セル C2 に式 =B2<>"" を入力 4.範囲 A1:B8 を選択 5.[データ]→[フィルタ]→[フィルタオプションの設定]を実行 6.[抽出先]→   “指定した範囲”   [検索条件範囲]→ $C$1:$C$2   [抽出範囲]→   $D$1:$E$1 7.Enterキーを「エイヤッ!」と叩き付け

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

簡単な関数だけを使い、表Aを添付図左のように作成します A2には =IF(C2="","",COUNT($A$1:A1)+1) 以下コピー E2には =IF(ROW(E1)>COUNT($A:$A),"",VLOOKUP(ROW(E1),$A:$C,COLUMN(A2))) と記入、右にコピー、下にコピーして完成。 A列やE列が目障りなら、簡単には列を非表示にして隠しておくとか、文字色を白にして目に見え無くしておきます。 また全然別のZ列とかシート2とかに配置して計算させることも出来ますが、それだけ数式は複雑に簡単じゃなくなっていきます。

関連するQ&A

専門家に質問してみよう