人に聞けない痔の悩み、これでスッキリ >>

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

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

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

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

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

A 回答 (8件)

◆先程の回答で、順位を表示させなくてもできます


   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),),)))
★下にコピー
    • good
    • 9
この回答へのお礼

回答ありがとうございます。


こんなに簡単に順位をつけられてしまうなんて、拍子抜けです!!

>COUNTIF($A$1:$A$10,"<="&$A$1:$A$10)
こんな使い方(特に<=の部分におどろき)が出来るのですね♪

このやり方で何とかなりそうな様相です。
頑張ってみます。

ありがとうございました。

お礼日時:2007/03/10 17:09

こんにちは。


回答ではないのですが、#7 の回答、感服しました。私が、某所で書いていたころは、誰も解答できませんのでしたの、隔世の感を感じました。

いいわけとしては、あまり長く、関数の世界には留まらなかったので、VBAのユーザー定義関数で、解いてしまいました。どのみち、関数というのものは、人が作ったものですから、そういう既成の枠の中で考えるのが面倒というか、ばかばかしく感じることがあります。確かに、初期の関数のコンセプトを考えた人たちには、敬意を払いますが、現行の関数は、バグが残っていたり、むやみに変更してみたりして、統一性もない関数を使わされるのには、閉口するときがあります。

ご質問者さんには、失礼な回答をしたことをお詫びします。m(__)m
    • good
    • 0

◆こんな方法はいかがでしょうか


    A     B   C
1  ああああ  3  ああ
2  ああ     1  あああ
3  あい     4  ああああ
4  ああ     6  あい
5  あいあい  5  あいあい
6  いいい   7  あう
7  あああ   2  いいい

★B列に順位を表示します
B1=IF(A1="","",COUNTIF($A$1:$A$10,"<="&A1))
★下にコピー

★C列にひらがなを昇順に
C1=IF(COUNTA(A:$A)<ROW(),"",INDEX(A:A,MATCH(ROW(),INDEX(COUNTIF($A$1:$A$10,"<="&$A$1:$A$10),),)))
★下にコピー
    • good
    • 2

> 回答ありがとうございます。


> 今回の趣旨とは外れてきます。
> いやぁ、まいった・・・♪

一応お礼は言われているので、多分他意はないのでしょうが、
最後の八分音符に回答者諸氏を試しているニュアンスを感じましたので、
私は、降ろさせていただきます。
    • good
    • 0
この回答へのお礼

再度質問に戻って見ていただきありがとうございます。

>回答者諸氏を試している
なんていうつもりは全くございません。

そのようなニュアンスに見えましたことをお詫びいたします。
ホントにまいっているため、お礼文面で表現のしようがなかったため
「いやぁ、まいった…♪」と自然に使ってしまいました。

またお目にかかった折にはよろしくお願いいたします。

お礼日時:2007/03/10 17:06

#2 のWendy02です。



>いやぁ、まいった・・・♪

こういう問題を個人の解決のテーマとして持ち続けるのは良いとは思います。

ですが、もう少し、自分の中で冷静に考えてみてください。
まず、関数は、一部は、文字列は、0 とみなすように出来ているのと、そうでないものは、文字列が入るとエラーを出すように作られています。逆にいうと、関数の比較は、数値を処理するために出来ています。

私個人は、その問題を、数年前にユーザー定義関数で解決させてはいますが、しょせん、MSが、お仕着せで作ったものにあやかって、ああでもないこうでもない、というようなプロセスが、ちょっと私には歯がゆいです。VBAを知っていれば、Excelは、もっと自由度が高いと思います。VBAは、分かればとても便利です。VBAを勉強すれば、関数の本質的なことも分かります。

>なんとか文字列の大小が判断できれば成功するのですが

文字というのも、本来は、数字の塊で、プログラムの世界では、本質的には数字とはなんら変わりません。だから、本来は可能なのですが、そうさせないだけなのです。

Excelにも、まだ、私の手の届かないような世界もあります。狭く使えば、また、それは、それまでだと思います。こんなことを書いても、何の役にも立ちませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます。


関数とは・・・、と言う点については十二分に理解しています。
もちろん文字についても・・・。

そしてVBAについて今後勉強したいと考えております。

ただ今回唐突に質問内容の様ななことが必要となり(1週間ほどで
カタをつける必要が…(×_×;) )、何とかならないか
と思い質問いたしました。

皆様には色々アドバイスいただき感謝しております。

お礼日時:2007/03/10 17:03

ちょっと強引ですが、


#1さんが言われているように、「データ」-「並べ替え」を使います。
A列に並べ替えの対象になる文字列が入っているとして、
B列に「=ROW()」と計算式をいれ、A列だけを並び替えを行います。

