エクセルで別シートの数個のセルの中の数値から同じ数字の一番多いものを選び出して入力する方法を教えて下さい。

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

A 回答 (2件)

>ネストってなんですか?


 関数式中に関数式を組み入れた(複雑な)式のことです。
 例えば、ご質問の式でエラー値N/A!を返さない様にするために、
=if(isna(mode(sheet1!a1:a30))=true,"最頻値はありません",mode(sheet1!a1:a30))
※上式解説:if関数で、もし、(最初に示した)条件「sheet1!a1:a30の範囲の最頻値を返しなさいという関数の答がN/A!エラーと等しい」ならば、2番目の区切りの命令「""内文字列」を返し、そうでなければ最後の区切りの命令「を返しなさい。という中に、最初の条件で とネストを作れば、「sheet1!a1:a30の範囲の最頻値を返しなさい」という条件分岐関数を組み込んだ
 上記式のような、関数の中に、関数を組み込んだ式を、ネストといいます。
 ネストを作ることで、excelの関数に当てはまらない式を作り上げることができます。
    • good
    • 0

 例えば、sheet!1のA1からA30の範囲に数値データがあるとします。


 別シートということなので、sheet!1以外のシートの任意のセルに、
=mode(Sheet1!A1:A30)と入力すると、sheet!1のA1からA30のデータのうち、同じ数値が最も多いものを返します。
 この関数は、最頻値(MODE)を返す関数として、数値データのうち最も多い数値を
返します。データ範囲がバラバラでも、任意の30範囲まで選択することができます。
 ただし、同じ数値の数が同数ある時には、選択範囲の同数の数値のうち、先頭に近い数値が選ばれてしまいます。範囲の全ての数が1つずつしかなければ、エラー値N/A!を返してしまいます。それが困る場合は、ネストをつくってエラー時の処理を行う必用があります。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。ちなみにネストってなんですか?

お礼日時:2002/03/05 18:46

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

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

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

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

Qエクセルで、検索し適合したセルと同行にある数値を数値の小さいものから順番に10個ほど別シートに表示させたいのですが。

例えば、シート1に項目Aに種別が複数記入され、
項目Bに種別に対応した規格が何種類か記載されています。
項目A,Bにはそれぞれ同じ種類のものが複数記入されていますが、
それをシート2で、あるセルに種別を記入してあり、
その種別ごとに、規格の数値を小さいものから順番に(同じ規格のものは表示しない)列方向に10個程度表示させたいのですがやりかたがわかりません。ご教授お願いします。

□シート1
    列1  列2
行1  種別  規格
行2   H  100
行3   H 200
行4   H  100
行5   H  350
行6   L  40
行7   L  60
行8   L  75
行9   L  60
行10  L  40
これをシート2で、
    列1  列2
行1  種別  H
行2  項目  規格
行3   1  100
行4   2  200
行5   3  350
行6
行7  種別  L
行8  項目  規格
行9   1  40
行10  2  60
行11  3  75

上記のようなものを作成したいのですが、
わかるかたがいれば項目の数がAND条件で複数ある場合の式も教えていただけないでしょうか?

例えば、シート1に項目Aに種別が複数記入され、
項目Bに種別に対応した規格が何種類か記載されています。
項目A,Bにはそれぞれ同じ種類のものが複数記入されていますが、
それをシート2で、あるセルに種別を記入してあり、
その種別ごとに、規格の数値を小さいものから順番に(同じ規格のものは表示しない)列方向に10個程度表示させたいのですがやりかたがわかりません。ご教授お願いします。

□シート1
    列1  列2
行1  種別  規格
行2   H  100
行3   H 200
行...続きを読む

Aベストアンサー

こんなのもあるかもしれません。
____A___B_
_1_種別__H_
_2_項目_規格_
_3___1__100_
_4___2__200_
_5___3__350_
_6___4___0_
_7_種別__L_
_8_項目_規格_
_9___1__40_
10___2__60_
11___3__75_
12___4___0_
13___5___0_

B3
=IF(B2=0,0,MIN(IF((シート1!A$2:A$10=B$1)*(シート1!B$2:B$10>N(B2)),シート1!B$2:B$10,"")))
Ctrl+Shift+Enter同時押し
下方向・↓B6まで
B9
=IF(B8=0,0,MIN(IF((シート1!A$2:A$10=B$7)*(シート1!B$2:B$10>N(B8)),シート1!B$2:B$10,"")))
Ctrl+Shift+Enter同時押し
下方向・↓B13まで


B1:B13選択
→条件付書式
→セルの値が 次の値に等しい 0
書式:フォント、白

またはツール
→オプション
→表示
→ゼロ値 のチェックをはずす

