エクセルのLOOKUP関数の検査値には、英文字は指定できませんか?
漢字名の処ではちゃんとデータを持ってくるのですが英文字の処になるとエラーになります。
誰か助けてください。

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

A 回答 (3件)

私が試してみた範囲ではうまく持ってきますが...


原因としては
○半角文字でデータが入っていて、検索値が全角文字になっている。
○データの検索される文字がランダムに並んでいる。
  この場合、たとえば HLOOKUP(B3,E2:J3,2,FALSE) のように
関数の引数に「,false」の部分を加えるとうまくゆくと思います。
    • good
    • 0
この回答へのお礼

早速、ありがとうございました。
そのとおりでした。検索先のデータを昇順にしておく
という部分が理解できずにいました・・・(恥)
ありがとうございました。

お礼日時:2001/08/31 20:11

E列F列


7行a97
8行b98
9行c99
10行d100
11行e101
12行亜12321
13行唖12322
14行娃12323
15行阿12324
16行哀12325
17行愛12326
18行挨12327
19行姶12328
20行逢12329

上記のような表で、
LOOKUP("姶",$E$7:$E$20,$F$7:$F$20)=12328
LOOKUP("c",$E$7:$E$20,$F$7:$F$20)=99
となります。

この計算式を他のセルにペーストする際、検査範囲と対応範囲が相対参照になっていると、
E7:E20がE8:E21->E9:E22・・・と、ずれていってしまいますが、この問題ではありませんか?
実例を示された方がよいのではないでしょうか?
    • good
    • 0
この回答へのお礼

ご丁寧なご回答誠にありがとうございました。
お陰様で、LOOKUP関数が理解できました。
感謝します。

お礼日時:2001/08/31 20:16

こんにちは!



当然、処理可能ですが
「コード順の昇順に配置されている必要があります。」
詳しくは、LOOKUPのヘルプをご覧下さい!

絶対参照(同値や同文字列)のみ検索するのでよろしければVLOOKUPやHLOOKUPをお勧めします。

=VLOOKUP(範囲,検索値,範囲中の返す列,検索型)
=HLOOKUP(範囲,検索値,範囲中の返す行,検索型)

検索型で 0 や FALSE を指定すると並べ替え不要の
絶対参照となります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
基礎的な絶対参照ということがよく理解できていませんでした。しかし、関数って分かると非常に便利ですね。
感謝!

お礼日時:2001/08/31 20:13

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

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

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

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

Qエクセルで種類を数える関数が無いのは何故?

エクセルで種類を数える関数が無いのは何故なんでしょうか?

エクセルで種類を数えるには、いくつかの関数を組み合わせるのが一般的ですよね?
直接数える関数が無いのは、訳があるんでしょうか?

Aベストアンサー

>>エクセルで種類を数える関数が無いのは何故なんでしょうか?

やっぱり、そういう関数が必要な方が全体からみたら少数派だと、エクセルの開発者たちが考えているからではないかと思います。
また、既存の関数を組み合わせたら、対処可能だから、無理して新しい関数を作る必要性もない、開発の優先順位が低いって判断もあるでしょうね。

私は、エクセルの表を作ったり、エクセルVBAでプログラムを作ったりしますけど、そういう関数が必要になったことが全くありませんし。

Q指定文字 ( と、指定文字 )の間の文字を抽出

エクセル又はアクセスで、指定文字 ( と、指定文字 )の間の文字を抽出の方法が知りたいです。横列に長い文があり、その中の カッコ 例(12345)の、12345の部分を抽出したいのですが、方法をお教えいただけませんでしょうか? ()が、指定文字です。縦列には数百あります。

Aベストアンサー

エクセルの一例です。
A列がデータ、括弧記号は半角、以下の数式を任意セルに入力、下方向にコピー
括弧がない場合は、空白としています。
=IF(COUNTIF(A1,"*(*)*"),MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1),"")

因みに抽出結果をデータとしたい場合、抽出結果範囲をコピー→貼り付け先で形式を選択して貼り付け→値を選択→OKとして下さい。

Qエクセルの関数で

エクセルの関数辞典を見ていたら、CUMPRINC関数というのがありました。
しかし、エクセルの「挿入」→「関数」→関数の分類で「財務」というのを選択したのですが、一覧表に載っていません。
どこに載っているのでしょうか?
どうすればこの関数を使えますか?
ちなみにシートの上でやっても関数の反応をしませんでした。

Aベストアンサー

Yahooで検索してみると、参考URLが引っかかりました。

参考になりませんか?

参考URL:http://money-sense.net/doc/20041215_224257.php

Qマクロにて指定の文字間の文字を指定文字とともに削除

エクセル2003です。
マクロで以下の事を行いたいです。