100行の内、5番目のデータを表示したい場合、表示させたいセルに
=INDEX(A1:A100,SMALL(B1:B100,5),1)とします。
ただし、上記100行の中にブランクがあるとうまくいきません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

「データ」-「並べ替え」を手動で利用する時点で
今回の趣旨とは外れてきます。

なんとか文字列の大小が判断できれば成功するのですが
「名前」のような場合によってはカナ10文字以上になりそうな
ものでは、CODEで表れた数値を結合して使うなんてことも
桁数的に不可能なので・・・

いやぁ、まいった・・・♪

お礼日時:2007/03/09 18:46

こんにちは。



がんばってみるのは良いでしょうね。多少の関数が分かってきたなって思ったら、誰もが一度は、それは挑戦しているはずです。ただ、私の知る限りでは、関数で成功したという話は聞きません。少なくとも私は出来ませんでした。

VBAなら、あれをこうして、とか想像は付きますが、それでも、なかなか難しいような気がします。

もしも、他のセルを使って数値化するのでしたら、文字コードは、左から読むことになりますが、それも、ややこしいでしょうね。
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。

かなりいろんなことを思案しているのですが
なかなか厳しい状況ですね♪

1、元データ(関数や式の入っていないタダの値)
  ↓
2、エクセル上で関数や式等を使い出来上がった
  なんらかのデータ
  ↓
3、そのデータを引数とし、今回の質問のような
  ソート状態にもっていった最終データ(リスト)

今回は3、を自動でしたいと思っていますので
2、のデータを手動でソートしたり
あるいは、2、のデータを別に手動で値のみコピーして
さらに手動でソートしてということはしたくないのです。



やはりムリなのかなぁ・・・

お礼日時:2007/03/09 18:41

ソートで済むものを、なぜこんあんことをするのか良くわからないし、


>VB等のプログラムは一切使わず関数の駆使でなんとかならない
など制約を課すのか
関数では無理ではないかとおもう。
ーー
VBAといえなくもないが、ユーザー定義関数を作る。
(1)作業列を使う
(2)数行のVBAコーを書く
が欠点といえば欠点だが。

標準モジュールに
Function cd(a)
s = ""
For i = 1 To Len(a)
s = s & Format(Asc(Mid(a, i, 1)), "000")
Next
cd = s
End Function
シートで、A列に半角カナがあるとして
B1に=cd(A1)と入れて最下行まで式を複写する。
全データ範囲を指定して並べ替えする。
ソートキーはもちろんB列、昇順。
結果
エノモト180201211196
オオカワ181181182220
キムラ183209215
キムラ183209215
セキ190183
タムラ192209215
ワダ220192222
姓と名の間のスペースが邪魔化も知れない。
SUBSTITUTE関数で取り除けばようかもしれない。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

並び替え自体を自動で行っていないため
今回の趣旨とは根本が異なりますが
ユーザー定義関数というものを今回初めて
知りました。
ぜひ勉強させていただきます。
ありがとうございました。

お礼日時:2007/03/09 18:36

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

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

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

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

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

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)
とし、下の行までコピーします。

QExcel関数 指定文字を抽出し、昇順に並び替えをしたいのですが

皆様はじめまして。関数初心者です。
以下の処理を行うには、どのような関数を用いれば良いでしょうか。

【例】
A B C
1 書名1 1111 1000
2 書名2 1111-A 1200
3 書名3 1111-B 1200
4 書名4 1112 1300
5 書名5 1112-A 1500
6 書名6 1112-B 1500

列Bの中から、-Bのデータを抜き出し、更にBを基準に昇順並び替え

【結果】
A B C
3 書名3 1111-B 1200
6 書名6 1112-B 1500

皆様のお知恵を拝借できますでしょうか。
どうぞ宜しくお願いいたします。

Aベストアンサー

すみません 質問からズレて関数未使用ですが
オートフィルタを使い、列Bで「-B」で終わる を選ぶ
できた表をコピーして並び替え

 

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 数式・関数でソートしたい

数式・関数でソートする方法を教えてください。

A列に日付、B列に品名、C列に個数が入ったSheet1があります。
これを日付順にソートしたSheet2をつくりたいと思っています。

Smallでやろうと思ったのですが、同じ日付が何回もでてくるために、うまくいきませんでした。

よろしくお願いします。

Aベストアンサー

こんばんは。

昨日のご質問にもお答えしたものです。
これも同じ考えた方でできますよ。

■作業列を使う方法です。
作業列はどの列を使用してもかまいません。
ここでは例として Sheet1の J列を使います。

