痔になりやすい生活習慣とは?

A列に、
500
80
200
200
100
300
と、データがあります。このデータのうち、重複しているデータ(200)を一つだけ表示させ、かつ、小さい順に並べ替えて、下記のようにしたいのですが…。
80
100
200
300
500

調べてみて重複データをチェックする方法や削除する方法などはありましたが、並べ替える方法が見つかりません。フィルタオプションかと思いましたが使い方がよくわかりません。配列数式のこともわかりません。オートフィルタやマクロは使いたくありません。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

C列1行目から表示させるとします。



C1セルに
=IF(COUNT(A:A),MIN(A:A),"")

C2セルに
=IF(OR(C1="",C1=MAX(A:A)),"",SMALL(A:A,COUNTIF(A:A,"<="&C1)+1))

と入れて、必要なだけ下にフィルコピーします。
    • good
    • 0
この回答へのお礼

素晴らし~い!!できました。しかも、すっきりしていてとてもいいですね。どうもありがとうございました。

お礼日時:2006/05/16 09:58

自称imogasi方式の、変型判で解ける。


例データ
下記A列
A列 B列   C列    D列  E列 
5005001500
80805300
2002003200
200100
100100480
3003002#N/A
B1に
=IF(COUNTIF($A$1:A1,A1)=1,A1,"")
を入れて下方向に式を複写。
C列C1に
=IF(B1="","",RANK(B1,$B$1:$B$100))
を入れて下方向に式を複写。
E列E1に
=INDEX($A$1:$A$100,MATCH(ROW(),$C$1:$C$100,0)*1)
を入れて下方向に式を複写。
(1)B列では重複データがないので、安心してRANK関数が使える。同順位がない。
(2)$100などは最多見込み行数に変えてください。
B、C列は使わない目立たないところを使ってください。
D列を使っていないのは意味はありません。
(3)該当行を超えるとエラーがでるが、防止策は省略>
    • good
    • 1
この回答へのお礼

回答どうもありがとうございます。実は、ほかの質問を見ていて、imogasiさん方式の回答を期待してました(^O^)。
試してみましたが、E列が一部#N/Aのエラーになってしまいました。やっぱり私のやり方が悪いのでしょうか。ともあれ皆様の回答のおかげで解決いたしました。お世話になりましてどうもありがとうございました。また何かありましたらよろしくお願いします。

お礼日時:2006/05/16 10:15

  A   B   C


1 list list list
2  500  80  80
3  80  100  100
4  200  200  200
5  200  200  300
6  100  300  500
7  300  500

1.セル B2 に式 =SMALL(A$2:A$7,ROW(1:1)) を入力して、此れを下方
  にズズーッとA列のデータの下端と同じ行まで複写
2.[データ]→[フィルタ]→[フィルタオプションの設定]を実行
3.“指定した範囲”に目玉入れ
  [リスト範囲]  B1:B7
  [検索条件範囲] (空白のままにしておく)
  [抽出範囲]   C1
  “重複するレコードは無視する”にチェック入れ
4.[OK]をクリック
    • good
    • 0
この回答へのお礼

回答どうもありがとうございます。
フィルタオプションて、こういう風に使うんですね。
ご丁寧に教えていただいたおかげで一応できました!
ただ、[抽出範囲]が希望するセルにはできませんでした(>_<)
でも、また別のところで応用して使いたいと思います。どうもありがとうございました。

お礼日時:2006/05/16 10:10

#4です。

新しい回答が出ているようですが、とりあえず補足を.......。

まず、B2に入れる数式内の $A$2:$A$20 は、A:A に書き換えてください。

> B列は4番目に小さい数値が表示されます。
もしかしたら、数式を入れる先頭セルは 5行目なのではないですか?
その場合 B5 に入れる数式は =SMALL(A:A,ROW()-4) です。
ROW() は、数式を入力したセルの行何号が返します。
ですから、5行目に"1"番小さい数値を出す場合は、ROW()-4 なのです。

> D列は#Num!とエラー表示になります。
D列に入れる式内のデータ範囲は、C:C の形にはしないでください。
また ROW()-1 の部分も、実際のセル位置に合わせて変えてください。

