新生活!引っ越してから困らないように注意すべきことは?>>

Excelファイル1に平成24年度版の商品の縦書き一覧表があります。(A2~A100までが商品名)
同じくExcelファイル2に平成23年度版の商品の縦書き一覧表があります。(A2~A100までが商品名)

Excelファイル1における平成24年度の商品一覧表の各商品の横のセル(B2~B100)に、平成23年度にも販売していたのであれば「23」という数字を記入し、平成23年度に販売していなければ(平成24年度からの発売であれば)「24」という数字を記入したいとします。

簡単な方法としてはExcelファイル2のB2~B100に23を記入し、Excelファイル1のB2に
VLOOKUP関数を入力し、Excelファイル1と2のA列が一致する場合、Excelファイル2のB列(23)を返し、一致しないセルのエラーを削除して24を記入するという方法が考えられます。

しかし、一つの関数入力で23年度の一覧表に一致する商品の隣のセルに23、23年度に販売されていなければ24という値を返すようにしたいと思います。

IF関数の中の論理式の部分をVLOOKUPに置き換えて入れ子にし真なら23、偽なら24とすればよいのかと思ったのですが、エラーになります。

どのような数式をつくればよいのでしょうか。

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

A 回答 (3件)

>平成24年度の商品一覧表の各商品の横のセル(B2~B100)に、平成23年度にも販売していたのであれば「23」という数字を記入し、平成23年度に販売していなければ(平成24年度からの発売であれば)「24」という数字を記入したいとします。



添付画像より説明します <(_ _)>
「平成24年度の商品」ブック名の一覧表(A列)の隣のB列のセルB2に次の式を入れます
セルB2 =IF(ISNA(MATCH(A2,[平成23年版の商品.xlsx]Sheet1!$A$2:$A$10,0)),24,23)

psy7777さんの示されている範囲を数式にすると次の式になります
セルB2 =IF(ISNA(MATCH(A2,[平成23年版の商品.xlsx]Sheet1!$A$2:$A$100,0)),24,23)
「VLOOKUPで一致した場合に特定の数字」の回答画像3
    • good
    • 0

>IF関数の中の論理式の部分をVLOOKUPに置き換えて入れ子にし真なら23、偽なら24とすればよいのかと思ったのですが、エラーになります。


どの様な式なのでしょうか?これを提示していただければ適切な回答が得られると思いますが
既に、回答済みなので、別案です。
>簡単な方法としてはExcelファイル2のB2~B100に23を記入し、Excelファイル1のB2に
>VLOOKUP関数を入力し、Excelファイル1と2のA列が一致する場合、Excelファイル2のB列(23)を返し、>一致しないセルのエラーを削除して24を記入するという方法が考えられます。
考え方として
Excelファイル1のB2に Countif関数を入力して、同じ商品名がなければ 0 あれば 1以上 なので
あれば23 なければ24 と表示させる方法が考えられますよね

=IF(COUNTIF(平成23年度版の商品!A2:A100,A2)>0,23,24)
省略して
=IF(COUNTIF(平成23年度版の商品!A2:A100,A2),23,24)
といった書き方も可能
    • good
    • 0

24年の商品一覧に


23年の計算式=24年の計算式にすると
一致するかしないかの答えが返ってきます。

=VLOOKUP(B1,23年のデータ範囲,1,FALSE)=VLOOKUP(B1,24年のデータ範囲,1,FALSE)

TRUEの時に「23」、FALSEの時に「24」と返すなら

=IF(VLOOKUP(B1,23年のデータ範囲,1,FALSE)=VLOOKUP(B1,24年のデータ範囲,1,FALSE)=TRUE,"23","24")

TRUEの時は、23年データにあり、FALSEの時は、23年データにないということになります。

データ範囲や列番号は、修正してください。

お試しください。
    • good
    • 0

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

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

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

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

QExcelで条件が一致する場合、○印で表示する

Excelの関数についての質問です。

(列A)    (列B)   (列C)
相原久美子   相原久美子  ○
高橋 聡子   上田かなえ  ○
上田 かなえ  竹中聡美
武田 良子

列Bにデータを入力した際、列Aに同じものがあれば○を、
そうでなければ何もしないという関数を作成したいと思います。

今のところはCOUNTIF関数を使い、
=IF(COUNTIF($A$1:$A$4,B1)>0,"○","")
のように組んでいますが、氏名の間に空欄を含んだ場合の処理が
うまくいきません。

何か良い方法はありませんでしょうか。よろしくお願い致します。

Aベストアンサー