こんなのもあるかもしれません。
____A___B_
_1_種別__H_
_2_項目_規格_
_3___1__100_
_4___2__200_
_5___3__350_
_6___4___0_
_7_種別__L_
_8_項目_規格_
_9___1__40_
10___2__60_
11___3__75_
12___4___0_
13___5___0_

B3
=IF(B2=0,0,MIN(IF((シート1!A$2:A$10=B$1)*(シート1!B$2:B$10>N(B2)),シート1!B$2:B$10,"")))
Ctrl+Shift+Enter同時押し
下方向・↓B6まで
B9
=IF(B8=0,0,MIN(IF((シート1!A$2:A$10=B$7)*(シート1!B$2:B$10>...続きを読む

Qエクセルのセル1の指定のセルの数値を、別のシートのセルに追加記録していく方法

シート1のA1とA2に数値(任意)を入力します。

そして、シート1にあるボタン(決定ボタン的なものです。)を押すと、

シート2の
A1に”シート1のA1の数値”
A2に”シート1のA2の数値”

を記録し、シート1のA1とA2をクリアします。(数値を消去)

そして新たに、シート1のA1とA2に数値を入力し、
シート1のボタンを押すと

シート2のB1に”シート1のA1の数値”
シート2のB1に”シート1のA2の数値”

を記録といったように、横方向に自動で追加していきたいです。

 ※次はC1とC2です。

どなたかお分かりなられる方教えてください。
よろしくお願いします。

Aベストアンサー

時間の記録については、シート1のC4の欄に

=NOW()

と入力して、セルの書式設定で、表示形式を「時刻」の「13:30:55」等(質問者様のお好きな書式)に変えます。
その上で、先ほどのマクロの記述を下記のように書き換えます。

Sub Macro1()
Dim a1, a2
Dim time

Calculate
a1 = Range("C2").Value
a2 = Range("C3").Value
time = Range("C4")
Sheets("Sheet2").Select
Range("C5").Select
Do While ActiveCell <> ""
ActiveCell.Offset(0, 1).Range("A1").Select
Loop
ActiveCell = a1
ActiveCell.Offset(1, 0) = a2
ActiveCell.Offset(-1, 0) = time
Sheets("Sheet1").Select
Range("C2:C3").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
End Sub

先ほどの記述と変わった点がいくつかありますが、ひとつひとつについては説明しませんので、よく見てご確認ください。

これを実行すると、シート2のC4から右側にボタンを押した時刻が表示されますので、この部分のセル書式の表示設定も「時刻」の表示になるように変える必要があります。

時間の記録については、シート1のC4の欄に

=NOW()

と入力して、セルの書式設定で、表示形式を「時刻」の「13:30:55」等(質問者様のお好きな書式)に変えます。
その上で、先ほどのマクロの記述を下記のように書き換えます。

Sub Macro1()
Dim a1, a2
Dim time

Calculate
a1 = Range("C2").Value
a2 = Range("C3").Value
time = Range("C4")
Sheets("Sheet2").Select
Range("C5").Select
Do While ActiveCell <> ""
ActiveCell.Offset(0, 1).Range("A1").Select
Loop
ActiveCell = a1
Ac...続きを読む

Qエクセルでシート1のセルに入力すると別シートのセルに表示させるには

依頼されて会員証をエクセル2003で作っている最中です。
SHEET1に下記の様に会員証のベースを作ました。

[●●●の会]
会員番号 [SHEET2の会員番号列]
住所 [SHEET2の住所列]
氏名 [SHEET2の氏名列]
電話番号 [SHEET2の電話番号列]
[管理社名]

SHEET2にまだ空欄ですが、会員番号・住所・氏名・電話番号のリスト表を作りました。

ここからが課題でして、SHEET2に会員番号、住所とセルに打ち込んでいくと

SHEET1のそれぞれに対応したセルに表示させる為に

SHEET1のセルに、[=Sheet2!A3]と打ち込めば、

SHEET2のA3のセルが対応されますが、

これではそのセルしか対応しません。

SHEET2の1行目に会員番号、住所から打ち込んだものは、

単純にSHEET1の表示させたいセルに[=SHEET2!○○]を打ち込めば、

それが対応されます。

ただSHEET2の2行目は空白ですので、新たに打ち込んで対応させようとしても出来ません。

毎度毎度SHEET1の表示させたセルに[=SHEET2!○○]をしていくのは大変です。

新規にリストを打ち込むたびにSHEET1の会員証に

表示させる方法はどういったものがあげられるのでしょうか?

或いは、SHEET1の会員証ベースに打ち込んでいくとSHEET2のリストに

自動的に登録される仕組みの方がやりやすいのでしょうか?

数式も教えていただければ大変有難いです。

アクセスの方がやりやすいかもしれませんが、

依頼した方のPCにはアクセスは入っていないですし、

私自身もアクセスはイマイチの部分があります。

エクセルのマクロなるものを使えません。

年始早々に使用したいとの事ですので、
なんとか仕上げてあげたいとは思います。
宜しくお願い致します。

依頼されて会員証をエクセル2003で作っている最中です。
SHEET1に下記の様に会員証のベースを作ました。

[●●●の会]
会員番号 [SHEET2の会員番号列]
住所 [SHEET2の住所列]
氏名 [SHEET2の氏名列]
電話番号 [SHEET2の電話番号列]
[管理社名]

SHEET2にまだ空欄ですが、会員番号・住所・氏名・電話番号のリスト表を作りました。

ここからが課題でして、SHEET2に会員番号、住所とセルに打ち込んでいくと

SHEET1のそれぞれに対応したセルに表示させる為に

SHEET1のセルに、[=Sheet2!A3]と...続きを読む

Aベストアンサー

>次のA3に会員番号00002として打ち込み、会員種類を法人、以下違う人の名前や電話番号などを打ち込んでも、SHEET1では会員番号が変わるだけで、他は1行の情報のままです。。。。。。

=IF(B2="","",ROW())
こちらの式はA2セル入力の後下方向にコピーしてください、Sheet2の会員番号は会員種類に入力があると自動的に表示されます、直接入力はしないでください。
表示形式を00002としたいのであれば、Sheet2のA列とSheet1の会員番号セルをセルの書式設定のユーザー定義で00000としてください。

て入力で00002と入力してその表示になっているので有ればそれは文字列として設定されていると思います、文字列の場合はSheet1の会員番号の呼び出しのMAX関数が働きません。


>OFFSETは基準の端から端までを考えなくても良いという事で、会員番号の最大値と最終行は等しいから、C2でも良いし、D2でも良いのでしょうか?
>OFFSETの行数設定で(A:A)ではおかしい事になるのでしょうか?

OFFSETで求めているのはVLOOKUP関数の検索範囲の右下のセル番地です
http://officetanaka.net/excel/function/function/offset.htm
OFFSETの図解説明のサイトです。

>次のA3に会員番号00002として打ち込み、会員種類を法人、以下違う人の名前や電話番号などを打ち込んでも、SHEET1では会員番号が変わるだけで、他は1行の情報のままです。。。。。。

=IF(B2="","",ROW())
こちらの式はA2セル入力の後下方向にコピーしてください、Sheet2の会員番号は会員種類に入力があると自動的に表示されます、直接入力はしないでください。
表示形式を00002としたいのであれば、Sheet2のA列とSheet1の会員番号セルをセルの書式設定のユーザー定義で00000としてください。

て入力で000...続きを読む

Qあるシートのあるセルに文字列を入力したときに、別のシートの指定したセルにチェックをいれるには

あるシートのセルに日付が入力(1/5など)されると、
別のシートの指定したセルに「-」から「○」がつくようにしたいのですが、
どのような関数を使用して、どんな数式になるのか分かりません。
どなたかご存知であれば教えてください。

Aベストアンサー

今晩は。
難しい関数など必要ありません。
例、シート1のA1セルに日付(文字列でも良いです)を入力して、シー
ト2のA1セルに「○」を表示します。
シート2のA1セルに下記関数を入力
『=IF(Sheet1!A1="","―","○"』
これは、シート1のA1セルに数値とか文字が入ればシート2のA1セルに
「○」を表示する単純な数式です。
要は、シート1の指定されたセルが空白か、何かデーターが入力されて
いるかで、マークを換えるだけです。
シート2の数式を他のセルにコピーしておけば、常に「―」が表示され
ています。
趣旨と違っていたらすいません!

QEXCEL 同じセルに入力したデータを別のシートに順次保存して行きたい

シート1の同じセルに入力したデータを別のシート2に順次保存して行きたい、詳細に方法を教えて下さい。A1・・・・・・An行まで

Aベストアンサー

質問の意向は下記のようなものでよいのかな。
VBAでしかできないと思われ、VBAを良くわかっていない場合は望まないほうがよい内容です。
下記も特殊なデータや特殊な操作でテストをやるとうまく動くかどうか。
sheet1のWorkSheetのChangeイベントに
Private Sub Worksheet_Change(ByVal Target As Range)
Static i
If Target.Address = "$A$1" Then
i = i + 1
Worksheets("sheet2").Cells(i, "A") = Target
End If
End Sub
を貼り付ける。
そしてまた
ツール
オプション
編集
「入力後にセル移動する」のチェックをOFFにする。
これでA1セルに数字を入れてENTERを押す操作を繰り返すと、
Sheet2のA列に上の行から順次に下へ、値がセットされていきます。


このカテゴリの人気Q&Aランキング

おすすめ情報