> [Ctrl]と[Shift]を押しながら[Enter]しますと、数式に{ }が表示される
そうなります。
{ }は、配列関数であることを示しています。
    • good
    • 0
この回答へのお礼

度々の回答、どうもありがとうございます。
> 数式を入れる先頭セルは 5行目なのではないですか?
その通りです!ROW()-4 にしたらできました!
配列関数などもご丁寧に教えてくださり、本当にどうもありがとうございました!

お礼日時:2006/05/16 10:06

#2です。


私の勘違いでした。
次の数式に変更してください。
 B2: =SMALL($A$2:$A$20,ROW()-1)
 C2: =IF(B2=B1,"",B2)
 D2: =INDIRECT(ADDRESS(SMALL(IF($C$2:$C$20="","",ROW($C$2:$C$20)),ROW()-1),3))
    D2だけは、数式入力後に [Ctrl]と[Shift]を押しながら[Enter]してください。(配列数式です)
その後、B2:D2 を選択して、20行目までドラッグコピーします。
    • good
    • 0
この回答へのお礼

重ねての回答どうもありがとうございます。残念ながらできませんでした。
まず、B列は4番目に小さい数値が表示されます。
また、D列は#Num!とエラー表示になります。
私のやり方が悪いのでしょうか?
それから、[Ctrl]と[Shift]を押しながら[Enter]しますと、数式に{}が表示されるのですが、いいのでしょうか?
せっかく教えていただいたのに済みません。

お礼日時:2006/05/15 16:54

削除したデータ200は、表示だけさせないのですか?


それとも実際に削除するのですか?
ここでは、削除する方法をやってみましょう。
データ列Aに付きソートをして昇順にします。
上記データの右横B列に以下の関数を入力します。このとき
データ2行目(B3)から入力すれば良いです。

A1に表題、A2にデータ一番目、データはA○○行目まで。
B1は表題、B2は空白のまま、B3に下記関数。
 =exact(a2,a3)
つまり、自己と一つ上の数字を同一かどうか比べる。
A○○行目まで、関数をドラッグして入れます。
すると各データにつき、自分より一つ上のデータと同一ならTRUE、
違うときは、FALSEが表示されます。
A1からB○○まで範囲を選択し、オートフィルターを選択します。
B列に付き、FALSEのデータを選択すると、重複していないものを
見ることが出来ます。
重複データを削除したいのなら、TRUEを選択してそのデータを
削除します。B列につき、FALSEのデータだけとなります。
    • good
    • 0
この回答へのお礼

回答どうもありがとうございます。
ソートは使いたくなかったのです。。。
そして、実際に削除すると、表が崩れてしまうので、表示だけさせたくないのです。
でも、exact関数は使えそうですね。ありがとうございました。

お礼日時:2006/05/15 16:30

> オートフィルタ、マクロ、配列関数を使わない.



作業列を使うことは、どうなのでしょうか。

1行目は項目行にして(または空白)、A2:A20 にデータが並んでいるとして、
次のように入力します。
B,C列が作業用です。
 B2: =SMALL($A$2:$A$20,ROW()-1)
 C2: =IF(B2=B1,0,COUNTIF($B$2:$B$20,B2)-1)
 D2: =OFFSET(B2,SUM($C$2:C3),0)
その後、B2:D2 を選択して、20行目までドラッグコピーします。
    • good
    • 0
この回答へのお礼

