【最大10000ポイント】当たる!!質問投稿キャンペーン!

以下のように縦にならんだ数字を

1
14
14
35
35
35
35
14
14
14
2
2
2
2
1

グループ化して「順番をかえずに」以下のように並べたいです。

1
14
35
14
2
1

このようにできる関数かなにかありますか?

ピボットテーブルやオートフィルタを試してみたのですが、
1,2,14,35
のように、小さい順にならびかわってしまいます。。。

よろしくお願いします!

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

A 回答 (2件)

>このようにできる関数かなにかありますか?


関数ですから、別のセルに抽出、表示してもよいですね。

元のデータが100行目まであるとして
 =INDEX(A:A,SMALL(INDEX(SUBSTITUTE(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1,0,10^5)*ROW($A$1:$A$100),),ROW(Z1)))
を同じシートの適当なセルに貼り付けて下方向にコピーしてください

ただしこの式は表示するデータがないと#REF!エラーになります。
エラー表示しないようにするには以下のようにIF文を追加します
 =IF(ROW(Z1)<=SUMPRODUCT(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1),INDEX(A:A,SMALL(INDEX(SUBSTITUTE(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1,0,10^5)*ROW($A$1:$A$100),),ROW(Z1))),"")

範囲を修正するときは「EXACT($A$1:$A$100,$A$2:$A$101)」の部分(2カ所あります)でセル範囲が「$A$1:$A$100」,「$A$2:$A$101」と一行ずれていることに注意してください
    • good
    • 1
この回答へのお礼

す・・・すごい!!できました!!
数式をそのままコピペさせてもらって
参照セルだけ変えてみたら見事にできました!
ところでずうずうしいお願いなんですが、
式の意味を教えていただいてもよろしいでしょうか??
関数をひとつひとつ調べてみたんですけど、
どうも意味がわからないのです。。。
「^」とか使ったことないのです。
初心者でゴメンナサイ。
よろしくお願いします!

お礼日時:2008/02/21 16:52

#01です


元のシートの空いている列の1行目に
 =SUBSTITUTE(NOT(EXACT(A1,A2))*1,0,10^5)*ROW(A1)
を入力して下方向にコピーしてください

すると抽出するべき行には「その行の行番号」が表示され、その他の行には行番号×100000が表示されるはずです(10^5=100000)

これをINDEX関数で配列にして、
「INDEX(SUBSTITUTE(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1,0,10^5)*ROW($A$1:$A$100),)」

SMALL関数で小さい方から1つずつ取り出し、
「これにはROW(A1)=1を使います。下にコピーすればROW(A2)=2、ROW(A3)=3と数値が変わります」

それを最初のINDEX関数でA列の値に置き換えています。
    • good
    • 0
この回答へのお礼

またまたお返事いただきありがとうございます!
書き込みいただいてから暇をみつけてはちょっとずつ
数式の見直しをしていました。
おかげさまでだいぶ分かってきました!
このたびはまことにありがとうございました♪♪
また機会がありましたらよろしくお願いいたします!

お礼日時:2008/03/03 14:58

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

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

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

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

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

Q【エクセル】1列内に複数ある同項目を、各項目一つずつに絞る方法

お世話になります。

アクセスで各商品コードごとに、「各施設の価格一覧」
集計をとるための下準備(各コード、重複なく一つずつに
絞られたテーブルを作りたいです)として、
エクセルシート内で無秩序に複数ある各商品コードから、
それぞれ一つずつだけ列挙されたシートを作りたいです。

1万行を超えているので、「集計」でまとめても
意味がないだろうし、この場合の対応策について
皆目思い浮かばないのですが、
よろしければアドバイスいただけないでしょうか。

よろしくお願い致します。

Aベストアンサー

こんばんは。

Accessを使うのも結構なのですが、Excelでは、フィルタオプションを使います。

メニューから
[データ]-[フィルタ]-[フィルタオプションの設定]

 指定した範囲(O)
 リスト範囲(L) に範囲を入力
 抽出範囲は、適当に1つのセルを選択し、

 □重複するレコードは無視する(R)にチェック

 OK

で、ユニーク・データが取れます。

これは、ユニーク・データを取るためのExcelのデータベース機能です。

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/グループ数を数えるには?

EXCELでグループ数を効率よくカウントする
方法を探しています。以下のようなデータが
ある時、合計で表中に何グループあるかを
関数やマクロで効率的に算出する方法です。

No. Group No.
1 ASAP4425
2 ASAP4425
3 ASAP4425
4 ASAP4425

7944 CIFA3356
7945 CIFA3356
7946 CIFA3356
7947 FOBA3326
7948 FOBA3326
7949 FOBA3326

1) 同じグループをまとめて1件というように
集計したいのです。例中で言えば、No.1-4は
同じGroup名なので合わせて1件とカウントします。
7944-7946も1件というようにカウントします。
同様に以下のGroup名も同じものをまとめて1件と
カウントしていき、最終的に何グループあるかを
調べたいのです。

2) ひとつのGroupに含まれる個別の件数は
一定しません。2つで1グループの案件もあれば、
100件以上が同じGroup 名を所有していることも
あります。

総件数が9000件近くあり、いちいち手作業で分類
するのが面倒ですし、何よりも間違いが起きるのを
恐れています。単純にセル数のカウントではないので、
上手い関数もおもいつきません。

07年度予算策定のため分類作業中なのです。
宜しくお願い致します

