
No.6
- 回答日時:
少し解説を
=IF(SUMPRODUCT(($A$1:$J$1=A$3)+0)<1,"",OFFSET($A$2,0,MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)-1,1,1))
ですが、
まずは
SUMPRODUCT(($A$1:$J$1=A$3)+0)<1
からいきます。
($A$1:$J$1=A$3)
は
A1:J1の範囲にA3と同じ物があるか1つ1つ確認させています
回答は同じな場合TRUE、違う場合FALSEです
お示し頂いた例になぞらえると
A1はA3と同じではないのでFALSE
B1はA3と同じなのでTRUE
C1はA3と同じではないのでFALSE
D1はA3と同じではないのでFALSE
………
……
…
…
…
J1はA3と同じではないのでFALSE
となります。
実際の値としては
{FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FLSE,FALSE,FALSE}
です。
ところで、
Excelでは
FALSEは0に、TRUEは1に置換される作用があります。
また
0+0は0,1+0は1,0*1は0,1*1は1ですから
従って
{false,true,false}+0
は、
{0,1,0}
に、置換されます。
($A$1:$J$1=A$3)+0
は、
{0,1,0,0,0,0,0,0,0,0}
と、成るわけです。
本来の使い方ではないですが、
=SUMPRODUCT({0,1,0,0,0,0,0,0,0,0})
と、した場合
SUMPRODUCTは此等の総和を計算してくれます。
回答はこの場合「1」ですね。
総じていえば
「TRUE」が1つ以上あれば
SUMPRODUCTは1以上を返します。
SUMPRODUCT(($A$1:$J$1=A$3)+0)<1
とすれば、一致しているものが無いか調べられるわけです。
さて、後半部分の
OFFSET($A$2,0,MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)-1,1,1)
ですが、
OFFSETについてはヘルプやネットをご参照ください
単純な物です。
MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)
ですが、
キモは
$A$1:$J$1=A$3
です。
先程の説明通り、
{FALSE,TRUE,FASE,…}
Excelがよこす答えはこうですね。
所で
Excelでは「FALSE」より「TRUE」の方が大きい
と、いうことになっています。
「TRUE」をMATCHに探させているとき
MATCHはTRUEが出た時点でそれ以降の検索を止めます。
従って
MATCHにとって
=MATCH(TRUE,{FALSE,TRUE,False,False,False,False},0)
=MATCH(TRUE,{FALSE,TRUE},0)
この双方は
「TRUE」の時点以降を見ないので
同じ扱いとなります。
つまり
どちらも昇順に並んでいることになるわけです。
因みにExcelのよこす回答は「2」ですね。
如何でしょうか?
お役に立てていたならば幸いです。
No.5
- 回答日時:
私もHLOOKUPと思ったのですが先行回答があるようで、… 滝汗
しかも、よく見ると昇順とも限らないようで…
ならば…
と、OFFSETを使ってみます。
=IF(SUMPRODUCT(($A$1:$J$1=A$3)+0)<1,"",OFFSET($A$2,0,MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)-1,1,1))
これだと順不同でも、いやいやそもそも値そのものが無くても平気ですね。
A5に入力後
J5までフィル、又はコピーください。
如何でしょうか?
お役に立てていたならば幸いです。
本当に、本当に申し訳ありません。頭がチンプンカンになってしまいました。頭を冷やしてから再度挑戦してみます。皆さん、ありがとうございました
No.3
- 回答日時:
ISERROR 又はIFEROOR使用出来ますが、バージョンにより利用制限があります。
IEERRRORは2007以降でも利用可2003以下のバージョン
A5=IF(ISERROR(HLOOKUP(A3,$A$1:$J$2,2,0)),"",HLOOKUP(A3,$A$1:$J$2,2,0))
2007以降のバージョン
A5=IFERROR(HLOOKUP(A3,$A$1:$J$2,2,0),"")
質問時は使用しているソフトのバージョン記載は必須ですので、今後は記載下さいね。
No.2
- 回答日時:
IF関数だと面倒すぎますね。
HLOOKUP関数を使うべきです。A5=HLOOKUP(A3,A1:J2,2,FALSE)
B5=HLOOKUP(B3,A1:J2,2,FALSE)
C5=HLOOKUP(C3,A1:J2,2,FALSE)
:
:
J5=HLOOKUP(J3,A1:J2,2,FALSE)
のように入力すればOKです。ただし該当する値が無いセルは「#N/A」ってエラー表示になりますが。
ありがとうございます。私なりになんとか出来た?? ように思うのですが
でも、少し違うような感じです。
関数の初歩の勉強が足りないようです。急ぎすぎですね!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) if関数とifs関数は組み合わせることはできますか。 セルA1が「A」のとき「向日葵」と表示。 セル 4 2023/02/02 20:48
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) VBAにてエクセルをpdf化する方法 1 2023/03/10 16:20
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- Excel(エクセル) EXCEL関数(数式)を教えてください 4 2023/05/08 17:19
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
Office2021を別のPCにインスト...
-
大学のレポート A4で1枚レポー...
-
Microsoft365について
-
office365って抵抗感ないですか?
-
エクセルVBAで1004エラーになり...
-
Excelで〇のついたものを抽出し...
-
会社のOutlookにてメールを予約...
-
Office 2021 Professional Plus...
-
VBAの印刷について
-
office2019 のoutlookは2025年1...
-
Excel テーブル内の空白行の削除
-
エクセルで特定のセルの値を別...
-
MSオフィス2013にMS365が上書き...
-
エクセルで自動的にQRを表示さ...
-
エクセルでXLOOKUP関数...
-
Microsoft Office Homeインスト...
-
office365のファイルで「Office...
-
Microsoft 365 の一般法人向け...
-
Excel 日付を比較したら、同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
エクセル ○○以上○○以下の関数を...
-
Office 2021 Professional Plus...
-
会社PCのメールが更新されない
-
outlookのメールが固まってしま...
-
Excelデータで必要な部分だけを...
-
表の作成について
-
マイクロソフト 一時使用コード...
-
エクセル ○○以上○○以下で、条件...
-
データの文字コードを確認するには
-
【Excel VBA】PDFを作成して,...
-
別シートの年間行事表をカレン...
-
office365って抵抗感ないですか?
-
office2019 のoutlookは2025年1...
-
Microsoft Formsの「個人情報や...
-
マクロ自動コピペ 貼り付ける場...
-
エクセル 関数の数値の入れ方を...
-
エクセル すべて+5をしたい
おすすめ情報