【先着1,000名様!】1,000円分をプレゼント!

E13にAllowanceという文字が入っているとき、C13に「隣のシートのL22に入っている日当額」が入ってくるようにしたいです。
以下のようにやっていますがうまくいきません。

=IF((FIND("Allowance",E7))=TRUE," ","L22")

L22を表示させるためには、VLOOKUP組み合わせでしょうか?

ご教示のほど、よろしくお願いいたします。

「エクセル:特定セル内に特定文字列が入って」の質問画像

A 回答 (2件)

E13にAllowanceという文字が入っているとき


というのは、E13がAllowanceの場合だけなのか、
AAllowanceやAllowanceAであってもかまわないのか、
どちらを想定しているのでしょうか?
FINDを使っているので、後者の気もしますが、
理解できていないようなので、前者のつもりで間違えて使っているだけの気もします。
(そしてFINDで指定しているセルがE13ではなくE7になっていますが、E13が正しいものと仮定します)

前者であるならば、
C13=IF(E13="Allowance",隣のシート!L22,"")
とすれば、E13がAllowanceであった場合に、「隣のシート」という名前のシートのL22のデータを表示させます。
VLOOKUPを使う可能性とすれば、日当額が表になっていて、該当する日当額を別のセルのデータから自動選択させる場合です。
今回L22に入っていると決まっているのであれば、VLOOKUPは不要です。
「隣のシート」という部分には具体的なシート名を入れてくださいね。

後者であるならば、
C13=IF(COUNTIF(E13:E13,"*Allowance*")=1,隣のシート!L22,"")
E13~E13の範囲(というか1つのセルですが)にAllowanceを含むセルが1つであった場合に、
「隣のシート」というシートのL22のデータを、そうでない場合は空白を、表示するという式です。
    • good
    • 0
この回答へのお礼

まず、「Allowanceの場合だけ」です。
そうです。全く理解していないのです・・

隣のシートが日当計算用(国別の日当額×全日程を計算するもの)で、VLOOKUPを使っています。(って、、自分でやったのにそもそもの使い方忘れてました・・)
つまりお察しの通りでL22にはすでに値が入っています。
とてもよくわかりました!ありがとうございました!

お礼日時:2017/04/27 16:13

=IF(ISERROR(FIND("Allowance",E13)),"",Sheet2!L22)



どう考えても、他のシートを参照する方法を理解していないようにしか見えませんし、
FIND関数の意味を理解していないようにしか思えない。

他のシートを参照するときは
 =シート名+!+セル番地
 =Sheet2!L22
のようにして参照する。

FIND関数は値を見つけられないとエラーを返す。
FIND関数単体ではTRUE/FALSEの結果を返しません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
はい、まったく理解していないのです。

他のシートを参照するときは
 =シート名+!+セル番地

これでやってみたら出来ました。
とても参考になりました。ありがとうございます!

お礼日時:2017/04/27 15:56

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

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

Qエクセル関数を教えてください

エクセル関数を教えてください

このような↓

別ページにある、△△(具体的には氏名が入る)と書いてあるセルを探して基準にし、そこを基準にして指定した数値分(具体的には右に2、下に2)移動したところにあるセルの数値を返す。

です!
オートフィルでコピーし、シート名と△△の氏名だけを書き換えればOK!みたいなのを狙ってます。
年度末の集計表のため、困ってます。
よろしくお願いします!

Aベストアンサー

こんにちは

例えば、シート2(別ページ)のA列に名前のリストが並んでいるとします。

個別に探したい名前が(シート1の)A1セルにあるとして、
 = MATCH(A1,Sheet2!$A:$A,0)
のようにすると、その名前がリストの何番目に存在するかの数値が返されます。

これを利用して、右に2列、下に2行移動したセルの値なら
 = OFFSET(Sheet2!$A$1,MATCH(A1,Sheet2!$A:$A,0)+1,2)
とすることで、値が取得可能です。

※ 実際のリストの形式やセル範囲など、及び、個別の氏名のセル位置などが不明ですので、適切に修正してください。
※ 上記はエラー処理(リスト内に一致するものが無い場合等)は行っていませんので、必要な場合は付け加えてください。

QExcelのセルの書式設定で質問です。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググってユーザー定義から Ctrl+J でセル内の各行に定義を設定するという方法を知りました。
手探りで1行目の価格に#,##を、残りのJANコード行に標準/Gを設定してみましたが出来ません。
試しにJANコード部を#############にしてみましたが桁区切り点は付きません。
今は一つ一つクリックして手動で付けています。
どのようなユーザー定義を設定すれば可能でしょうか?
またJANコード数は価格(商品)によって違います。
最大数のユーザー定義を設定して貼り付ければすべてのセルに設定できるでしょうか?
例えば20行分の書式設定をしたものを1行しかコードがないセルに貼り付けても問題ないでしょうか?
ご教授お願いします。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググっ...続きを読む

Aベストアンサー

前回の質問を見ていないので,どの様にして1つのセルに改行して数値(属性としては文字)を入れたか分かりませんが,おそらく書式設定ではなく,データを入れる部分を直さないといけないと思います.多分,
=A1&CHAR(10)&A2
みたいな関数で折り返し表示しているのだと思いますが,これを以下の関数にするとカンマが付きます.
=TEXT(A1,"#,###")&CHAR(10)&TEXT(A2,"#,###")

Qエクセル関数

まず目的は、プログラムAのデータをプログラムBに手入力しているのですが、エクセルを利用してコピペだけで処理できるようにしたいです。
黄色い部分のセルをコピーしてとプログラムBに貼り付けることで、手入力を省こうとしています。

図を参照してください・・・
セルAからJまではプログラムAの貼り付け領域で、黄色のセルのNからVまでがプログラムBへのコピー領域になっています。

本題ですが、セルIとJを2枠単位から5枠単位にしたいのです。
(わかりずらくてすみません。。)
Aの行に対して、I,Jが2種類までだったらR,Sに値を返すだけでいいのですが、
オレンジ、青、緑の3色の部分のようにAが”同”の時のIF関数が上手くできません!

例えばT2のセルにA3が”同”の時、I3をT2へ、”同”でないときは=LEFTB(T1&REPT(" ",6),6)
としたいです。
そう、RからVまではデータなしの場合、6桁の空欄にしたいのです。
IF関数に別の関数を入れようとするとうまくいきません。
お力をお貸しください。。。m(_ _"m)

まず目的は、プログラムAのデータをプログラムBに手入力しているのですが、エクセルを利用してコピペだけで処理できるようにしたいです。
黄色い部分のセルをコピーしてとプログラムBに貼り付けることで、手入力を省こうとしています。

図を参照してください・・・
セルAからJまではプログラムAの貼り付け領域で、黄色のセルのNからVまでがプログラムBへのコピー領域になっています。

本題ですが、セルIとJを2枠単位から5枠単位にしたいのです。
(わかりずらくてすみません。。)
Aの行に対して、I,Jが...続きを読む

Aベストアンサー

内容はいまいち分かりませんが、その説明のとおり
A3が"同"(添付画像を見る限り"同"ではなく"〃"に見えますが)の場合は、I3のデータを、
そうでない場合は、=LEFTB(T1&REPT(" ",6),6)の結果を、
それぞれ表示させたい。
というのであれば、
=IF(A3="同",I3,LEFTB(T1&REPT(" ",6),6))
と入力すれば問題ないはずです。

Qエクセル関数

エクセルで「〃」を上のセルの数字に置き換えたいです。
「〃」ではないセルはそのまま、「〃」ならば上のセルを参照させたいのですが

=IF(A2="〃",=OFFSET(A2,-1,0),A2)

この数式でエラーになります。手直ししてください。。。

Aベストアンサー

添付図参照
b2: =IF(A2="〃",OFFSET(A2,-1,0),A2)
ただし、式中の「0」は次のように省略可
=IF(A2="〃",OFFSET(A2,-1,),A2)

Qデータを区切る方法

A列に以下のようデータが入っています。

45Fe
46Fe
47Fe

これを

A列に
45
46
47

B列に
Fe
Fe
Fe

のようにデータを区切る方法を教えてください

Aベストアンサー

データ→区切り位置 で、「スペースによって...」使う

Qエクセルについて質問です

仕事で仕入先からの交渉データを作成していて見やすいように
追加しようと考えていますが一部分からないところがあります。

■現状
シート1(件名一覧表)
シート2(交渉内訳)

■追加シート3(個別件名の確認用シート)

やりたいことはシート2(交渉内訳)に
C列に注文番号のコード
D列にメーカーコード
E列に仕入先名
F列にメーカーごとの定価金額
H列に担当者が交渉したメーカーごとの原価金額
K列に私が交渉したメーカーごとの原価金額
があります。
C列の注文番号を入力すれば
個別件名シートで見れるように

上記データを元に
追加シート3(個別件名の確認用シート)に
交渉内訳シートのC列、D列、E列、F列、H列、K列が
反映されるようにしたいです。

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)と
入力すると全てが同一仕入先になってしまい
各仕入先が表示されません。

なかなか文章で説明が難しく詳細もコンプライアンス上なかなか
表示出来ませんので答えにくいかも

Aベストアンサー

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索しているのに、B列には注文番号が入っているのですか?
それでしたら、一致するものがない為、近似として扱われたデータが表示されているのかもしれません。
完全一致で検索するとして、VLOOKUPの最後の0(TRUE扱い)を1(個人的には1よりFALSEと書く方が見た時わかりやすいので推奨)にしてみてください。
VLOOKUPの場合、近似よりも完全一致で検索する場合の方が多いと思いますし、それだと検索範囲を昇順に並べ替える必要もなくなります。

>注文番号を入力すれば個別件名シートで見れるように
7~2049行にデータがあるとして、
=VLOOKUP($AA2,交渉内訳!$B$7:$K$2049,2,FALSE)
AA2は検索したい注文番号の入力されたセルの事です。該当するセルに変更してください。
B列の1~6行目に注文番号と重複するデータが確実にないのであれば、
=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
とした方が良いです。(データが増えても範囲を変更せずに済むので。

とりあえず、これはB列を1列目として2列目=C列のデータを表示させる式です。
C列は結局何が入っているのかわかりませんが、とりあえずC列、D列、E列、F列、H列、K列を表示させる式を書きますね。

C列:=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
D列:=VLOOKUP($AA2,交渉内訳!$B:$K,3,FALSE)
E列:=VLOOKUP($AA2,交渉内訳!$B:$K,4,FALSE)
F列:=VLOOKUP($AA2,交渉内訳!$B:$K,5,FALSE)
H列:=VLOOKUP($AA2,交渉内訳!$B:$K,7,FALSE)
K列:=VLOOKUP($AA2,交渉内訳!$B:$K,10,FALSE)
となります。
元の表とシートの様式を同じにしていれば、
B列に注文番号のコードを入力するとして、
C2=VLOOKUP($B2,交渉内訳!$B:$K,COLUMN()-1,FALSE)
これをコピーするだけで済みます。
G,I,J列が不要であれば非表示にすればいいのです。1列1列何列目を抽出するかを数える必要はなくなります。

文章だけで間違いも含め可能な限り読み砕いたつもりです。参考まで

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索...続きを読む

Qエクセルに関しての質問お願いします。

失礼します。
エクセルにて、シート1に検索フォームのような物とボタンを作ってそこに検索したい文字を入れてボタンを押すとあらかじめシート2、シート3等別シートに入力してある情報に移動するような仕組みを作りたいのですが可能でしょうか?
シート毎に人物名やその情報を入れておいて、名前や情報を入力してボタンを押すだけでそのシートに飛びさえすればいいのですが…お客様の情報を入力しておいて必要な時に検索したいのですがいかがでしょうか?よろしくお願いします!

Aベストアンサー

この件では確かにアクセスの優位性はもっともだと思います。

ただEXCELのとっつきやすさと比べると多少のハードルの高さと
PCにおまけでついてこないから、周りに聞く人が少ない等も
ありますよね。

>名前や電話番号等で一発検索できるようなシステムを作りたいと思っています。
で、この一点だけ取り上げて考えてみましょう。

例えばカルテにおいて名前のセル位置は
決まっているわけですよね。
でしたらシートを順次切り替えながら、その位置の値が
検索する名前と一致するかを探すことになりますよね。

これはもう検索というよりシート切り替えの方がメインの
作業みたいになってしまいます。

ところが1枚にデータをまとめておけばまさしく検索です。
ホームのリボンの右端に検索がありますよね。
それと同等で作業的に圧倒的に楽なんです。

カルテの数だけシートを用意するは、実用的に有り得ない
仕様と思います。

他の事でも、例えば数える処理、男女比がどうなってるとか
1枚にまとまっていれば関数で一発計算できますが
シートにまたがって、計算するようには、
元々そう設計されていません。

データを一枚にまとめて1行目を見出しにする。
(アクセスも見た目的にはこの構造です)
これ以外の選択は、結局無駄が多いと
エクセルに親しめば親しむほど、身に染みて気づくと思います。

で、それを印刷や、画面など、人とのインターフェイスにおいて
見やすさとかを考慮したレイアウトを考える感じです。

この件では確かにアクセスの優位性はもっともだと思います。

ただEXCELのとっつきやすさと比べると多少のハードルの高さと
PCにおまけでついてこないから、周りに聞く人が少ない等も
ありますよね。

>名前や電話番号等で一発検索できるようなシステムを作りたいと思っています。
で、この一点だけ取り上げて考えてみましょう。

例えばカルテにおいて名前のセル位置は
決まっているわけですよね。
でしたらシートを順次切り替えながら、その位置の値が
検索する名前と一致するかを探すことになりますよね。

こ...続きを読む

Q2週間悩んでます。EXCELの並べ替えです。

下の表を数式で右(G)のように並べ替えたいのですがご教授お願い致します。

A  B  C         G
1  0  0         1
2  0  0         2
3  1  a         a
4  0  0         3
5  1  b         4
6  0  0         b
7  0  0         5
8  0  0         6
9  1  c         7
10  0  0         8
-------------------------------- c
-------------------------------- 9
-------------------------------- 10

どうしても4の処で引っかかってしまいます。
よろしくお願いいたします。
------- はG列が左に寄ってしまうので書いてます。
無視して結構です。

Aベストアンサー

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えてください。

=COUNTIF(D:D,ROW())
これはD列にその行番号が含まれている数を算出しています。3は含まれていないハズですので0であれば正解です。

=MATCH(ROW()-1,D:D,FALSE)
これは1つ上の行の行番号がD列の何行目にあるかを表示させる式です。
2行目の2なのでD2で一致し、2が表示されれば正解です。

=INDIRECT("C"&MATCH(ROW()-1,D:D,FALSE)+1)
これは先ほどの2に1を加えて3とし、C3のデータを表示させるものです。
C3はaであるので、aが正解です。

=MATCH(ROW(),D:D,FALSE)
これはCOUNTIFが0でなかった場合の式です。
なので確認する必要はないと思いますが、
そのセルの行番号をD列で検索し、何行目にあるかを表示します。
3はD列にないはずなので、エラーが正解です。

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えて...続きを読む

QExcelで例えば薬局のチラシで、 3/2 パブロン 3/2 正露丸 3/2 カロナール ‥‥‥ 3

Excelで例えば薬局のチラシで、
3/2 パブロン
3/2 正露丸
3/2 カロナール
‥‥‥
3/3 入浴剤
3/3 サロンパス
3/3 マジックリン
‥‥
3/4 パブロン
3/4 エスタック
3/4 カロナール
‥‥
ともっと数が多くこれが、1か月あったとしたら、例えばパブロンなら次に登場するのは何日後か調べあいのです。各アイテムを、簡単な関数教えて下さい。宜しくお願いします。

Aベストアンサー

まずは隣(じゃなくても空いていればどこでもいいです)の列に、製品名と出てきた回数を組み合わせてID化したもの表示します。
仮にA列が日付、B列が製品名とし、CれつにIDを表示させるには、
C1=B1&"-"&COUNTIF(B$1:B1,B1)
とでもしましょう。(データの数コピーしてください)
例の場合、パブロン-1、正露丸-1、カロナール-1、…といった表示になるかと思います。

そしてD列(もしくは次の日にちを表示させたい列)に、その行までに出てきた個数を利用して、次のIDを検索し、日付の差を求めて表示します。
D1=INDIRECT("A"&MATCH(C:C,B1&"-"&COUNTIF(B$1:B1,B1)+1,FALSE))-A1
例の場合ですと、まずMATCHによってC列からパブロン-2に一致するデータを検索し、(次のパブロンが3/4でB9にあるとして)9行目という検索結果の前にAを付け、INDIRECTによってA9のデータ=3/4を取得し、そこからA1のデータ=3/2を引いた、2という結果を表示してくれます。
その次のデータが存在しない場合はエラーとなりますので、次のデータがない場合に"なし"と表示するのであれば、
D1=IF(COUNTIF(B:B,B1)=COUNTIF(B$1:B1,B1),"なし",INDIRECT("A"&MATCH(C:C,B1&"-"&COUNTIF(B$1:B1,B1)+1,FALSE))-A1)
とすればよいかと。(データの数コピーしてください)

まずは隣(じゃなくても空いていればどこでもいいです)の列に、製品名と出てきた回数を組み合わせてID化したもの表示します。
仮にA列が日付、B列が製品名とし、CれつにIDを表示させるには、
C1=B1&"-"&COUNTIF(B$1:B1,B1)
とでもしましょう。(データの数コピーしてください)
例の場合、パブロン-1、正露丸-1、カロナール-1、…といった表示になるかと思います。

そしてD列(もしくは次の日にちを表示させたい列)に、その行までに出てきた個数を利用して、次のIDを検索し、日付の差を求めて表示します。
D1=INDI...続きを読む

Q棚卸表

当方65歳でPC超初心者。Win.10,Excel2016で棚卸表を作っています。1シート(A)に50種類の商品があり、A列に品名サイズ、B列に単価、C列に数量、D列に金額というように、2列をひと月として12ヶ月分あります。それが10シート(A)から(J)まであり、11シート目に合計表があります。今までAシートのその月の合計数量や合計金額を出してから合計表を開き転記していましたところ、若いスタッフに笑われます。その月の合計数量や合計金額が出たら、自動的に合計表に転記されるような計算式というかやり方がありませんでしょうか。

Aベストアンサー

転記しているという事は、それぞれのシートで算出した値を見て、合計のシートにそれぞれ手入力(もしくはコピー→貼付け)している。ということでしょうか?

例えば、(A)シートのC30というセルのデータを合計のシートに転記しているとすれば、
その転記先のセルに、
=(A)!C30
と入力する事で、(A)シートのC30に入っているデータをそのまま表示させる事ができます。

「!」は、その前の文字列がシート名、その後の文字列がそのシートのセル番地、である事を意味しており、「=シート名!セル番地」とすることで、その該当するセル番地のデータを取得する。という式になっています。


人気Q&Aランキング