Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Excel 2016)
IF関数
投稿日時: 19/12/13 16:51:05
投稿者: chokobanana

IF関数で列GとHは"○"、"▲"、"×"、もしくは空白です
I列に値がある一番右の列の結果、もしくは両方とも余白の場合はSheet1のA列とF列に
同じものがある場合は"○"、同じものがない場合は"×"と表示させたいです
 
どうしても上手くいかないです
どこが原因か教えてください
 
=IFERROR(IF(F2<>"",IF(G2="○",IF(H2="○","",IF(COUNTIF(Sheet1!A:A,F2)>0,"○","×")))),"")
 
(条件)
1)F列に値がある
2)G列が"○"、"▲"、"×"、余白
3)H列が"○"、"▲"、"×"、余白
4)2と3が余白の場合、Sheet1のA列とF列の値が同じ"○"、違う場合"×"
5)I列に結果を表示する
 
(パターン)
       F         G           H      Sheet1のA列とF列      I列
a)    値がある   ○、▲、×   ○、▲、×   -              H列の結果を表示
b)    値がある   ○、▲、×   余白        -              G列の結果を表示
c)    値がある   余白        ○、▲、×   -              H列の結果を表示
d)    値がある   余白        余白        同じ              ○
e)    値がある   余白        余白        違う              ×
f)    値がない                                         結果を表示しない
 
 
 
 
  

回答
投稿日時: 19/12/13 17:35:15
投稿者: んなっと

これだとどうですか?
=IF(F2<>"",IF(H2<>"",H2,IF(G2<>"",G2,IF(COUNTIF(Sheet1!A:A,F2),"○","×"))),"")

投稿日時: 19/12/16 15:29:07
投稿者: chokobanana

んなっとさん
 
ありがとうございました。
ごめんさい、勘違いして投稿が違ってました。
 
F列に値がある場合、G列、H列にある値の一番右の列の値の結果が▲の場合は
sheet1のA列とF列が同じかどうかを確かめるでした。
 
 
   F     G       H        Sheet1のA列とF列   I列    
d)値がある   ○、▲、×  ○、▲、×    同じ         ○
e)値がある   ○、▲、×  余白       違う         ×

回答
投稿日時: 19/12/16 17:11:31
投稿者: んなっと

まとめるとこういうことですか?
┏―――――――――┳―――――――――――――┓
| G,Hがともに空白 |FをSheet1A列から検索して、|
| G,Hの右端が▲  |   あれば○、なければ×|
┣―――――――――╋―――――――――――――┫
| G,Hの右端が▲以外|G,Hの右端         |
┗―――――――――┻―――――――――――――┛
もしそうなら、
 
I2
=IF(OR(RIGHT(G2&H2)={"○","×"}),RIGHT(G2&H2),IF(F2="","",IF(COUNTIF(Sheet1!A:A,F2),"○","×")))
下方向・↓

投稿日時: 19/12/17 12:49:48
投稿者: chokobanana

んなっとさん
 
ありがとうございます。
分かりにくくて申し訳ございません。
 
G,Hの右端が▲以外
   ↓
G,Hのどちらか一番右端が▲以外
※G、Hの値(余白以外)で優先するのは一番右の値です。
 
が正しいです。
 
 
┏――――――――------------―┳―――――――――――――┓
| G,Hがともに空白       |FをSheet1A列から検索して、|
| G,Hのどちらか一番右端が▲  |   あれば○、なければ×|
┣―――――――――------------╋―――――――――――――┫
| G,Hのどちらか一番右端が▲以外|G,Hのどちらか一番右端   |
┗―――――――――------------┻―――――――――――――┛
 
【▲のパターンのイメージ】
 
  G   H
1) ▲   ▲
2) ▲   余白
3) 余白 ▲
 

回答
投稿日時: 19/12/17 13:25:12
投稿者: んなっと

どこが違っているのですか?
以下のような具体例で書いてください。
 
●Sheet1
 
  A
1 4
2 5
3 6
 
●Sheet2
 
  F  G  H  I
 2 5 ▲ ○ ○
 3 6 ○   ○
 4 7   ○ ○
 5 5 ▲ × ×
 6 6 ×   ×
 7 7   × ×
 8 5 ○ ▲ ○
 9 6 ▲   ○
10 7   ▲ ×
11 6     ○
12 7     ×
13        
 
I2
=IF(OR(RIGHT(G2&H2)={"○","×"}),RIGHT(G2&H2),IF(F2="","",IF(COUNTIF(Sheet1!A:A,F2),"○","×")))
下方向・↓

回答
投稿日時: 19/12/17 13:28:12
投稿者: んなっと

「パワークエリ」の質問をされた方ですね。
https://www.moug.net/faq/viewtopic.php?t=78743
 
やはり改善されていないですね。残念です。

投稿日時: 19/12/18 09:35:23
投稿者: chokobanana

んなっとさん
 
ありがとうございます。
 
優先される列の値が○の場合でも×という結果になりました。
 
教えてくれた式ですと優先される列(G、H列)が"○"、"×"の場合でも
Sheet1を確認してその結果が反映されています。
優先される列が"○"、"×"の時はSheet1の確認は必要ありません。
Sheet1の確認は優先される列(G、H列)が"▲"の時だけです。
 
 
(条件)
1)F列に値がある
2)G列が"○"、"▲"、"×"、余白
3)H列が"○"、"▲"、"×"、余白
4)2と3が余白の場合、もしくは"▲"の場合はSheet1のA列とF列の値が
  同じ場合"○"、違う場合"×"
5)I列に結果を表示する
 
(パターン)    
   F    G     H    I  
@ 値あり  ○    ○    ○ ←H列の値優先
A 値あり  ○         ○ ←G列の値優先
B 値あり  ○    ×    × ←H列の値優先
C 値あり  ×    ×    × ←H列の値優先
D 値あり  ×         × ←G列の値優先
E 値あり  ×    ○    ○ ←H列の値優先
F 値あり  ○    ▲    ※ ←H列の値優先 ⇒sheet1を確認
G 値あり  ×    ▲    ※ ←H列の値優先 ⇒sheet1を確認
H 値あり  ▲    ▲    ※ ←H列の値優先 ⇒sheet1を確認
I 値あり  ▲         ※ ←G列の値優先 ⇒sheet1を確認
J 値あり  ▲    ○    ○ ←H列の値優先
K 値あり  ▲    ×    × ←H列の値優先
L 値あり       ○    ○ ←H列の値優先
M 値あり       ×    × ←H列の値優先
N 値あり       ▲    ※ ←H列の値優先 ⇒sheet1を確認
O 値なし 
 
パターン@、B、C、E、F、G、H、J、K、L、M、NのとおりH列に値がある場合はH列優先
パターンA、D、IのとおりG列に値があって、H列が余白の場合はG列優先
 
但しパターンF〜I、Nの場合は
※優先された列の値が▲の場合はSheet1のA列とF列の値が同じ場合"○"、違う場合"×"
 

回答
投稿日時: 19/12/18 11:45:20
投稿者: んなっと

おお、ようやく適切な具体例が示されましたね。感動。
 
●Sheet1
  
  A
1 4
2 5
3 6
  
●Sheet2
 
I2
=IF(OR(RIGHT(G2&H2)={"○","×"}),RIGHT(G2&H2),IF(F2="","",IF(COUNTIF(Sheet1!A:A,F2),"○","×")))
下方向・↓
 
...以下のようになりますよ。
 
  F  G  H  I
 2 6 ○ ○ ○
 3 7 ○   ○
 4 6 ○ × ×
 5 7 × × ×
 6 6 ×   ×
 7 7 × ○ ○
 8 6 ○ ▲ ○
 9 7 × ▲ ×
10 6 ▲ ▲ ○
11 7 ▲   ×
12 6 ▲ ○ ○
13 7 ▲ × ×
14 6   ○ ○
15 7   × ×
16 6   ▲ ○

投稿日時: 19/12/18 12:48:49
投稿者: chokobanana

んなっとさん
 
ありがとうございます。
 
ですがやはり、
優先される列の値が○の場合、×という結果になりました。
同じく優先される列の値が×の場合、○という結果になりました。
 
優先される列の値が▲の場合は希望する結果となりました。
 
原因の糸口になるかもしれませんので全容を簡単に説明します。
G列とH列はsheet1以外のシートと同じものがあるかどうか調べた結果です。
 
@G列 sheetXと比較 
AH列 sheetYと比較
BI列 優先される列の結果が▲の場合、sheet1と比較
 
 
sheetXにない場合にsheetYで探す、sheetYにない場合にsheet1で探すという流れです。
sheetX、sheetY、sheet1に重複するものはありません。
 
 
 
 

回答
投稿日時: 19/12/18 15:00:08
投稿者: んなっと

これだとどうですか?
 
=IF(OR(RIGHT(G2&H2)={"▲",""}),IF(F2="","",IF(COUNTIF(Sheet1!A:A,F2),"○","×")),RIGHT(G2&H2))

トピックに返信