A列の日付が 2行目から始まっているとすれば、
Sheet1の J2に↓( J列の表示形式は 「標準」 のままにしておいてください)
----------------------------
=IF(A2="","",A2*10000+ROW())
----------------------------
◆上の数式を、A列のデータ最終行までコピーしてください。
今後もデータが増えるのなら、予想される最大行までコピーしておいてください。
( 最大500件だと思えば、J500 までコピー)
3.85E+08 ←のような感じで表示されても気にしないでください。
列幅を広げればちゃんと表示されます。 
作業列が目障りなら非表示にしてください。

Sheet2 の A2に↓
----------------------------------------------
=IF(COUNT(Sheet1!$J:$J)<ROW(A1),"",INDEX(Sheet1!$A:$C,MATCH(SMALL(Sheet1!$J:$J,ROW(A1)),Sheet1!$J:$J,0),COLUMN(A1)))
----------------------------------------------
作業列を J列と仮定しています。
J列以外の列を作業列に使う場合は、数式の $J:$J (3ヶ所)をその列記号に変更してください。
絶対参照($)にしているところは必ず絶対参照にしておいてください。
ROW(A1)、COLUMN(A1) の A1はそのままにしておいてください。
◆この数式を、そのまま右にC2までコピー
そのまま(A2~C2が選択された状態で)下に、Sheet1 のデータ件数分コピーしてください。
今後もSheet1のデータが増えつづけるのなら、予想される最大行までコピーしておいてください。
A列の表示形式を「日付」、B・C列の表示形式を「標準」にしてください。
  ◇
ROW(A1)、COLUMN(A1) の意味については、昨日のご質問の補足にお答えしておきましたので、そちらをご覧ください。

こんばんは。

昨日のご質問にもお答えしたものです。
これも同じ考えた方でできますよ。

■作業列を使う方法です。
作業列はどの列を使用してもかまいません。
ここでは例として Sheet1の J列を使います。

A列の日付が 2行目から始まっているとすれば、
Sheet1の J2に↓( J列の表示形式は 「標準」 のままにしておいてください)
----------------------------
=IF(A2="","",A2*10000+ROW())
----------------------------
◆上の数式を、A列のデータ最終行までコピーしてください。
今後もデータ...続きを読む

QEXCELで文字列の並べかえ

こんにちは。EXCELの関数を教えてください。マクロは使用しない方法でお願いします。
行いたい内容は、セル内に入力した「1234567の文字列を7654321」や、「abcdをdcba」に並べかえることです。
つまり、EXCELのセル内に入力した文字列を逆から並べ替えたいのです。
お時間のある方、ぜひ教えてください。
よろしくお願いします。

Aベストアンサー

   A   B C D E F G H   I
1 1234567 7 6 5 4 3 2 1 7654321
2 abcd   d c b a      dcba
3 ab    b a         ba

B1: =MID(REPT(" ",7-LEN($A1))&$A1,7-COLUMN(A1)+1,1)
I1: =TRIM(B1&C1&D1&E1&F1&G1&H1)

Qエクセルで文字が混じった数字を並べ替えしたいのですが

どなたか、お力お貸し頂けませんか?
一言でも、アドバイス頂ければ幸いです!!

エクセルで、製品の機番の並び替えをしたいです。
111234
223452
123A11
123B23
455A67

こんな感じで、機番が並んでいます。(本当は10桁だけどわかりやすくするため減らしてます)
困ったのは、機番にアルファベットが混じっているので、単純に照準で並べ替えると、アルファベット混じりでない数字のみが先にきて、アルファベット混じりが後に続くことです。
実は、アルファベットの前の数字を基準に並べ替えたいのです。(そして更に、アルファベット前の数字が同じな場合、以降のアルファベットはABC順に並べたい)

私が考えた方法は、
LEFT関数を使って、アルファベット前の数字だけ出して、(幸いなことに、アルファベットのある場所が、最初から4番目と決まっています、なので、これが使えると思って)、それを基準に昇順に並べ替える方法。
隣の列には、アルファベット含む全10桁の機番をそのまま付けておけば、これで自然と、アルファベットもABC順になってくれるみたいなので。
そして更に、アルファベットの混じっている機番だけが左詰めになってしまうので、数字のみの機番と見やすく揃えるため、セルの書式設定で、右か左のどちらか詰めに直します。
これでも、できるはできると思うのですが・・

このやり方では?という方法や何かアドバイスいただければ、とっても幸いです。

(機番が全部で1000個以上あって、これから私が在庫管理をまかされる機番の種類は、アルファベットが2個混じってるものや、混じってる位置もばらばらなものもあるようです><;アルファベットが最初と最後から3番目に混じってる機種とか・・(++;)今回はとりあえず、最初から4桁目がアルファベットの機種の機番のやり方だけでもと思い、ご相談させて頂きました)
どうぞ宜しくお願い致しますm(__)m