こんにちは
作業用セル列Dを作って列Aの空白を処理する例です。
D列に以下の関数を入れて空白を取り除きます。
=SUBSTITUTE($A1," ","")

C列に質問者さんの式を変形して入れます。
=IF(COUNTIF($D$1:$D$4,B1)>0,"○","")

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

Qvlookup関数で検索値を含む文字列を検索する方法

vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。
 よろしくお願いします。

Aベストアンサー

=VLOOKUP("*"&D1&"*",A:C,3,FALSE)

QVLOOKUPとIFの組み合わせで困ってます

シートが2枚あり、sheet1は工事記録一覧、sheet2は納品書です。

sheet2のセルA1に、工事記録の管理番号を入力し、
セルA2以降に、管理番号に該当する住所や建物名、
工事種類などを表示させたいと思ってます。

参考にするセルが空欄の場合には、空欄のままにしたいので、
IF関数とVLOOKUP関数を組み合わせて
下のように自分で式を組んでみましたが、#N/Aになってしまいます。

=IF(A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE)

同一シート内で同様の式を入れた時は、希望通りの答えが返ってきましたが、
別のシートだと上手くいきません。

どなたか正しい式をご教授いただけますでしょうか。

エクセル初心者で、ネットや本で調べながら作成しているので、
分かりやすく教えていただければ助かります。

どうぞよろしくお願いいたします!

Aベストアンサー

こんばんは!

>セルA2以降に、管理番号に該当する住所や建物名、
>工事種類などを表示させたい・・・

というコトは2行目に数式を入れないといけませんよね?

方法としては
(1)手っ取り早く
=IF(A2="","",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,FALSE)&"")
としてみる。
この場合、表示されるデータは文字列となります。

(2)コツコツと
=IF(OR(A2="",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)=""),"",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0))
とする。

※ 余計なお世話かもしれませんが、A列に間違ったデータを入力した場合は
エラーになりますので、

=IF(COUNTIF(Sheet1!A:A,A2),VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)&"","")
のようにする方法もあります。m(_ _)m

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

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行までとしていますが、必要に応じて変更して下さい

Qエクセルで文字列が一致したら数値を返す方法

いろいろ調べてもわかりませんでした。詳しい方よろしくおねがいします。

 初めに価格表を作っておきます。
たとえば 「えんぴつ 100円、ボールペン 120円・・・」
 
 次に発注書を作成します。
その時「えんぴつ」と入力した時点で、自動的に100円と表示させるにはどうすればよいのでしょうか?


 えんぴつにコードを振る方法はあったのですが、文字だけで値を返す方法はあるのでしょうか?
よろしくお願いします。

Aベストアンサー

一例です。
価格表をSheet2のA・B列に作成したとします。
発注書の商品名をA1入力、B1に価格を表示します。
B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2,FALSE),"")

QexcelのVLOOKUPで検索値を2つにできますか?

excelのVLOOKUPで検索値を2つにしたいです
私の知っているVLOOKだと下記のことは対応できます
例えば、A列に会社名、B列に住所、C列に電話番号 とあった場合
「住所が検索値と同一なら電話番号を表示しなさい」という指示は出せます

そこで質問です
「会社名と住所が検索値と同一なら電話番号を表示しなさい」
というような、複数の検索値を持つ事はできないのでしょうか?

参考になるURLなどでも結構ですので、ご存知の方よろしくお願いいたします

Aベストアンサー

元の表をA列に会社名、B列に住所、C列に「=A2&B2」、D列に電話番号のようにして
=VLOOKUP(会社名&住所,$D$2:$C$100,2,FALSE)
のようにすれば可能です。

QEXCELで別のシートのデータを参照して返す方法

ちょっとしたことなのですが、うまく式が書けなくて悩んでいます。

作業用のシート1と参照用のシート2があり、
シート1のA列には
 あおき
 あべ
 いぐち
 いはら
などと文字列(名前)が入力されています。
こちらは今度の野球のスタメンだと思ってください。

シート2にはA列とB列があって、
わたなべ 55
いぐち  43
あおやま 67
いはら  41
などと、名前:背番号が羅列されています。こちらが参照用の全選手の背番号リストだと思ってください。

ここで、 シート1のB列に、A列の名前に対応した背番号を返したいのです。
なので、シート1のB列に
IF(シート1のA列の値=シート2のA列のいずれかの値)だったとき、
適合したシート2の行のB列の値を表示する
という式を入れたいのですが、どのように式を書けばよいでしょうか。

すみませんがどなたか教えてください。

Aベストアンサー

私もその場合はVLOOKUP関数を使用しています。

「B1」=VLOOKUP(A1,Sheet2!$A:$B,2,0)

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ランキング