• 締切済み

別シートに並べ替える方法

教えてください exsel2007使用しています sheet1 りんご 2 みかん 1 バナナ 2 ↓ sheet2 りんご りんご みかん バナナ バナナ と並べ替えしようと思うのですがマクロ使わずにできるのでしょうか? よろしくお願いします

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

元データがSheet1のA1セル以下に入力されているなら、以下の数式でご希望のデータを作成することができます。 たとえばA1セルに「=Sheet1!A1」、A2セルに以下の式を入力して下方向にオートフィルコピーしてください。 =IF(A1="","",IF(VLOOKUP(A1,Sheet1!A:B,2,0)>COUNTIF($A$1:A1,A1),A1,INDEX(Sheet1!A:A,MATCH(A1,Sheet1!A:A,0)+1))&"")

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

これを並び替えとは言えませんけど…… 作業列を使います。 Sheet1のC1に↓の式を入れて下方向にコピー =IF(B1="","",SUM(B$1:B1)) Sheet2のA1に↓の式を入れて下方向にコピー =""&IFERROR(INDEX(Sheet1!A:A,MATCH(INDEX(Sheet1!C:C,COUNTIF(Sheet1!C:C,"<"&ROW())+1),Sheet1!C:C)),"") こんな感じでどうでしょう

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

こんにちは! VBA向きの質問なのですが、 関数での方法というコトなので、一案です。 ↓の画像のように作業用の表を作成します。 左側Sheet1の作業セルD2セルに =IF(OR($A2="",$B2<COLUMN(A1)),"",ROW()*10000+COLUMN()) という数式を入れフィルハンドルで列・行方向にこれでもか!というくらいしっかりコピーしておきます。 そしてSheet2のA2セルに =IF(SUM(Sheet1!B:B)<ROW(A1),"",INDEX(Sheet1!$A:$A,INT(SMALL(Sheet1!$D:$Z,ROW(A1))/10000))) という数式を入れフィルハンドルで下へコピー! これで画像のような感じになります。 ※ Sheet1のB列数値が極端に大きい場合はかなり広いSheetを使用するようになってしまいます。 とりあえずはこの程度で・・・m(_ _)m

関連するQ&A