回答どうもありがとうございます!
ご提示の方法を試してみましたができませんでした(>_<)
ROW()-1 にはどんな意味があるんですか?
それから、配列関数は使わないということではなく、何のことかわからないだけなんです。
でも、教えていただいた、「IF(B2=B1…」 の辺りにヒントがありそうな気がします。もうちょっと頑張ってみます。どうもありがとうございました。

お礼日時:2006/05/15 16:19

個人的には、並べ替えが一番楽じゃないかと思いましたが(汗


関数も何もなく、メニューに出てますよ?

メニューバーの
データ→並べ替え。
でどうでしょうか?

>>オートフィルタやマクロは使いたくありません。
ちょっと無理じゃないでしょうか。
重複データをチェックする方法や削除する方法、並べ替える方法が見つかったら。。。それを応用するしかないかと思いますが。。。

ザッと探した感じでは、「重複を削除して並べ替える」という機能を持った関数はなさそうでしたので。

使用頻度が高く、システムとして使用するのでしたら、マクロで作成してもいいでしょうし、ただ単に、このようなことがしたい~。という感じで投稿されているのでしたら、マクロ登録などする必要もないので、重複削除→データ並べ替え。の作業を行いましょう。
    • good
    • 0
この回答へのお礼

回答どうもありがとうございます。
実は、A列の数字は、別表から抽出しているものです。それで、その数字をsmall関数を使って、並べ替えるところまではできているのです。ただ重複したデータがあり、それらが表示されると非常に見づらく、次の操作が間違いやすくなってしまうため、安全のためにその重複データは一つだけ表示させたいのです。
何だか分かりづらくてすみません。よろしくお願いします。

お礼日時:2006/05/15 15:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcel 重複判断しつつ並べ替えする関数

お世話になっております。

添付の画像を見て頂きたいのですが、

1.添付した画像のような感じで重複、非重複が分かるようにA-Z順に並べる関数と、
2.その非重複の全リストの一覧にする関数

はどのように関数を書けばいいでしょうか。
お知恵お貸し下さいm(_ _)m

Aベストアンサー

No.4・5です。
補足の件について・・・

>これをリストが5つ(E列まで)、10個(J列まで)などにする場合、
>コードのどこをどう書き換えれば良いのでしょうか。

に関しては、「全項目」が画面から見えなくなるといけないので余計なお世話かもしれませんが、
↓の画像のように「全項目」列をA列とし、「商品リスト」はB列以降にあり
1行目項目が入っている最終列まで対応するようにしてみました。
(1行目項目データがある最終列までです)

次に
>また、今回は1つの商品リストに十数個程度のデータしか入っていませんでした、
>これがそれぞれの商品リストに数千入っていても、
>このまま動作すると思って大丈夫でしょうか。

の件につきまして、おそらく大丈夫のはずですが結構時間がかかるかもしれません。

今一度コードを載せてみますので、マクロを試してみてください。

Sub test2() 'この行から
Dim i, j, k, M As Long
Application.ScreenUpdating = False
M = Cells(1, Columns.Count).End(xlToLeft).Column '最終列の取得
For j = 2 To M 'B列~最終列まで
For k = 2 To Cells(Rows.Count, j).End(xlUp).Row '2行目からj列最終行まで
If WorksheetFunction.CountIf(Columns(1), Cells(k, j)) = 0 Then
Cells(Rows.Count, 1).End(xlUp).Offset(1) = Cells(k, j)
End If
Next k
Next j
For j = 1 To M 'A列~最終列まで
k = Cells(Rows.Count, j).End(xlUp).Row 'J列の最終行取得
Range(Cells(2, j), Cells(k, j)).Sort key1:=Cells(1, j), order1:=xlAscending
Next j
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
For j = 2 To M 'B列から最終列まで
For k = Cells(Rows.Count, j).End(xlUp).Row To 2 Step -1
If Cells(k, j) = Cells(i, 1) Then
Cells(k, j).Cut Destination:=Cells(i, j)
End If
Next k
Next j
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ ご希望通りに動きになれば良いのですが・・・m(_ _)m

No.4・5です。
補足の件について・・・

>これをリストが5つ(E列まで)、10個(J列まで)などにする場合、
>コードのどこをどう書き換えれば良いのでしょうか。

に関しては、「全項目」が画面から見えなくなるといけないので余計なお世話かもしれませんが、
↓の画像のように「全項目」列をA列とし、「商品リスト」はB列以降にあり
1行目項目が入っている最終列まで対応するようにしてみました。
(1行目項目データがある最終列までです)

次に
>また、今回は1つの商品リストに十数個程度のデータしか入って...続きを読む

QExcelですが、同一データが複数あるとき、検索して、その全部を抽出する方法

Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。

Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。

例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお願いします。

<データシート>
 列A  列B    列C 列C
行1 No 会社名   所属 担当者
行2 1 A株式会社  ○事業部  坂下順人
行3 2 A株式会社  △事業部  滿山友人
行4 3 A株式会社  △事業部  目標達子
行5 4 B株式会社  設計部山下清人
行6 5 B株式会社  営業部横浜美人
行7 6 C株式会社  営業部川崎次郎
行8・・・・・・・・・・・・

<検索結果:別のシートにおいて>
行1 会社名 所属  担当者
行2 A株式会社 ○事業部 坂下順人
行3 A株式会社 △事業部 滿山友人
行4 A株式会社 △事業部 目標達子

Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。

Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。

例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお...続きを読む

Aベストアンサー

#03です
>最後のROW(T1)で、T1を参照しておりますが

ROW(T1)は「1番目」を意味しています。T1セルに何もなくても関係ありません。コピーしたの行はROW(T2)になりますが、これは2番目のという意味です

#REF!エラーになりますか?
私が示した条件と何か変えていませんか?
別シートのA1に「抽出する会社名」を入力してあれば、回答したような結果になるはずですが‥ (テストしてありますので)

ただし2000行もあるならVBAの方が良いかもしれません
きっと「シートが重くなる」と思います

Qデータが重複データの扱い(対処方法) RANK・MATCH・INDEX

ずばりこんなデータから、順位とその人の名前を出す。

1)重複した場合、RANKは、同じ位置して、次の番は、欠としている。
  から、下記のような順位になると思われる。

 氏名 点数 順位
 鈴木 700 5
 斉藤 415 8 
 菅野 700 5
 赤井 780 4
 田村 900 2
 池田 620 7 
 楽谷 900 2
 金田 940 1

 ★問題なのが、同じランクになった人の名前をちゃんと表示したい。
  1位からの点数を表示するのは、LARGE関数でできるんだけど、
  同じランクになっている人が、別々に出てこない。
  とても安易な方法だと思ったんですが、
  検索する範囲(表の行番号)をMATCH関数でもとめておく
  点数をつかうので、当然同じ点数には、同じ行がはいる(上から
  順番だから、1行目と3行目に同じ点数なら、1(順位)が連続する)
  それで、その番号を使いVLOOKUP関数で、名前を拾ってくる。
  其の時、自分で同じ番号のところを修正しておく(1と3にする)
  そうすれば、名前がちゃんと出てくる。
  でも、其のセルには、数式がなくなる。

  ⇒VBAや、難しい関数が使えないと、これが限界なのか。。
   参考にさせてもらうものもみたんですが、
   なかなか・・この苦肉の策でもヨシと思っていいのか・・
   ちょっと自信なくて、、
  
 
 ベスト8(ランクごとに返す)
    点数 氏名 番号
 1位 ヾ  ヾ  
 2位 ヾ  ヾ
 2位 ヾ  ヾ
 4位 ヾ  ヾ
 5位 ヾ  ヾ
 5位 ヾ  ヾ
 7位 ヾ  ヾ
 8位 ヾ  ヾ
   

ずばりこんなデータから、順位とその人の名前を出す。

1)重複した場合、RANKは、同じ位置して、次の番は、欠としている。
  から、下記のような順位になると思われる。

 氏名 点数 順位
 鈴木 700 5
 斉藤 415 8 
 菅野 700 5
 赤井 780 4
 田村 900 2
 池田 620 7 
 楽谷 900 2
 金田 940 1

 ★問題なのが、同じランクになった人の名前をちゃんと表示したい。
  1位からの点数を表示するのは、LARGE関数でできるんだけど、
  同じランクになっている人...続きを読む