EXCELでグループ数を効率よくカウントする
方法を探しています。以下のようなデータが
ある時、合計で表中に何グループあるかを
関数やマクロで効率的に算出する方法です。

No. Group No.
1 ASAP4425
2 ASAP4425
3 ASAP4425
4 ASAP4425

7944 CIFA3356
7945 CIFA3356
7946 CIFA3356
7947 FOBA3326
7948 FOBA3326
7949 FOBA3326

1) 同じグループをまとめて1件というように
集計したいのです。例中で言えば、No...続きを読む

Aベストアンサー

途中に空白がなければ
=SUM(INDEX(1/COUNTIF(B1:B9000,B1:B9000),))

途中に空白があるなら
http://oshiete1.goo.ne.jp/qa2710769.html
を参照してください

QEXCELで連続した同じ値をグループと見なして数を数えるには?

EXCELで連続した同じ値を1グループと見なしてグループ数を数える方法を探しています。つまり以下のようなデータがある時、A列中に何グループあるのかを関数で算出したいのです。

行   A
1   ○
2   ○
3   ×
4
5   ○
6   ○
7   ○
8   ×
9   ×
10   ○
11   ○
12   ○
13   ○

例中のA1~A13の範囲内では、A1~A2、A5~A7、A10~A13 を○のグループと見なして、グループ数は「3」ということになります。
このカウントをする関数式を1つのセルの中に作成して計算させたいのです。

・ 列内には他に、×と空白があります。
・ ○は必ず2つ以上連続しています。
・ ○がいくつ連続してグループを作るかはわかりません。
・ グループとグループの間に入る×と空白の数は不規則です。

これは職場で使っている管理表です。
当初、他列の各行にA列の前後の値から判断する式を入れて合計して求めていたのですが、パソコンスキルの低い不特定多数の人が使用するため、関連するセルに削除挿入されたりしてエラーが頻出し、集計している別シートの方にも影響を出しています。そのため、各行に計算式を入れる方法は避けたいのです。

お知恵をお貸しください。
よろしくお願いいたします。

EXCELで連続した同じ値を1グループと見なしてグループ数を数える方法を探しています。つまり以下のようなデータがある時、A列中に何グループあるのかを関数で算出したいのです。

行   A
1   ○
2   ○
3   ×
4
5   ○
6   ○
7   ○
8   ×
9   ×
10   ○
11   ○
12   ○
13   ○

例中のA1~A13の範囲内では、A1~A2、A5~A7、A10~A13 を○のグループと見なして、グループ数は「3」ということになります。
このカウントをする関数式を1つのセルの中に作成して計算...続きを読む

Aベストアンサー

例示された条件なら、以下のような数式で○の連続する組み合わせの個数が求められます。

=SUMPRODUCT((A1:A100="○")*(A2:A101<>"○"))

Qエクセルで、列内が同じ名前を集計する方法は?

エクセルで以下のような表を作成したとします。

      A列   B    C    D
 1行   名前   項目   金額
 2    すずき  あいう  100
 3    すずき  かきく  200
 4    すずき  さしす  450
 5    さとう  あいう  150
 6    さとう  さしす  200
 7    はやし  あいう  250 
 8    はやし  かきく  170
 9    はやし  たちつ  980

B列の名前が同じ者の、金額の合計をD列に出したいのです。
D4に すずきの合計 750、D6にさとうの合計 350、
D9にはやしの合計 1150  というふうに。
全部で100人分位、データ行数は15000ほどあるのですが
これをさっとできるようにはどのようにしたら良いのでしょうか?

Aベストアンサー

次の方法は如何でしょうか。
D2に=IF(COUNTIF(A:A,A2)=COUNTIF($A$2:A2,A2),SUMIF(A:A,A2,C:C),"")を入力→D2を選択→フィルハンドル(D2セル枠右下の■)をダブルクリック
但し、C列途中に空白がある場合、その直前までしかコピーされませんので、空白セル前のセルを下方向にコピー後、同様にフィルハンドルをダブルクリックし下さい。

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エクセルのIF関数で、文字が入力されていたならば~

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

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ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセル メンバー表からグループメンバーを抽出

縦に名前が並び、その横の列に男女、その横の列にA・B・Cの3グループが入力されている表があります。
その表からAグループ・Bグループ・Cグループのメンバーを抽出して各グループのメンバー表を作成したいです。

条件として…
(1)今後メンバーが増える可能性がある。
(2)メンバーの所属グループは変更になる。
(3)グループの人数構成はバラバラである。
(4)メンバー表の名前は上から縦に並べたい。
(5)メンバー表はそれぞれ別シートに作成したい。
(6)ABどちらかに所属する男性のみ(女性のみ)のグループのメンバー表も作成したい。

毎日作成するので日々の手間を最小限にしたいです。
関数等を利用して一発で表作成することはできないでしょうか?

よろしくお願いします。

Aベストアンサー

関数案については、既に回答が出ていますが
さて、提示された関数をご理解できましたでしょうか。
条件が変更されたときに、ご自身で式を変更するには
意外と、VBA以上の知識が必要な位複雑な式です。
別案ですが、フィルターオプション の機能を紹介しておきます。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm
のサイトを参考にしてください。
機能を理解できれば、色々な応用が可能です。
毎日、実行するのであれば、一度、マクロの記録を実行すればよいです。
記録される内容は、ほんの1行ですので、VBAを理解するのも楽です。


人気Q&Aランキング