セル内の文字の中で
(( )) で囲まれた文字を(( )) もろとも削除して
別の列に転記したいです。

C列に品名があり、行数は都度違います。
上から順に調べて (( )) が有ったら
(( ))もろともその間の文字を削除してD列に転記する。
(( ))が無いセルはそのまま転記。
( )の場合もあるがそれは削除対象外。

品名の文字は文字数は決まっていません。MAX数も決まっていません。
また(( ))内の文字数も決まっていません。
 ( は半角です。

大変あつかましくすいませんがコードそのものを教えてください。
よろしくお願いします。



DE-500((ABC))

↓ ((ABC))を削除

DE-500


HV-32578934-B(BOH)

↓  ( )はあるが(( ))が無いから変更無し

HV-32578934-B(BOH)


AH-57BD-645(マイクロソフト)((OKウエブ))

↓ ((OKウエブ))を削除

AH-57BD-645(マイクロソフト)


BCF-562BN-DER

↓ (( ))が無いから変更無し

BCF-562BN-DER

エクセル2003です。
マクロで以下の事を行いたいです。

セル内の文字の中で
(( )) で囲まれた文字を(( )) もろとも削除して
別の列に転記したいです。

C列に品名があり、行数は都度違います。
上から順に調べて (( )) が有ったら
(( ))もろともその間の文字を削除してD列に転記する。
(( ))が無いセルはそのまま転記。
( )の場合もあるがそれは削除対象外。

品名の文字は文字数は決まっていません。MAX数も決まっていません。
また(( ))内の文字数も決まっていません。
 ( は半角です。

大変あつ...続きを読む

Aベストアンサー

ふつーに置換で一括削除します。

sub macro1()
 range("C:C").copy range("D1")
 range("D:D").replace what:="((*))", replacement:=""
end sub

Qエクセルの関数 ネスト

エクセルの関数 ネスト

エクセルの関数で、ネストさせるときがあるとおもうのですが、

関数を内側に書いたらよいのか外側に書いたらよいのか分からなくなる時があります。

エクセルの関数に関してわかりやすく書いてあるページなどありますか。

Aベストアンサー

こんばんは

Excel2003までは、ネストが7まで、2007では64までが可能です。
http://www.google.co.jp/search?hl=ja&source=hp&q=excel+%E3%83%8D%E3%82%B9%E3%83%88%E3%80%802003%E3%80%802007&aq=f&aqi=&aql=&oq=&gs_rfai=

「仕様上は可能」でも、複雑なネストは間違いが生じやすいですし、変更もしにくくなります。「出来るだけネストはしない」「適宜、中間結果をセルに出力する」という方法を採った方が、間違いが少なく、柔軟性のあるシステムになると思います。

>エクセルの関数に関してわかりやすく書いてあるページなどありますか。
関数の個別の機能ならば、Webサイトも書籍も多数あるのですが、「組み合わせて使う」というのはその場その場での発想になってしまうと思います。

QExcel セルの文字値に一定の文字値を付加したい

こんにちは☆
Excel についての質問なのですが、
セルにA,B,C…と入っているものを、A-1,B-1,C-1…というように、
-1という文字を付与したいのですが、量が多いので手動ではなく、
関数を使って処理したいです。
わかる方、教えて頂けると助かりますm(_ _)m

Aベストアンサー

   A    B
1  A   A-1
2  B   B-1
3  C   C-1

B1=A1&"-1"
★下にコピー

Qエクセル関数の解読サイトなんてありますか?

エクセル関数の解読サイトなんてありますか?

いつもお世話になっております<(_ _)>

エクセルファイルに関数の入った数式が入力されています。
セルごとに複数の関数が入っていますが、私にはちっともわかりません。

そこで質問です。
こんなとき「エクセル関数を解読」してくれるようなサイトってありませんか?

たとえば検索窓があってそこに「=SUM(S1:S13)」わからなくて困っている関数式を入力。
すると答えの別ボックスに「S1~S13までの数値の合計」と出てくるようなサイト。

それに近いサイトでも良いので知っている方がいらっしゃればぜひ、教えてください<(_ _)>

Aベストアンサー

もし、

=IF(E14="","",IF(O14="",(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1300,(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1625))

だったら、どういう文章が出て欲しいのでしょうか?

もしE14が空白だったら、
 空白、
そうじゃなかったから、
 もしO14が空白だったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1300
 そうじゃなかったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1625

って感じですか?
数式をそのまま読解したほうが解りやすくないですか?

Q【Excel VBA】指定した行の最大値を持つセル番地を取得したい

指定した範囲内で最大値及び最小値のセル番地を取得するには、
どうコーディングしたらよろしいでしょうか?

対象範囲 A1:Z2000の各行(行番は変数で処理)
例えば、
----------------------------------------------------
For x = 1 To 2000
Range(A列のx行目:A列のx行目)の最大値 → B列
               最小値 → Y列
Next x
----------------------------------------------------
このように、2000行分同じことを繰り返し、それぞれの行内での
最大値及び最小値を含むセルの列名を取得し、
B列のx行目を赤(最大値)
Y列のx行目を青(最小値)
に着色したいのです。

よろしくお願いします。

Aベストアンサー

#1です。

高速化してみました。
配列は使ってません。

Sub test2()
  Dim x As Long, y As Long, ct As Long
  Dim myLastRow As Long, myLastCol As Long
  Dim myMatchMaxCol As Long, myMatchMinCol As Long
  Dim myMax As Double, myMIn As Double
  Dim myRng As Range

  myLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  myLastCol = Cells(1, Columns.Count).End(xlToLeft).Column
  
  Application.ScreenUpdating = False
  Range("A1").CurrentRegion.Interior.ColorIndex = xlNone
  For x = 1 To myLastRow
    Set myRng = Range(Cells(x, 1), Cells(x, myLastCol))
    myMax = Application.WorksheetFunction.Max(myRng)
    myMIn = Application.WorksheetFunction.Min(myRng)
    myMatchMaxCol = Application.Match(myMax, myRng, 0)
    myMatchMinCol = Application.Match(myMIn, myRng, 0)
    Cells(x, myMatchMaxCol).Interior.ColorIndex = 3
    Cells(x, myMatchMinCol).Interior.ColorIndex = 5
  Next x
  Application.ScreenUpdating = True
  
  Set myRng = Nothing
End Sub

#1です。

高速化してみました。
配列は使ってません。

Sub test2()
  Dim x As Long, y As Long, ct As Long
  Dim myLastRow As Long, myLastCol As Long
  Dim myMatchMaxCol As Long, myMatchMinCol As Long
  Dim myMax As Double, myMIn As Double
  Dim myRng As Range

  myLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  myLastCol = Cells(1, Columns.Count).End(xlToLeft).Column
  
  Application.ScreenUpdating = False
  Range("A1").CurrentRegion.Inte...続きを読む

Qエクセル関数を、書き写して分析できるツールはある?

タイトルの件、質問します。

エクセルの関数を分析する際に、エクセルの数式バーや、セルに入っている関数を
F2を教えて見るのでは、見にくい場合があります。

現在は、私は、メモ帳に関数をコピーして、分析したり、修正したりしています。
エクセルの機能or他ソフトで、関数を分析できるツールはあるのでしょうか??

【エクセルバージョン】
2003、2007

Aベストアンサー

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利な方法です。
そもそも計算が通っていない(たとえばカッコの対応が間違えていて,Enterしても受け付けてくれないようなミスをしている場合)には使えません。



また,数式バーの中で数式の「中」にカーソルを入れて左右の矢印キーでカーソルを動かしていったときに,「(」や「)」をまたいだ瞬間に,対応する「閉じカッコ」「始まりのカッコ」が色つきで強調表示されるのを確認しながら,カッコの対応がまちがえてないかなどを調べるのも簡易な良い方法です。


あまり使わない方法ですが,数式の中で適宜ALT+Enterを打って「セル内改行」してしまい,数式を縦に分解して書いてみるのも整理しやすい方法のひとつです。

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利...続きを読む

QエクセルのLOOKUP関数について

いつもお世話になってます。

Win98 Excel97です。

以前教わったIF関数でがんばろうとしたら7つまでしか入らないみたいで(T_T)

Aのセルに数字1~10(これ以外の数字は入りません)までを入れると色々と反映するようにしたいのです。

入力はシート1のAセルのみにしたいのですが

A B     C
1 ○○会社  03-×○
2 ▲▲会社  045-
3 ■■会社  03-



のように10種類まであります。
受注するたびに手入力なんですが条件が多い上、手入力でミスが多発してます(T_T)
毎日のことなので固定させたいのですが、元となる表をシート2の1~10行で作りました。

シート1のAセルに1と入力したらシート2のA1行を丸ごと持ってきたいのですが?。
シート1のAセルは1000行まであり、1~10までのどれかしか入らないので何とかしたいのです。

説明不足でしたら補足はすぐお入れ致します。
どうぞよろしくお願い致します。



 

Aベストアンサー

はじめまして。
このケースの場合、IF関数より「VLOOKUP」を使った方が良いのではないでしょうか。

シート2で、各会社ごとにつけた1~10の数値をコードの様に使い、シート1でA列のセルに入力した数値と同じ行のデーターをセルごとに引っ張ってくれば良いのではないでしょうか。


人気Q&Aランキング

おすすめ情報