Aベストアンサー

こんばんは。

関数で作る場合です。

データが、A1 ~C9 までとしで、

D列~F列に表示しなおすとして、

 D列  E列  F列 
順位  点数  氏名
1位 
2位 
2位 
4位 
5位 
5位 
7位 
8位 

E列
E2 は、
=LARGE($B$2:$B$9,ROW(A1))
フィルダウン・コピーします。

D列は、
D2~
=JIS(RANK(E2,$B$2:$B$9))&"位"

を入れて、フィルダウンコピーします。
(JISは、全角にする関数です。)

F列は、
F2~

=INDEX($A$1:$B$9,MOD(LARGE($B$2:$B$9+ROW($A$2:$B$9)/100,ROW(A1)),1)*100,)

配列数式ですから、一旦式を入力したら、目的の式にF2を押して、『ShiftとCtrlを押しながらEnterキー』を押して、式を配列数式に変換させます。

それから、フィルダウン・コピーします。

これで、出来たかと思います。

こんばんは。

関数で作る場合です。

データが、A1 ~C9 までとしで、

D列~F列に表示しなおすとして、

 D列  E列  F列 
順位  点数  氏名
1位 
2位 
2位 
4位 
5位 
5位 
7位 
8位 

E列
E2 は、
=LARGE($B$2:$B$9,ROW(A1))
フィルダウン・コピーします。