どなたか、お力お貸し頂けませんか?
一言でも、アドバイス頂ければ幸いです!!

エクセルで、製品の機番の並び替えをしたいです。
111234
223452
123A11
123B23
455A67

こんな感じで、機番が並んでいます。(本当は10桁だけどわかりやすくするため減らしてます)
困ったのは、機番にアルファベットが混じっているので、単純に照準で並べ替えると、アルファベット混じりでない数字のみが先にきて、アルファベット混じりが後に続くことです。
実は、アルファベットの前の数字を基準に並べ替えたいの...続きを読む

Aベストアンサー

「(そして更に、アルファベット前の数字が同じな場合、以降のアルファベットはABC順に並べたい)」
についての回答がないので補足します。

仮にA列に機番が入力されているとして、
1.まず機番の後にB列以降に7列以上挿入します。
2.10桁の機番を念のため、半角に揃えるならASC関数、全角に揃えるならJIS関数、を使って、機番を半角か全角に揃えます。そして、B列の計算結果をコピーして、C列に形式を選択して貼り付け→値を選択して貼り付けます。
3.C列を選択して、データ→「区切り位置」をクリックします。
4.「区切り位置指定ウィザード 1/3」のダイアログボックスが出てきたら、
  “スペースによって右または左に揃えられた固定長フィールドのデータ”
  の右のオプションボタンのほうを選択して、右下の「次へ>」をクリックします。
5.「区切り位置指定ウィザード 2/3」のダイアログボックスで、
  アルファベットのある4文字目の前後をクリックして、
  2つの区切り位置を作成します。
6.「区切り位置指定ウィザード 3/3」はそのままで、「完了」をクリックします。
7.これで、C、D、E列に機番が分割されました。
8.データ→並べ替えをクリックして並べ替えダイアログボックスを出して、
  最優先されるキーを‘列C’(前3桁の数字部分)
  2番目に優先されるキーを‘列D’(アルファベットの部分)
  にして「OK」をクリックして、並べ替えをします。
9.並べ替えは完了しましたが、機番が3列に分かれてしまっているので、
  F列に、CONCATENATE関数を使って、
  引数を同じ行のC列、D列、E列を選択します。
10.出てきた(くっついた?)計算結果を、G列に
  形式を選択して貼り付け→値を選択して貼り付けます。
11.不必要な列を削除します。

面倒と思うでしょうが慣れると思います。いかがでしょうか。

なお、余談ですが、Excel2002以降では、セルの書式を事前や事後に“文字列”にしてもエラーチェックが出てしまいますので、
出てきたエラーチェックのインジケータを残して無視するか、
ツール→エラーチェックのダイアログで「無視」をクリックしまっくって消すか、
ツール→オプション→「エラーチェック」タブで“バックグラウンドでエラーチェックを行う”のチェックボックスをオフにするしかないです。

「(そして更に、アルファベット前の数字が同じな場合、以降のアルファベットはABC順に並べたい)」
についての回答がないので補足します。

仮にA列に機番が入力されているとして、
1.まず機番の後にB列以降に7列以上挿入します。
2.10桁の機番を念のため、半角に揃えるならASC関数、全角に揃えるならJIS関数、を使って、機番を半角か全角に揃えます。そして、B列の計算結果をコピーして、C列に形式を選択して貼り付け→値を選択して貼り付けます。
3.C列を選択して、データ→「区切り位置」をクリ...続きを読む

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

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の方が良いかもしれません
きっと「シートが重くなる」と思います

QExcel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合

MATCH関数で、検索した値が複数ある場合に1つしか出なくて困っています。
(例)
   A B C D
1 年月日 種類 番号 備考
2 4月1日 肉類 1
3 4月2日 野菜 2
4 4月3日 肉類 1
5 4月4日 果物 2
6 4月5日 野菜 1
7 4月6日 果物 3
8 4月7日 果物 2
9 4月8日 肉類 1

この表で、D9の備考の欄に「種類:肉類、番号:1」と同じものがあった時の日付を、新しい日付で取り出したいのです。

INDEX(A2:A8,(MATCH(B9,B2:B8,0)+MATCH(C9,C2:C8,0))/2)
としたのですが、本当は4月3日を取り出したいのですが、4月1日が出てきます。
どのようにしたら良いでしょうか?
Excel2003です。
よろしくお願いします。

Aベストアンサー

MATCH関数を使用しませんが、D9の書式を日付にして、
=MAX((A2:A8)*(C2:C8=1)*(B2:B8="肉類"))
と、入力してShift+Ctrl+Enterキーで入力完了してみてください(配列式になります)。

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&Aを見た人がよく見るQ&A

人気Q&Aランキング