人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

EXCELで、例えば 0,7,0,0,16,0,3,1 というような列の並びがあったとして、これをワークシト関数だけで、別の行に 7,16,3,1 という列の並びに変換する(値が 0 のセルを無視して詰める)
にはどういう式をたてればいいのでしょう。
一発変換は無理なら道筋のアウトラインだけで結構です。よろしく

●質問者: kubira711
●カテゴリ:コンピュータ
✍キーワード:Excel アウトライン セル 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● gong1971
●35ポイント

一発で求めるのは、ほぼ不可能かと思います。

仮計算の行を1行使用する方法でご案内します。


  1. 元の数値の上に1行挿入します。(元の数値A2:H2、挿入した行A1:H1とします。)
  2. A1に =COUNTIF($A$2:A2,"<>0") を入力します。
  3. A1のセルをB1:H1にコピーします。
  4. A3に =HLOOKUP(COLUMN(),$A$1:$H$2,2,0) を入力します。
  5. A3のセルをB3:H3にコピーし、#N/Aと表示されたセルを消去します。

※数式中セル範囲の H はデータ範囲に応じて変更してください。


以上、不明な点などありましたら、お知らせ下さい。


なお、数値は8個まで等、ある程度条件が限定されていれば、

一発で求める事も可能です。その他、条件によって別の方法を

ご案内する事が可能かもしれません。別途お知らせ下さい。

◎質問者からの返答

質問の意味が不明快であったかもしれません。

スタチックに記述された式のみで解決したかったもんですから。


2 ● tomozo117
●35ポイント

1.0のセルを空白セルに置き換えます。

2.8ヶのセル範囲を選択し、空白セルをジャンプ(Ctrl-G)させます。

http://www2.odn.ne.jp/excel/waza/edit.html#SEC32

◎質問者からの返答

質問の意味が不明快であったかもしれません。

スタチックに記述された式のみで解決したかったもんですから。

質問の意味が不明快であったかもしれません。

スタチックに記述された式のみで解決したかったもんですから。


3 ● t-ueno
●100ポイント ベストアンサー

その数列が1行のみならば、以下のように関数だけで可能です。

(その数列の行がA11にあるものとして書いています)


その数列行の1行上(A10の行)に「=IF(A11<>0,1,"")」

→0でないセルの上に1を立てます


さらに1行上に「=IF(A11<>0,SUM($A10:A10),"")」

→1が立っているセルの上だけに1、2、3、4と連番を打ちます

あとでlookupするので、それ以外のセルには空白が入るようにします


0を飛ばして詰め込みたい行(A13の行とします)の上の行(A12)に

1、2、3、4と順番に数字を入れます(ここは数式やisblankやcountifを

使って必要以上に数値が入らないようにしてもいいですね)


最後に詰め込みたい行(A13の行)に、以下のようにhlookupを入れます

「=HLOOKUP(A12,A9:H11,3)」

(これもisblank等を使って不要セルにエラーが出ないようにするとキレイ)


って感じでいかがでしょうか。

◎質問者からの返答

SUMを使って1を集計し、この結果の値に連番の意味を持たせるとうい発想が出てこなかったので、

ありがとう御座いました。私が求めていた回答そのものです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