D列は、
D2~
=JIS(RANK(E2,$B$2:$B$9))&"位"

を入れて、フィルダウンコピーします。
(JISは、全角にする関数です。)

F列は、
F2~

=INDEX($A$1:$B$9,MOD(LARGE($B$2:$B$9+ROW($A$2:$B...続きを読む

Qエクセル SMALL の機能を文字列でもできないか

数値に対し小さいほうからn番目というのは
SMALLで出来ますが、2文字以上(最低15文字くらい
まで)の文字列に対しそれを行う方法は無いでしょうか?

なんらかの式の組み合わせで出来ないものでしょうか?

要するに名前(よみがな)などを昇順(または降順)に読み込み
ソートさせた状態で別表に表示させたいのですが
文字1文字ならCODEで何とかなるのですが
2文字以上となると・・・

VB等のプログラムは一切使わず関数の駆使でなんとかならない
ものでしょうか?

Aベストアンサー

◆先程の回答で、順位を表示させなくてもできます
   A       B
1  ああああ  ああ
2  ああ     あああ
3  あい     ああああ
4  あう     あい
5  あいあい  あいあい
6  いいい   あう
7  あああ   いいい

B1=IF(COUNTA(A:$A)<ROW(),"",INDEX(A:A,MATCH(ROW(),INDEX(COUNTIF($A$1:$A$10,"<="&$A$1:$A$10),),)))
★下にコピー

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q【エクセル】表から条件に合ったデータを別シートに順番に抽出したい

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
74 PC
75 ペン
76 モニタ



80 


【補足】
元の表(シート1)を編集することがあるので
自動的に反映されるよう、関数で作成できたらと思います。
シート2の構成上、抽出後のソートや、フィルタオプションは避けたいです。

わかりづらい文章で申し訳ございませんが
どなたかいいアドバイスがありましたら教えてください。
お礼は明日になってしまいますが、必ずご返答いたします。
よろしくお願いいたします。

 

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
...続きを読む

Aベストアンサー

>E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか?
いいえ。
1.
=INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&""
の数式を掲示板上でコピーします(シート名は合わせてください)
2. E74:E80セル範囲を選択します
3. 数式バーで[Ctrl]+[V]貼り付け
4. [Ctrl]+[Shift] +[Enter] でセルへの入力を確定させます

>その際、絶対参照や相対参照は必要でしょうか?
セルのコピーはしませんので不要です。
参考まで

QExcel昇順関数について

データの昇順・降順方法として、メニューから「データ」→「並べ替え」とする方法がありますが、関数で同じことを実現できるものはあるのでしょうか?(例)A列に上から、「5、3、1、4、2」と並んでいるときに、(関数を入力した)B列上から「1、2、3、4、5」と表示する。

Aベストアンサー

A1からA5までデータが入っているものとして、
作業用としてC列に1行目から順位(1,2,3、・・・・)を作っておき、セルB1に
=LARGE($A$1:$A$5,C1)
とし、下の行までコピーします。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング