これからの季節に親子でハイキング! >>

A、Bのセルがあり、どちらのセルにも文字列が入っていたり、入っていなかったりとします。
そこでセルCに、A、Bどちらかの文字列を入れたいと考えたとき、どのような関数が考えられますでしょうか?

条件は以下のようにします。
(1)A,Bとも文字列か、空白のどちらか
(2)Aの方が優先される。A,Bのどちらも値が入っている場合はA、Aが空白で、Bに値が入っている場合はBの値がCに反映される。

宜しくお願い致します。

A 回答 (3件)

#1,2、cjです。


#2のお礼欄
> ご提案いただいた関数はさっそく試してみたのですが、Bの値は反映されませんでした。そこで伝えきれてなかったと思い、返信したのが先程の文となります。

セルAが「何も入力されていない空白」または「値""」である場合、
セルBを返すように数式を組んであります。
一度セルAを確認して頂けますか。
例えば、何も入っていない空白にみえるけれど、じつは違うとか。
(例えば、スペースが入っているとか。)

あるいは
数式の参照先を"A1""B1"から適切なセル参照に書き換え出来ているか
など、ご確認ください。
    • good
    • 5
この回答へのお礼

ご返信ありがとうございます。
cjさんの言うとおり、スペースが原因でした。
一括で削除し、改めてあててみたところ、ちゃんと動作致しました。

お手数掛けまして申し訳ございませんでした。
この度は本当に助かりました…。

ありがとうございます。

お礼日時:2012/10/06 04:58

回答Mo.1、cjです。


No.1のお礼欄
> Aが空白、Bに値 の場合はBを書き出したいとおもっております。

の件ですが、質問文にある
> Aが空白で、Bに値が入っている場合はBの値がCに反映される。

と同じ意味ですよね?
だとすると、十分に理解した上で、十分に動作確認をしてから回答に着手しています
から、お試しになったのなら結果の確認をして頂きたいのですが。

申し訳ありませんが、何を"改める"のか、わからないです。
No.1の本旨
| セルCに
| =IF(A1<>"",A1,B1&"")

これ↑を実際に使う方法がお分かりにならないのでしょうか?
それともお試しになったのにお望みの結果が得られないのでしょうか?
ちょっと困っています。
    • good
    • 1
この回答へのお礼

ご提案いただいた関数はさっそく試してみたのですが、Bの値は反映されませんでした。そこで伝えきれてなかったと思い、返信したのが先程の文となります。

困らせてしまったようで申し訳ございません。

お礼日時:2012/10/06 04:25

確認ですけど、


Aに値、Bが空白→A
A、B、共に空白なら→空白(空文字)
でよいのでしょうか?
それなら
セルAがA1、セルBがB1と仮定して
セルCに
=IF(A1<>"",A1,B1&"")
こんな感じでいかがでしょうか。
    • good
    • 4
この回答へのお礼

お返事ありがとうございます。
1点記述しわすれたことがございました…。

Aが空白、Bに値 の場合はBを書き出したいとおもっております。
申し訳ありませんが、改めて教えていただいてもよっろしいでしょうか

お礼日時:2012/10/06 03:52

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

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

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

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

Q2つのセルのどちらかに値が入れば

2つのセルのどちらかに値が入れば

いつもお世話になります。
WINDOWS XP EXCELL2003です。

現在はD5に
=IF(A5="","",SUM(D4+B5-C5))
の数式が入っています。
※あたりまえですがA5に入力されたときにD5に値が表示されます。

ご教示いただきたいのは、
 B5 若しくは C5  のいずれかに値が入力されたら D5 に値が表示をしたい。
ご指導の程よろしく御願いします。

Aベストアンサー

A5が未入力かどうかは関係ない場合

=IF(OR(B5<>"",C5<>""),SUM(D4+B5-C5),"")

A5に値があり、かつ、B5,C5のどちらかに値ありの場合

=IF(AND(A5<>"",OR(B5<>"",C5<>"")),SUM(D4+B5-C5),"")

以上です。
 

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

Qエクセルで指定したセルのどれかに○がはいっていたら○を表示したいです。

エクセルで指定したセルのどれかに○がはいっていたら○を表示したいです。CONCATENATEと使用すると複数の時○○となってしまって困っています。複数のときでも○ひとつで表示する関数はどうしたらよいでしょうか。

Aベストアンサー

安直ですが、以下の方法で如何でしょうか。

=IF(COUNTIF(範囲,"○")>0,"○","")

QVlookupで、2つの候補のうちどちらかを検索値にしたい

既出だろうけど、検索でうまく引っ掛けられなかったので質問させて頂きます。
  A  B  C
1 球団 順位
2 大洋 1
3 巨人 2
4 広島 3
5 阪神 4

こんなデータベースがあるとして、例えば「A6」のセルに「大洋か横浜」の順位をデータベースから検索して入れたい場合の数式は、どうしたらいいのでしょうか。
「=vlookup({"大洋";"横浜"}),A1:B5,2,0)」でいいかな、と思ってやってみたんですが、これでやると「大洋」しか検索してくれず、「横浜」になったときに値が出てきません。

Aベストアンサー

#1です。
=INDEX(B2:B5,MAX((A2:A5={"大洋","横浜"})*ROW(A2:A5))-1,1)
でCtrl+Shift+Enterで配列数式

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のVLOOKUPで検索値を2つにできますか?

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

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

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

Aベストアンサー

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

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【エクセル】IF関数  AまたはBならばCと表示

引き続き、お世話になります。

IF関数の使い方について教えてください。

A1セルが「1」ならば B1セルに「●」を表示 ←これは出来ます。

A1せるが「1」または「6」ならば B1セルに「●」を表示←これができません。

ANDを組み合わせるのですよね???
どのようにすればいいか、ご存じの方教えてください。

Aベストアンサー

B1のセルに、以下の数式を入力します。

=IF(OR(A1=1,A1=6),"●","")

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エクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング